Computational Intelligence - May 2016 - 54

using Java 8 features.We hope that these guidelines can be of help
to developers and researchers that aim to build computational
intelligence software exploiting multi-core CPU architectures.
In our opinion, a key aspect that makes the functional programming Java 8 features quite appealing for developing computational intelligence software is that these functional primitives
decouple the problem of what can be parallelized from the problem of how to run an algorithm in parallel. Actually, once the
algorithm has been expressed in terms of map-reduce operations
over Java streams, we cannot control which part of the computations is performed on a specific core or how many cores should
be used.This is completely transparent to the user. In that way, we
are really going beyond multi-core CPU architectures. For example, researchers at Oracle (the Java owner) [53] recently proposed
an extension of Java Streams, called DistributableStream,
for data processing over a cluster of computers with a distributed
file system such as Hadoop or Cassandra. With this approach, the
same code that runs in parallel on a multi-core CPU using native
Java Streams, can also be run on a distributed cluster using the
class DistributableStream. We envision that the forthcoming Java releases may give support to other kinds of parallel computing architectures introducing more specifications on what can
be parallelizable rather than how to perform parallel computing.
Acknowledgments

This work was performed as part of the AMIDST project.
AMIDST has received funding from the European Union's Seventh Framework Programme for research, technological development and demonstration under grant agreement no 619209.
References

[1]  D.  J. Frank, "Power-constrained CMOS scaling limits," IBM J. Res. Dev., vol.  46,
pp. 235-244, 2002.
[2] P. P. Gelsinger, "Microprocessors for the new millennium: Challenges, opportunities,
and new frontiers," in Proc. IEEE Int. Solid-State Circuits Conf., 2001, pp. 22-25.
[3] K. Bhaduri, K. Das, K. Liu, H. Kargupta, and J. Ryan. (2008). Distributed data mining bibliography. [Online]. Available: http://www.csee.umbc.edu/~hillol/DDMBIB/
ddmbib.pdf (accessed 4 Nov. 2015)
[4] C. Chu, S. K. Kim, Y.-A. Lin, Y. Yu, G. Bradski, A. Y. Ng, and K. Olukotun, "Mapreduce for machine learning on multicore," Adv. Neural Inform. Process. Syst., vol.  19,
p. 281, 2007.
[5] A. Umbarkar and M. Joshi, "Review of parallel genetic algorithm based on computing
paradigm and diversity in search space," ICTACT J. Soft Comput., vol. 3, pp. 615-622,
2013.
[6] I. Robles, R. Alcalá, J. M. Benítez, and F. Herrera, "Evolutionary parallel and gradually distributed lateral tuning of fuzzy rule-based systems," Evol. Intell., vol. 2, no. 1-2,
pp. 5-19, 2009.
[7] G. Luque, E. Alba, and B. Dorronsoro, "Parallel genetic algorithms," in Parallel Metaheuristics: A New Class of Algorithms, 2005, pp. 107-125.
[8] H. Adeli and K. C. Sarma, Cost Optimization of Structures: Fuzzy Logic, Genetic Algorithms, and Parallel Computing. New York: Wiley, 2006.
[9] A. Agarwal, O. Chapelle, M. Dudík, and J. Langford, "A reliable effective terascale
linear learning system," J. Mach. Learn. Res., vol. 15, pp. 1111-1133, 2014.
[10] G. D. F. Morales and A. Bifet, "SAMOA: Scalable advanced massive online analysis,"
J. Mach. Learn. Res., vol. 16, pp. 149-153, 2015.
[11]  D.  Eddelbuettel. (2015). High-Performance and Parallel Computing with R. Available:
http://cran.r-project.org/web/views/HighPerformanceComputing.html
[12] G. Sharma and J. Martin, "Matlab®: A language for parallel computing," Int. J. Parallel
Program., vol. 37, no. 1, pp. 3-36, 2009.
[13]  M.  Kane, J.  W. Emerson, and S.  Weston, "Scalable strategies for computing with
massive data," J. Stat. Softw., vol. 55, no. 14, pp. 1-19, 2013.
[14] F. Neese, "The ORCA program system," Wiley Interdiscipl. Rev.: Computat. Mol. Sci.,
vol. 2, no. 1, pp. 73-78, 2012.
[15] D. May, "OCCAM," ACM SIGPLAN Notices, vol. 18, no. 4, pp. 69-79, 1983.
[16]  L.  Tierney, A.  J. Rossini, N.  Li, and H.  Sevcikova. (2015). SNOW: Simple Network of Workstations. R package version 0.4-1. Available: http://CRAN.R-project.org/
package=snow

54

ieee Computational intelligenCe magazine | may 2016

[17] M. P. I. Forum, "MPI: A message-passing interface standard," Knoxville, TN, Tech.
Rep., 1994.
[18] S. Gregory, Parallel Logic Programming in PARLOG: The Language and Its Implementation
(International Series in Logic Programming, ser.). Boston, MA: Addison-Wesley, 1987.
[19] M. Odersky et al., "An overview of the Scala programming language," EPFL, Lausanne, Switzerland, Tech. Rep. IC/2004/64, 2004.
[20] J. Alcalá-Fdez and J. M. Alonso, "Special issue on software tools for soft computing,"
Int. J. Computat. Intell. Syst., vol. 6, no. 1, pp. 1-2, 2013.
[21] J. Alcalá-Fdez and J. Alonso, "A survey of fuzzy systems software: Taxonomy, current
research trends and prospects," IEEE Trans. Fuzzy Syst., vol. 24, no. 1, pp. 40-56, 2015.
[22] S. R. Piccolo and L. J. Frey, "Ml-f lex: A f lexible toolbox for performing classification
analyses in parallel," J. Mach. Learn. Res., vol. 13, no. 1, pp. 555-559, 2012.
[23] M. Schmidberger, M. Morgan, D. Eddelbuettel, H. Yu, L. Tierney, and U. Mansmann, "Stateof-the-art in parallel computing with R," J. Stat. Softw., vol. 47, no. 1, pp. 1-27, 2009.
[24]  Y.  Low, J.  Gonzalez, A.  Kyrola, D.  Bickson, C.  Guestrin, and J.  M. Hellerstein.
(2010). GraphLab: A new framework for parallel machine learning. CoRR. [Online].
Available: http://arxiv.org/abs/1006.4990
[25] E. P. Xing, Q. Ho, W. Dai, J. K. Kim, J. Wei, S. Lee, X. Zheng, P. Xie, A. Kumar,
and Y. Yu, "Petuum: A new platform for distributed machine learning on big data," in Proc.
21st ACM SIGKDD Int. Conf. Knowledge Discovery and Data Mining, 2015, pp. 1335-1344.
[26]  R.  Warburton, Java 8 Lambdas: Pragmatic Functional Programming. O'Reilly Media,
Inc., 2014.
[27] R.-G. Urma, M. Fusco, and A. Mycroft, Java 8 in Action. Manning, 2014.
[28] J. Dean and S. Ghemawat, "MapReduce: Simplified data processing on large clusters,"
in Proc. 6th Conf. Symp. Opearting Systems Design and Implementation, 2004, pp. 137-150.
[29] M. Zaharia, M. Chowdhury, M. J. Franklin, S. Shenker, and I. Stoica, "Spark: Cluster computing with working sets," in Proc. 2nd USENIX Conf. Hot Topics in Cloud Computing, 2010, pp. 1-7.
[30] A. Alexandrov, R. Bergmann, S. Ewen, J.-C. Freytag, F. Hueske, A. Heise, O. Kao,
M. Leich, U. Leser, V. Markl et al., "The stratosphere platform for big data analytics," Int.
J. Very Large Data Bases, vol. 23, no. 6, pp. 939-964, 2014.
[31] J. Pearl, Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference. San
Mateo, CA.: Morgan Kaufmann, 1988.
[32] S. Lauritzen, Graphical Models. London, U.K.: Oxford Univ. Press, 1996.
[33]  F.  V. Jensen and T.  D. Nielsen, Bayesian Networks and Decision Graphs. London:
Springer-Verlag, 2007.
[34]  D.  Koller and N.  Friedman, Probabilistic Graphical Models: Principles and Techniques.
Cambridge, MA: MIT, 2009.
[35] O. Pourret, P. Naïm, and B. Marcot, Bayesian Networks: A Practical Guide to Applications. Hoboken, NJ: Wiley, 2008.
[36] S. L. Lauritzen, "Propagation of probabilities, means, and variances in mixed graphical association models," J. Amer. Stat. Assoc., vol. 87, no. 420, pp. 1098-1108, 1992.
[37] S. Lauritzen and F. Jensen, "Stable local computation with conditional Gaussian distributions," Stat. Comput., vol. 11, no. 2, pp. 191-203, 2001.
[38] K. Murphy, "The Bayes net toolbox for Matlab," Comput. Sci. Stat., vol. 33, no. 2,
pp. 1024-1034, 2001.
[39] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable
Object-Oriented Software. Pearson Education, 1994.
[40] J. M. Winn and C. M. Bishop, "Variational message passing," J. Mach. Learn. Res.,
vol. 6, pp. 661-694, 2005.
[41] F. W. Scholz, "Maximum likelihood estimation," Encyclopedia of Statistical Sciences,
2004, pp. 1-11.
[42] C. A. Swann, "Maximum likelihood estimation using parallel computing: An introduction to MPI," Computat. Econ., vol. 19, no. 2, pp. 145-178, 2002.
[43] J. Hammersley and D. Handscomb, Monte Carlo Methods. Methuen & Co, 1964.
[44]  J.-B. Tristan, D.  Huang, J.  Tassarotti, A.  C. Pocock, S.  Green, and G.  L. Steele,
"Augur: Data-parallel probabilistic modeling," in Advances in Neural Information Processing
Systems, 2014, pp. 2600-2608.
[45]  A.  Salmerón, D.  Ramos-López, H.  Borchani, A.  Fernández, A.  M. Martínez,
A. Masegosa, H. Langeth, A. L. Madsen, and T. D. Nielsen, "Parallel importance sampling in conditional linear Gaussian networks," in Proc. 16th Conf. Spanish Association for
Artificial Intelligence, 2015, pp. 36-46.
[46] D. Heckerman, D. Geiger, and D. M. Chickering, "Learning Bayesian networks: The
combination of knowledge and statistical data," Mach. Learn., vol. 20, no. 3, pp. 197-243, 1995.
[47]  R.  Kohavi and G.  H. John, "Wrappers for feature subset selection," Artif. Intell.,
vol. 97, no. 1, pp. 273-324, 1997.
[48]  M.  Kearns, "Efficient noise-tolerant learning from statistical queries," J. ACM,
vol. 45, no. 6, pp. 983-1006, 1998.
[49] T. Broderick, N. Boyd, A. Wibisono, A. C. Wilson, and M. I. Jordan, "Streaming
variational Bayes," in Advances in Neural Information Processing Systems, 2013, pp. 1727-1735.
[50]  X.  Tian, A.  Bik, M.  Girkar, P.  Grey, H.  Saito, and E.  Su, "Intel[textregistered]
OpenMp C++/Fortran compiler for hyper-threading technology: Implementation and
performance," Intel Technol. J., vol. 6, no. 1, 2002.
[51]  H.  Borchani, A.  M. Martínez, A.  Masegosa, H.  Langseth, T.  D. Nielsen, A.  Salmerón,
A. Fernández, A. L. Madsen, and R. Sáez, "Modeling concept drift: A probabilistic graphical
model based approach," in Proc. 14th Int. Symp. Intelligent Data Analysis, 2015, pp. 72-83.
[52]  H.  Borchani, A.  M. Martínez, A.  Masegosa, H.  Langseth, T.  D. Nielsen, A.  Salmerón,
A. Fernández, A. L. Madsen, and R. Sáez, "Dynamic Bayesian modeling for risk prediction in
credit operations," in Proc. 13th Scandinavian Conf. Artificial Intelligence, 2015, pp. 17-26.
[53] X. Su, G. Swart, B. Goetz, B. Oliver, and P. Sandoz, "Changing engines in midstream: A Java stream computational model for big data processing," Proc. VLDB Endowment, vol. 7, no. 13, pp. 1343-1354, 2014.


http://www.arxiv.org/abs/1006.4990 http://www.csee.umbc.edu/~hillol/DDMBIB/ http://cran.r-project.org/web/views/HighPerformanceComputing.html http://CRAN.R-project.org/

Table of Contents for the Digital Edition of Computational Intelligence - May 2016

Computational Intelligence - May 2016 - Cover1
Computational Intelligence - May 2016 - Cover2
Computational Intelligence - May 2016 - 1
Computational Intelligence - May 2016 - 2
Computational Intelligence - May 2016 - 3
Computational Intelligence - May 2016 - 4
Computational Intelligence - May 2016 - 5
Computational Intelligence - May 2016 - 6
Computational Intelligence - May 2016 - 7
Computational Intelligence - May 2016 - 8
Computational Intelligence - May 2016 - 9
Computational Intelligence - May 2016 - 10
Computational Intelligence - May 2016 - 11
Computational Intelligence - May 2016 - 12
Computational Intelligence - May 2016 - 13
Computational Intelligence - May 2016 - 14
Computational Intelligence - May 2016 - 15
Computational Intelligence - May 2016 - 16
Computational Intelligence - May 2016 - 17
Computational Intelligence - May 2016 - 18
Computational Intelligence - May 2016 - 19
Computational Intelligence - May 2016 - 20
Computational Intelligence - May 2016 - 21
Computational Intelligence - May 2016 - 22
Computational Intelligence - May 2016 - 23
Computational Intelligence - May 2016 - 24
Computational Intelligence - May 2016 - 25
Computational Intelligence - May 2016 - 26
Computational Intelligence - May 2016 - 27
Computational Intelligence - May 2016 - 28
Computational Intelligence - May 2016 - 29
Computational Intelligence - May 2016 - 30
Computational Intelligence - May 2016 - 31
Computational Intelligence - May 2016 - 32
Computational Intelligence - May 2016 - 33
Computational Intelligence - May 2016 - 34
Computational Intelligence - May 2016 - 35
Computational Intelligence - May 2016 - 36
Computational Intelligence - May 2016 - 37
Computational Intelligence - May 2016 - 38
Computational Intelligence - May 2016 - 39
Computational Intelligence - May 2016 - 40
Computational Intelligence - May 2016 - 41
Computational Intelligence - May 2016 - 42
Computational Intelligence - May 2016 - 43
Computational Intelligence - May 2016 - 44
Computational Intelligence - May 2016 - 45
Computational Intelligence - May 2016 - 46
Computational Intelligence - May 2016 - 47
Computational Intelligence - May 2016 - 48
Computational Intelligence - May 2016 - 49
Computational Intelligence - May 2016 - 50
Computational Intelligence - May 2016 - 51
Computational Intelligence - May 2016 - 52
Computational Intelligence - May 2016 - 53
Computational Intelligence - May 2016 - 54
Computational Intelligence - May 2016 - 55
Computational Intelligence - May 2016 - 56
Computational Intelligence - May 2016 - 57
Computational Intelligence - May 2016 - 58
Computational Intelligence - May 2016 - 59
Computational Intelligence - May 2016 - 60
Computational Intelligence - May 2016 - 61
Computational Intelligence - May 2016 - 62
Computational Intelligence - May 2016 - 63
Computational Intelligence - May 2016 - 64
Computational Intelligence - May 2016 - 65
Computational Intelligence - May 2016 - 66
Computational Intelligence - May 2016 - 67
Computational Intelligence - May 2016 - 68
Computational Intelligence - May 2016 - 69
Computational Intelligence - May 2016 - 70
Computational Intelligence - May 2016 - 71
Computational Intelligence - May 2016 - 72
Computational Intelligence - May 2016 - Cover3
Computational Intelligence - May 2016 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202311
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202308
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202305
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202302
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202211
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202208
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202205
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202202
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202111
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202108
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202105
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202102
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202011
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202008
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202005
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_202002
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_201911
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_201908
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_201905
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_201902
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_201811
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_201808
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_201805
https://www.nxtbook.com/nxtbooks/ieee/computationalintelligence_201802
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_winter17
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_fall17
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_summer17
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_spring17
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_winter16
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_fall16
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_summer16
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_spring16
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_winter15
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_fall15
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_summer15
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_spring15
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_winter14
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_fall14
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_summer14
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_spring14
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_winter13
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_fall13
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_summer13
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_spring13
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_winter12
https://www.nxtbook.com/nxtbooks/ieee/computational_intelligence_fall12
https://www.nxtbookmedia.com