a more direct access and that could be an advantage,
although this has not been shown in our experiments
through the scaling capability.
Among the new trends in pGAs are new parallel
platforms, the new languages with built-in concurrent
abstractions are parallel platforms too, and their use
for developing pGAs can be a very good approach for
new GA developments. The functional side, which is
present in all of them, is a key component to compose
software components and simplifying the communi-
cation strategies among concurrent activities. In the
pGA model used in this work the chosen GA archi-
tecture is concurrent-rich but the implementation re-
mains simple thanks of the high level of abstraction
of the implementation technologies.
Our experiments show that the performance of
Scala is the best and point to Erlang as a very scal-
able runtime.
In order to complete the methodology we plan to
study others concurrent oriented languages such Go,
Haskell, and F# as well as going deeper in other con-
current features of the already studied languages.
We are also planning to enrich the experiments
with more complex cases of study and to test the li-
braries in heterogeneous hardware in order to check
the scalability of each language.
REFERENCES
A. Bienz, K. Fokle, Z. K. E. Z. and Thede, S. (2011). A
generalized parallel genetic algorithm in Erlang. In
Proceedings of Midstates Conference on Undergrad-
uate Research in Computer Science and Mathematics.
Alba, E. (2002). Parallel evolutionary algorithms can
achieve super-linear performance. Information Pro-
cessing Letters, 82:7–13.
Alba, E. and Troya, J. M. (2001). Analyzing Synchronous
and Asynchronous Parallel Distributed Genetic Algo-
rithms. Future Generation Computer Systems - Spe-
cial issue on bioimpaired solutions to parallel pro-
cessing problems, 17.
Albert-Cruz, J., Acevedo-Mart
´
ınez, L., Merelo, J., Castillo,
P., and Arenas, M. (2013). Adaptando algoritmos evo-
lutivos paralelos al lenguaje funcional erlang. MAEB
2013 - IX Congreso Espa
´
nol de Metaheur
´
ısticas, Al-
goritmos Evolutivos y Bioinspirados.
Armstrong, J. (2003). Concurrency oriented programming
in erlang.
Briggs, F. and O’Neill, M. (2008). Functional genetic pro-
gramming and exhaustive program search with com-
binator expressions. Int. J. Know.-Based Intell. Eng.
Syst., 12(1):47–68.
Cruz, J. A., Guerv
´
os, J. J. M., Garc
´
ıa, A. M., and de las
Cuevas, P. (2013). Adapting evolutionary algorithms
to the concurrent functional language Erlang. In
GECCO (Companion), pages 1723–1724.
Goldberg, D. E. (1989). Genetic Algorithms in search, op-
timization and machine learning. Addison Wesley.
Hawkins, J. and Abdallah, A. (2001). A generic functional
genetic algorithm. In Proceedings of the ACS/IEEE
International Conference on Computer Systems and
Applications, AICCSA ’01, pages 11–, Washington,
DC, USA. IEEE Computer Society.
Hoare, C. A. R. (1978). Communicating sequential pro-
cesses. Commun. ACM, 21(8):666–677.
Hoos, H. H. and Stutzle, T. (2000). Satlib: An online re-
source for research on sat. In I.P.Gent, H.v.Maaren,
T., editor, SAT 2000, pages 283–292, www.satlib.org.
IOS Press.
Huelsbergen, L. (1996). Toward simulated evolution of
machine-language iteration. In Proceedings of the
First Annual Conference on Genetic Programming,
GECCO ’96, pages 315–320, Cambridge, MA, USA.
MIT Press.
Kerdprasop, K. and Kerdprasop, N. (2013). Concurrent data
mining and genetic computing implemented with er-
lang language. International Journal of Software En-
gineering and Its Applications, 7(3).
Luque, G. and Alba, E. (2011). Parallel Genetic Algo-
rithms, Theory and Real World Applications, chapter
Parallel Models for Genetic Algorithms, pages 15–30.
Springer-Verlag Berlin Heidelberg.
Merelo-Guerv
´
os, J.-J., Arenas, M. G., Carpio, J., Castillo,
P., Rivas, V. M., Romero, G., and Schoenauer, M.
(2000). Evolving objects. In Wang, P. P., editor,
Proc. JCIS 2000 (Joint Conference on Information
Sciences), volume I, pages 1083–1086. ISBN: 0-
9643456-9-2.
Merelo-Guerv
´
os, J.-J., Romero, G., Garc
´
ıa-Arenas, M.,
Castillo, P. A., Mora, A.-M., and Jim
´
enez-Laredo,
J.-L. (2011). Implementation matters: Program-
ming best practices for evolutionary algorithms. In
Cabestany, J., Rojas, I., and Caparr
´
os, G. J., editors,
IWANN (2), volume 6692 of Lecture Notes in Com-
puter Science, pages 333–340. Springer.
Santos, L. (2002). Evolutionary Computation in Ada95,
A Genetic Algorithm approach. Ada User Journal,
23(4).
Sher, G. I. (2013). Handbook of Neuroevolution Through
Erlang. Springer.
Walsh, P. (1999). A functional style and fitness evaluation
scheme for inducting high level programs. In Banzhaf,
W., Daida, J., Eiben, A. E., Garzon, M. H., Honavar,
V., Jakiela, M., and Smith, R. E., editors, Proceedings
of the Genetic and Evolutionary Computation Confer-
ence, volume 2, pages 1211–1216, Orlando, Florida,
USA. Morgan Kaufmann.
ImplementingParallelGeneticAlgorithmUsingConcurrent-functionalLanguages
175