SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Implementing parallel evolutionary algorithms
in concurrent and functional paradigms
Author: MSc. Jos´e Albert Cruz Almaguer
Tutors: Dr. Juan Juli´an Merelo Guerv´os (UGR)
Dr.C. Liesner Acevedo Mart´ınez (UCI)
Universidad de Granada, Grupo GENEURA
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Summary
1 New Trends in pGAs
Novelty
2 Modeling pGAs
pGA’s Concepts
Language comparisons
3 Sample of Canonicals island/GA
Scala samples
Erlang samples
Clojure samples
4 Results
5 Conclusions
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Novelty
Evolutionary Algorithms
New parallel platforms are identified as new
trends in pGAs
Only hardware is considered and software
platforms remains practically unexplored
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Novelty
Software industry
Developing correct software
Two of the more promising are: functional and
concurrent
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Novelty
Programming paradigms
Functional: functions like first class concepts,
and for encouraging to do not use state changes
Concurrent: characterized by the presence of
programming constructs for managing processes
like first class objects
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Novelty
Programming languages: Clojure
Lisp variant
STM/agent/futures
JVM
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Novelty
Programming languages: Erlang
Prolog-like
Functional
Actor based concurrency
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Novelty
Programming languages: Scala
OO/Functional
Akka: Actor based concurrency
JVM
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
pGA’s Concepts
Parallel GA’s components
AG Component Rol
chromosome Representing the solution.
evaluated
chromosome
Pair {chromosome, fitness}.
population Set of chromosomes.
crossover Relation between two chromo-
somes producing other two new
ones.
mutation A chromosome modification.
selection Means of population filtering.
pool Shared population among no-
de’s calculating units.
island Topology’s node.
migration Chromosome interchange.
evolution/evaluation Execution.
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Language comparisons
Language comparisons
Erlang Scala Clojure
Parallel executing
unit
actor actor agent
Communication
(messages)
tuple tuple function
(protocol)
pool ets HashMap hash-map
DS chromosome list list vector
DS population list list lazy list
Compound data tuple tuple/object record/vector
Runtime environ-
ment
Erlang VM Java VM Java VM
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Scala samples
Scala
Listing 1: Actor declaration.
class Island extends Actor {
// Set of actors (workers)
var workers: Set[ActorRef] = _
def receive = {
case ’start =>
// All executing units to work!
workers.forEach(_ ! ’start)
}
}
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Scala samples
Scala
Listing 2: Functional processing of data.
def bestSolution(): (AnyRef, Int) = {
val evals = table.filter((a: (List, (Int, Int))) =>
a._2._2 == 2).toList
if (evals.isEmpty) (null, -1)
else {
val red = evals.reduce(
(a: (List, (Int, Int)), b: (List, (Int, Int))) =>
if (a._2._1 < b._2._1) b else a)
(red._1, red._2._1)
}
}
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Scala samples
Scala
Listing 3: Main code.
// Creating 4 i s l a n d s
val i s l a n d s = for ( <− 1 to 4)
yi el d sys . actorOf ( Props [ I s l a n d ] )
// Puting the migrants d e s t i n a t i o n & s t a r t
// each i s l a n d
for ( i <− 0 to 3){
i s l a n d s ( i ) ! ( ’ migrantsDest ,
i s l a n d s (( i +1) %4))
i s l a n d s ( i ) ! ’ s t a r t
}
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Erlang samples
Erlang
Listing 4: Actor declaration.
-record(island, {
workers
}).
-module(island).
start() ->
Pid = spawn(island, loop, [#island{}]),
Pid.
loop(D) ->
receive
start ->
lists:foreach(fun(W) -> W ! start end, D#island.workers),
loop(D)
end.
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Erlang samples
Erlang
Listing 5: Functional processing of data.
bestSolution(TableName) ->
Sels = ets:select(TableName,
ets:fun2ms(fun({Ind, Fit, State})
when State == 2 -> {Ind, Fit} end)),
LSels = length(Sels),
if
LSels > 0 ->
lists:foldl(
fun({I1, F1}, {I2, F2}) ->
if F1 < F2 ->
{I2, F2};
true -> {I1, F1}
end
end, lists:last(Sels), Sels);
true -> {null, -1}
end.
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Erlang samples
Erlang
Listing 6: Main code.
I s l a n d s = [ i s l a n d : s t a r t () | | <− l i s t s : seq (1 , 4) ]
l i s t s : foreach ( fun ( I ) −>
I e = l i s t s : nth ( I , I s l a n d s ) ,
I e ! { migrantsDest ,
l i s t s : nth (( i +1) rem 4 , I s l a n d s ) } ,
I e ! s t a r t
end ,
l i s t s : seq (0 , 3))
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Clojure samples
Clojure
Listing 7: Data structure declaration.
(defrecord TIsland [workers])
(ns island)
(defprotocol Island
(start [self])
)
(extend-type TIsland
island/Island
(start [self]
(doseq [w @(.workers self)]
(send w worker/start)
)
)
)
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Clojure samples
Clojure
Listing 8: Functional processing of data.
(bestSolution [self]
(let [
evals (for [[ind [fit state]] @(.table self)
:when (= state 2)]
[ind fit]
)
]
(if (empty? evals)
[nil -1]
(reduce #(if (< ( %1 1) ( %2 1)) %2 %1) evals)
)
)
)
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Clojure samples
Clojure
Listing 9: Main code.
( l et
[ i s l a n d s ( for [ ( range 4) ]
( agent ( i s l a n d / c r e a t e ) ) )
]
( doseq [ i ( range 4) ]
( send ( nth i s l a n d s i )
i s l a n d / migrantsDest
( nth i s l a n d s
(mod ( inc i ) 4)))
( send ( nth i s l a n d s i )
i s l a n d / s t a r t )
)
)
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Results
Experiment results for the minimum parallel time of all combinations
tested
Lang Parallel time
± SD (ms)
Ws
comb
Seq time
(ms)
RSpeedup Speedup
Erlang 2920.40 ±
126
25 E,
1 R
8143.3 2.7884 0.5519
Clojure 1734.66 ±
28.32
10 E,
1 R
3340.2222 1.9255 0.9292
Scala 563 ± 24.32 6 E, 1
R
1651.8 2.8632 2.8632
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Results
Experiment results
Fig. 1. Parallel running times
for one reproducer.
0 5 10 15 20 25 30
1,000
2,000
3,000
4,000
Number of evaluators
Paralleltime(ms)
Erlang
Clojure
Scala
Fig. 2. Parallel running times
for two reproducers.
0 5 10 15 20 25 30
0
2,000
4,000
6,000
8,000
Number of evaluatorsParalleltime(ms)
Erlang
Clojure
Scala
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Conclusions
Conclusions
Simplicity of the implementation of a hybrid parallel
genetic algorithm in functional-concurrent languages
When a shared data structure is needed this language
allows a more direct access and that could be an
advantage
Among the new trends in pGAs are new parallel platforms,
the new languages with concurrent abstractions build-in
are parallel platforms too
New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions
Conclusions
Conclusions
The functional side is a key component to compose
software components and simplify the communication
strategies among concurrent activities
The performance of Scala is the best and point to Erlang
as a very scalable runtime

Más contenido relacionado

La actualidad más candente

쉽게 설명하는 GAN (What is this? Gum? It's GAN.)
쉽게 설명하는 GAN (What is this? Gum? It's GAN.)쉽게 설명하는 GAN (What is this? Gum? It's GAN.)
쉽게 설명하는 GAN (What is this? Gum? It's GAN.)Hansol Kang
 
On unifying query languages for RDF streams
On unifying query languages for RDF streamsOn unifying query languages for RDF streams
On unifying query languages for RDF streamsDaniele Dell'Aglio
 
Parallel Datalog Reasoning in RDFox Presentation
Parallel Datalog Reasoning in RDFox PresentationParallel Datalog Reasoning in RDFox Presentation
Parallel Datalog Reasoning in RDFox PresentationDBOnto
 
Air Pollution in Nova Scotia: Analysis and Predictions
Air Pollution in Nova Scotia: Analysis and PredictionsAir Pollution in Nova Scotia: Analysis and Predictions
Air Pollution in Nova Scotia: Analysis and PredictionsCarlo Carandang
 
Flux and InfluxDB 2.0
Flux and InfluxDB 2.0Flux and InfluxDB 2.0
Flux and InfluxDB 2.0InfluxData
 
Grid based distributed in memory indexing for moving objects
Grid based distributed in memory indexing for moving objectsGrid based distributed in memory indexing for moving objects
Grid based distributed in memory indexing for moving objectsYunsu Lee
 
Building Scalable Semantic Geospatial RDF Stores
Building Scalable Semantic Geospatial RDF StoresBuilding Scalable Semantic Geospatial RDF Stores
Building Scalable Semantic Geospatial RDF StoresKostis Kyzirakos
 
High Performance Systems Without Tears - Scala Days Berlin 2018
High Performance Systems Without Tears - Scala Days Berlin 2018High Performance Systems Without Tears - Scala Days Berlin 2018
High Performance Systems Without Tears - Scala Days Berlin 2018Zahari Dichev
 
OPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACKOPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACKInfluxData
 
Faster Workflows, Faster
Faster Workflows, FasterFaster Workflows, Faster
Faster Workflows, FasterKen Krugler
 
LarKC Tutorial at ISWC 2009 - Data Model
LarKC Tutorial at ISWC 2009 - Data ModelLarKC Tutorial at ISWC 2009 - Data Model
LarKC Tutorial at ISWC 2009 - Data ModelLarKC
 
Cw_climgen_patternscaler
Cw_climgen_patternscalerCw_climgen_patternscaler
Cw_climgen_patternscalerCraig Wallace
 
building global software/earthcube->sciencecloud
building global software/earthcube->sciencecloudbuilding global software/earthcube->sciencecloud
building global software/earthcube->sciencecloudIan Foster
 
H2O World - PySparkling Water - Nidhi Mehta
H2O World - PySparkling Water - Nidhi MehtaH2O World - PySparkling Water - Nidhi Mehta
H2O World - PySparkling Water - Nidhi MehtaSri Ambati
 
ChangeMacroRecorder: Recording Fine-Grained Textual Changes of Source Code
ChangeMacroRecorder: Recording Fine-Grained Textual Changes of Source CodeChangeMacroRecorder: Recording Fine-Grained Textual Changes of Source Code
ChangeMacroRecorder: Recording Fine-Grained Textual Changes of Source CodeShinpei Hayashi
 
OPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACKOPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACKInfluxData
 

La actualidad más candente (20)

쉽게 설명하는 GAN (What is this? Gum? It's GAN.)
쉽게 설명하는 GAN (What is this? Gum? It's GAN.)쉽게 설명하는 GAN (What is this? Gum? It's GAN.)
쉽게 설명하는 GAN (What is this? Gum? It's GAN.)
 
On unifying query languages for RDF streams
On unifying query languages for RDF streamsOn unifying query languages for RDF streams
On unifying query languages for RDF streams
 
Parallel Datalog Reasoning in RDFox Presentation
Parallel Datalog Reasoning in RDFox PresentationParallel Datalog Reasoning in RDFox Presentation
Parallel Datalog Reasoning in RDFox Presentation
 
Introduction to Spark
Introduction to SparkIntroduction to Spark
Introduction to Spark
 
Air Pollution in Nova Scotia: Analysis and Predictions
Air Pollution in Nova Scotia: Analysis and PredictionsAir Pollution in Nova Scotia: Analysis and Predictions
Air Pollution in Nova Scotia: Analysis and Predictions
 
Flux and InfluxDB 2.0
Flux and InfluxDB 2.0Flux and InfluxDB 2.0
Flux and InfluxDB 2.0
 
DaWaK'07
DaWaK'07DaWaK'07
DaWaK'07
 
Grid based distributed in memory indexing for moving objects
Grid based distributed in memory indexing for moving objectsGrid based distributed in memory indexing for moving objects
Grid based distributed in memory indexing for moving objects
 
Building Scalable Semantic Geospatial RDF Stores
Building Scalable Semantic Geospatial RDF StoresBuilding Scalable Semantic Geospatial RDF Stores
Building Scalable Semantic Geospatial RDF Stores
 
Ascoli et al. 2014 ICFFR
Ascoli et al. 2014 ICFFRAscoli et al. 2014 ICFFR
Ascoli et al. 2014 ICFFR
 
High Performance Systems Without Tears - Scala Days Berlin 2018
High Performance Systems Without Tears - Scala Days Berlin 2018High Performance Systems Without Tears - Scala Days Berlin 2018
High Performance Systems Without Tears - Scala Days Berlin 2018
 
OPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACKOPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACK
 
Faster Workflows, Faster
Faster Workflows, FasterFaster Workflows, Faster
Faster Workflows, Faster
 
LarKC Tutorial at ISWC 2009 - Data Model
LarKC Tutorial at ISWC 2009 - Data ModelLarKC Tutorial at ISWC 2009 - Data Model
LarKC Tutorial at ISWC 2009 - Data Model
 
Cw_climgen_patternscaler
Cw_climgen_patternscalerCw_climgen_patternscaler
Cw_climgen_patternscaler
 
Pres
PresPres
Pres
 
building global software/earthcube->sciencecloud
building global software/earthcube->sciencecloudbuilding global software/earthcube->sciencecloud
building global software/earthcube->sciencecloud
 
H2O World - PySparkling Water - Nidhi Mehta
H2O World - PySparkling Water - Nidhi MehtaH2O World - PySparkling Water - Nidhi Mehta
H2O World - PySparkling Water - Nidhi Mehta
 
ChangeMacroRecorder: Recording Fine-Grained Textual Changes of Source Code
ChangeMacroRecorder: Recording Fine-Grained Textual Changes of Source CodeChangeMacroRecorder: Recording Fine-Grained Textual Changes of Source Code
ChangeMacroRecorder: Recording Fine-Grained Textual Changes of Source Code
 
OPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACKOPTIMIZING THE TICK STACK
OPTIMIZING THE TICK STACK
 

Similar a Implementing parallel evolutionary algorithms in concurrent and functional paradigmsConcurrent lps-p e-as - jalbert - geneura 2014

Aghora A High-Order DG Solver for Turbulent Flow Simulations.pdf
Aghora  A High-Order DG Solver for Turbulent Flow Simulations.pdfAghora  A High-Order DG Solver for Turbulent Flow Simulations.pdf
Aghora A High-Order DG Solver for Turbulent Flow Simulations.pdfSandra Valenzuela
 
Developing R Graphical User Interfaces
Developing R Graphical User InterfacesDeveloping R Graphical User Interfaces
Developing R Graphical User InterfacesSetia Pramana
 
Sparkling Water Meetup
Sparkling Water MeetupSparkling Water Meetup
Sparkling Water MeetupSri Ambati
 
A Knowledge-based System for Classifying Particle Reaction and Decay Processes
A Knowledge-based System for Classifying Particle Reaction and Decay ProcessesA Knowledge-based System for Classifying Particle Reaction and Decay Processes
A Knowledge-based System for Classifying Particle Reaction and Decay ProcessesWaqas Tariq
 
Interactive Session on Sparkling Water
Interactive Session on Sparkling WaterInteractive Session on Sparkling Water
Interactive Session on Sparkling WaterSri Ambati
 
Valerii Vasylkov Erlang. measurements and benefits.
Valerii Vasylkov Erlang. measurements and benefits.Valerii Vasylkov Erlang. measurements and benefits.
Valerii Vasylkov Erlang. measurements and benefits.Аліна Шепшелей
 
SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"
SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"
SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"Inhacking
 
Improving Genetic Algorithm (GA) based NoC mapping algorithm using a formal ...
Improving Genetic Algorithm (GA)  based NoC mapping algorithm using a formal ...Improving Genetic Algorithm (GA)  based NoC mapping algorithm using a formal ...
Improving Genetic Algorithm (GA) based NoC mapping algorithm using a formal ...Vinita Palaniveloo
 
CNES @ Scilab Conference 2018
CNES @ Scilab Conference 2018CNES @ Scilab Conference 2018
CNES @ Scilab Conference 2018Scilab
 
On Applying Or-Parallelism and Tabling to Logic Programs
On Applying Or-Parallelism and Tabling to Logic ProgramsOn Applying Or-Parallelism and Tabling to Logic Programs
On Applying Or-Parallelism and Tabling to Logic ProgramsLino Possamai
 
Extending lifespan with Hadoop and R
Extending lifespan with Hadoop and RExtending lifespan with Hadoop and R
Extending lifespan with Hadoop and RRadek Maciaszek
 
General Cryptography :WHY JOHNNY THE DEVELOPER CAN’T WORK WITH PUBLIC KEY CER...
General Cryptography :WHY JOHNNY THE DEVELOPER CAN’T WORK WITH PUBLIC KEY CER...General Cryptography :WHY JOHNNY THE DEVELOPER CAN’T WORK WITH PUBLIC KEY CER...
General Cryptography :WHY JOHNNY THE DEVELOPER CAN’T WORK WITH PUBLIC KEY CER...Priyanka Aash
 
tranSMART Community Meeting 5-7 Nov 13 - Session 3: transmart-data
tranSMART Community Meeting 5-7 Nov 13 - Session 3: transmart-datatranSMART Community Meeting 5-7 Nov 13 - Session 3: transmart-data
tranSMART Community Meeting 5-7 Nov 13 - Session 3: transmart-dataDavid Peyruc
 
Rapport_Cemracs2012
Rapport_Cemracs2012Rapport_Cemracs2012
Rapport_Cemracs2012Jussara F.M.
 
SSN-TC workshop talk at ISWC 2015 on Emrooz
SSN-TC workshop talk at ISWC 2015 on EmroozSSN-TC workshop talk at ISWC 2015 on Emrooz
SSN-TC workshop talk at ISWC 2015 on EmroozMarkus Stocker
 
ESTIMATE OF THE HEAD PRODUCED BY ELECTRICAL SUBMERSIBLE PUMPS ON GASEOUS PETR...
ESTIMATE OF THE HEAD PRODUCED BY ELECTRICAL SUBMERSIBLE PUMPS ON GASEOUS PETR...ESTIMATE OF THE HEAD PRODUCED BY ELECTRICAL SUBMERSIBLE PUMPS ON GASEOUS PETR...
ESTIMATE OF THE HEAD PRODUCED BY ELECTRICAL SUBMERSIBLE PUMPS ON GASEOUS PETR...ijaia
 

Similar a Implementing parallel evolutionary algorithms in concurrent and functional paradigmsConcurrent lps-p e-as - jalbert - geneura 2014 (20)

Aghora A High-Order DG Solver for Turbulent Flow Simulations.pdf
Aghora  A High-Order DG Solver for Turbulent Flow Simulations.pdfAghora  A High-Order DG Solver for Turbulent Flow Simulations.pdf
Aghora A High-Order DG Solver for Turbulent Flow Simulations.pdf
 
Developing R Graphical User Interfaces
Developing R Graphical User InterfacesDeveloping R Graphical User Interfaces
Developing R Graphical User Interfaces
 
Sparkling Water Meetup
Sparkling Water MeetupSparkling Water Meetup
Sparkling Water Meetup
 
A Knowledge-based System for Classifying Particle Reaction and Decay Processes
A Knowledge-based System for Classifying Particle Reaction and Decay ProcessesA Knowledge-based System for Classifying Particle Reaction and Decay Processes
A Knowledge-based System for Classifying Particle Reaction and Decay Processes
 
Interactive Session on Sparkling Water
Interactive Session on Sparkling WaterInteractive Session on Sparkling Water
Interactive Session on Sparkling Water
 
Real Time Geodemographics
Real Time GeodemographicsReal Time Geodemographics
Real Time Geodemographics
 
Valerii Vasylkov Erlang. measurements and benefits.
Valerii Vasylkov Erlang. measurements and benefits.Valerii Vasylkov Erlang. measurements and benefits.
Valerii Vasylkov Erlang. measurements and benefits.
 
SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"
SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"
SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"
 
Improving Genetic Algorithm (GA) based NoC mapping algorithm using a formal ...
Improving Genetic Algorithm (GA)  based NoC mapping algorithm using a formal ...Improving Genetic Algorithm (GA)  based NoC mapping algorithm using a formal ...
Improving Genetic Algorithm (GA) based NoC mapping algorithm using a formal ...
 
CNES @ Scilab Conference 2018
CNES @ Scilab Conference 2018CNES @ Scilab Conference 2018
CNES @ Scilab Conference 2018
 
23AFMC_Beamer.pdf
23AFMC_Beamer.pdf23AFMC_Beamer.pdf
23AFMC_Beamer.pdf
 
On Applying Or-Parallelism and Tabling to Logic Programs
On Applying Or-Parallelism and Tabling to Logic ProgramsOn Applying Or-Parallelism and Tabling to Logic Programs
On Applying Or-Parallelism and Tabling to Logic Programs
 
Extending lifespan with Hadoop and R
Extending lifespan with Hadoop and RExtending lifespan with Hadoop and R
Extending lifespan with Hadoop and R
 
Alfonso Senatore
Alfonso SenatoreAlfonso Senatore
Alfonso Senatore
 
40120130405025
4012013040502540120130405025
40120130405025
 
General Cryptography :WHY JOHNNY THE DEVELOPER CAN’T WORK WITH PUBLIC KEY CER...
General Cryptography :WHY JOHNNY THE DEVELOPER CAN’T WORK WITH PUBLIC KEY CER...General Cryptography :WHY JOHNNY THE DEVELOPER CAN’T WORK WITH PUBLIC KEY CER...
General Cryptography :WHY JOHNNY THE DEVELOPER CAN’T WORK WITH PUBLIC KEY CER...
 
tranSMART Community Meeting 5-7 Nov 13 - Session 3: transmart-data
tranSMART Community Meeting 5-7 Nov 13 - Session 3: transmart-datatranSMART Community Meeting 5-7 Nov 13 - Session 3: transmart-data
tranSMART Community Meeting 5-7 Nov 13 - Session 3: transmart-data
 
Rapport_Cemracs2012
Rapport_Cemracs2012Rapport_Cemracs2012
Rapport_Cemracs2012
 
SSN-TC workshop talk at ISWC 2015 on Emrooz
SSN-TC workshop talk at ISWC 2015 on EmroozSSN-TC workshop talk at ISWC 2015 on Emrooz
SSN-TC workshop talk at ISWC 2015 on Emrooz
 
ESTIMATE OF THE HEAD PRODUCED BY ELECTRICAL SUBMERSIBLE PUMPS ON GASEOUS PETR...
ESTIMATE OF THE HEAD PRODUCED BY ELECTRICAL SUBMERSIBLE PUMPS ON GASEOUS PETR...ESTIMATE OF THE HEAD PRODUCED BY ELECTRICAL SUBMERSIBLE PUMPS ON GASEOUS PETR...
ESTIMATE OF THE HEAD PRODUCED BY ELECTRICAL SUBMERSIBLE PUMPS ON GASEOUS PETR...
 

Más de José Albert

Usando lenguajes de programación concurrentes para desarrollar algoritmos evo...
Usando lenguajes de programación concurrentes para desarrollar algoritmos evo...Usando lenguajes de programación concurrentes para desarrollar algoritmos evo...
Usando lenguajes de programación concurrentes para desarrollar algoritmos evo...José Albert
 
Plataforma de apoyo al proceso de enseñanza-aprendizaje de la algoritmización...
Plataforma de apoyo al proceso de enseñanza-aprendizaje de la algoritmización...Plataforma de apoyo al proceso de enseñanza-aprendizaje de la algoritmización...
Plataforma de apoyo al proceso de enseñanza-aprendizaje de la algoritmización...José Albert
 
Ambiente virtual y Lenguaje de Domino Específico para la enseñanza de la prog...
Ambiente virtual y Lenguaje de Domino Específico para la enseñanza de la prog...Ambiente virtual y Lenguaje de Domino Específico para la enseñanza de la prog...
Ambiente virtual y Lenguaje de Domino Específico para la enseñanza de la prog...José Albert
 
Programación Multiparadigma, conveniencia y actualidad
Programación Multiparadigma, conveniencia y actualidadProgramación Multiparadigma, conveniencia y actualidad
Programación Multiparadigma, conveniencia y actualidadJosé Albert
 
PSEUDOCÓDIGO EJECUTABLE PARA LA ENSEÑANZA
PSEUDOCÓDIGO EJECUTABLE PARA LA ENSEÑANZAPSEUDOCÓDIGO EJECUTABLE PARA LA ENSEÑANZA
PSEUDOCÓDIGO EJECUTABLE PARA LA ENSEÑANZAJosé Albert
 
Extendiendo C#, COMPUMAT 2007
Extendiendo C#, COMPUMAT 2007Extendiendo C#, COMPUMAT 2007
Extendiendo C#, COMPUMAT 2007José Albert
 

Más de José Albert (6)

Usando lenguajes de programación concurrentes para desarrollar algoritmos evo...
Usando lenguajes de programación concurrentes para desarrollar algoritmos evo...Usando lenguajes de programación concurrentes para desarrollar algoritmos evo...
Usando lenguajes de programación concurrentes para desarrollar algoritmos evo...
 
Plataforma de apoyo al proceso de enseñanza-aprendizaje de la algoritmización...
Plataforma de apoyo al proceso de enseñanza-aprendizaje de la algoritmización...Plataforma de apoyo al proceso de enseñanza-aprendizaje de la algoritmización...
Plataforma de apoyo al proceso de enseñanza-aprendizaje de la algoritmización...
 
Ambiente virtual y Lenguaje de Domino Específico para la enseñanza de la prog...
Ambiente virtual y Lenguaje de Domino Específico para la enseñanza de la prog...Ambiente virtual y Lenguaje de Domino Específico para la enseñanza de la prog...
Ambiente virtual y Lenguaje de Domino Específico para la enseñanza de la prog...
 
Programación Multiparadigma, conveniencia y actualidad
Programación Multiparadigma, conveniencia y actualidadProgramación Multiparadigma, conveniencia y actualidad
Programación Multiparadigma, conveniencia y actualidad
 
PSEUDOCÓDIGO EJECUTABLE PARA LA ENSEÑANZA
PSEUDOCÓDIGO EJECUTABLE PARA LA ENSEÑANZAPSEUDOCÓDIGO EJECUTABLE PARA LA ENSEÑANZA
PSEUDOCÓDIGO EJECUTABLE PARA LA ENSEÑANZA
 
Extendiendo C#, COMPUMAT 2007
Extendiendo C#, COMPUMAT 2007Extendiendo C#, COMPUMAT 2007
Extendiendo C#, COMPUMAT 2007
 

Último

eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionsNirav Modi
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesSoftwareMill
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Jaydeep Chhasatia
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmonyelliciumsolutionspun
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadIvo Andreev
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Neo4j
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIIvo Andreev
 
About .NET 8 and a first glimpse into .NET9
About .NET 8 and a first glimpse into .NET9About .NET 8 and a first glimpse into .NET9
About .NET 8 and a first glimpse into .NET9Jürgen Gutsch
 
Kubernetes go-live checklist for your microservices.pptx
Kubernetes go-live checklist for your microservices.pptxKubernetes go-live checklist for your microservices.pptx
Kubernetes go-live checklist for your microservices.pptxPrakarsh -
 
Watermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesWatermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesShyamsundar Das
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?AmeliaSmith90
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampVICTOR MAESTRE RAMIREZ
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilVICTOR MAESTRE RAMIREZ
 
Mastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example ProjectMastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example Projectwajrcs
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdfMeon Technology
 
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsYour Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsJaydeep Chhasatia
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLAlluxio, Inc.
 
OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorShane Coughlan
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeNeo4j
 

Último (20)

eAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspectionseAuditor Audits & Inspections - conduct field inspections
eAuditor Audits & Inspections - conduct field inspections
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retries
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
 
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and Bad
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!
 
JS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AIJS-Experts - Cybersecurity for Generative AI
JS-Experts - Cybersecurity for Generative AI
 
About .NET 8 and a first glimpse into .NET9
About .NET 8 and a first glimpse into .NET9About .NET 8 and a first glimpse into .NET9
About .NET 8 and a first glimpse into .NET9
 
Kubernetes go-live checklist for your microservices.pptx
Kubernetes go-live checklist for your microservices.pptxKubernetes go-live checklist for your microservices.pptx
Kubernetes go-live checklist for your microservices.pptx
 
Watermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security ChallengesWatermarking in Source Code: Applications and Security Challenges
Watermarking in Source Code: Applications and Security Challenges
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - Datacamp
 
Program with GUTs
Program with GUTsProgram with GUTs
Program with GUTs
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-Council
 
Mastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example ProjectMastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example Project
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdf
 
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software TeamsYour Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
Your Vision, Our Expertise: TECUNIQUE's Tailored Software Teams
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
 
OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS Calculator
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 

Implementing parallel evolutionary algorithms in concurrent and functional paradigmsConcurrent lps-p e-as - jalbert - geneura 2014

  • 1. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Implementing parallel evolutionary algorithms in concurrent and functional paradigms Author: MSc. Jos´e Albert Cruz Almaguer Tutors: Dr. Juan Juli´an Merelo Guerv´os (UGR) Dr.C. Liesner Acevedo Mart´ınez (UCI) Universidad de Granada, Grupo GENEURA
  • 2. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Summary 1 New Trends in pGAs Novelty 2 Modeling pGAs pGA’s Concepts Language comparisons 3 Sample of Canonicals island/GA Scala samples Erlang samples Clojure samples 4 Results 5 Conclusions
  • 3. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Novelty Evolutionary Algorithms New parallel platforms are identified as new trends in pGAs Only hardware is considered and software platforms remains practically unexplored
  • 4. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Novelty Software industry Developing correct software Two of the more promising are: functional and concurrent
  • 5. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Novelty Programming paradigms Functional: functions like first class concepts, and for encouraging to do not use state changes Concurrent: characterized by the presence of programming constructs for managing processes like first class objects
  • 6. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Novelty Programming languages: Clojure Lisp variant STM/agent/futures JVM
  • 7. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Novelty Programming languages: Erlang Prolog-like Functional Actor based concurrency
  • 8. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Novelty Programming languages: Scala OO/Functional Akka: Actor based concurrency JVM
  • 9. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions pGA’s Concepts Parallel GA’s components AG Component Rol chromosome Representing the solution. evaluated chromosome Pair {chromosome, fitness}. population Set of chromosomes. crossover Relation between two chromo- somes producing other two new ones. mutation A chromosome modification. selection Means of population filtering. pool Shared population among no- de’s calculating units. island Topology’s node. migration Chromosome interchange. evolution/evaluation Execution.
  • 10. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Language comparisons Language comparisons Erlang Scala Clojure Parallel executing unit actor actor agent Communication (messages) tuple tuple function (protocol) pool ets HashMap hash-map DS chromosome list list vector DS population list list lazy list Compound data tuple tuple/object record/vector Runtime environ- ment Erlang VM Java VM Java VM
  • 11. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Scala samples Scala Listing 1: Actor declaration. class Island extends Actor { // Set of actors (workers) var workers: Set[ActorRef] = _ def receive = { case ’start => // All executing units to work! workers.forEach(_ ! ’start) } }
  • 12. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Scala samples Scala Listing 2: Functional processing of data. def bestSolution(): (AnyRef, Int) = { val evals = table.filter((a: (List, (Int, Int))) => a._2._2 == 2).toList if (evals.isEmpty) (null, -1) else { val red = evals.reduce( (a: (List, (Int, Int)), b: (List, (Int, Int))) => if (a._2._1 < b._2._1) b else a) (red._1, red._2._1) } }
  • 13. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Scala samples Scala Listing 3: Main code. // Creating 4 i s l a n d s val i s l a n d s = for ( <− 1 to 4) yi el d sys . actorOf ( Props [ I s l a n d ] ) // Puting the migrants d e s t i n a t i o n & s t a r t // each i s l a n d for ( i <− 0 to 3){ i s l a n d s ( i ) ! ( ’ migrantsDest , i s l a n d s (( i +1) %4)) i s l a n d s ( i ) ! ’ s t a r t }
  • 14. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Erlang samples Erlang Listing 4: Actor declaration. -record(island, { workers }). -module(island). start() -> Pid = spawn(island, loop, [#island{}]), Pid. loop(D) -> receive start -> lists:foreach(fun(W) -> W ! start end, D#island.workers), loop(D) end.
  • 15. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Erlang samples Erlang Listing 5: Functional processing of data. bestSolution(TableName) -> Sels = ets:select(TableName, ets:fun2ms(fun({Ind, Fit, State}) when State == 2 -> {Ind, Fit} end)), LSels = length(Sels), if LSels > 0 -> lists:foldl( fun({I1, F1}, {I2, F2}) -> if F1 < F2 -> {I2, F2}; true -> {I1, F1} end end, lists:last(Sels), Sels); true -> {null, -1} end.
  • 16. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Erlang samples Erlang Listing 6: Main code. I s l a n d s = [ i s l a n d : s t a r t () | | <− l i s t s : seq (1 , 4) ] l i s t s : foreach ( fun ( I ) −> I e = l i s t s : nth ( I , I s l a n d s ) , I e ! { migrantsDest , l i s t s : nth (( i +1) rem 4 , I s l a n d s ) } , I e ! s t a r t end , l i s t s : seq (0 , 3))
  • 17. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Clojure samples Clojure Listing 7: Data structure declaration. (defrecord TIsland [workers]) (ns island) (defprotocol Island (start [self]) ) (extend-type TIsland island/Island (start [self] (doseq [w @(.workers self)] (send w worker/start) ) ) )
  • 18. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Clojure samples Clojure Listing 8: Functional processing of data. (bestSolution [self] (let [ evals (for [[ind [fit state]] @(.table self) :when (= state 2)] [ind fit] ) ] (if (empty? evals) [nil -1] (reduce #(if (< ( %1 1) ( %2 1)) %2 %1) evals) ) ) )
  • 19. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Clojure samples Clojure Listing 9: Main code. ( l et [ i s l a n d s ( for [ ( range 4) ] ( agent ( i s l a n d / c r e a t e ) ) ) ] ( doseq [ i ( range 4) ] ( send ( nth i s l a n d s i ) i s l a n d / migrantsDest ( nth i s l a n d s (mod ( inc i ) 4))) ( send ( nth i s l a n d s i ) i s l a n d / s t a r t ) ) )
  • 20. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Results Experiment results for the minimum parallel time of all combinations tested Lang Parallel time ± SD (ms) Ws comb Seq time (ms) RSpeedup Speedup Erlang 2920.40 ± 126 25 E, 1 R 8143.3 2.7884 0.5519 Clojure 1734.66 ± 28.32 10 E, 1 R 3340.2222 1.9255 0.9292 Scala 563 ± 24.32 6 E, 1 R 1651.8 2.8632 2.8632
  • 21. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Results Experiment results Fig. 1. Parallel running times for one reproducer. 0 5 10 15 20 25 30 1,000 2,000 3,000 4,000 Number of evaluators Paralleltime(ms) Erlang Clojure Scala Fig. 2. Parallel running times for two reproducers. 0 5 10 15 20 25 30 0 2,000 4,000 6,000 8,000 Number of evaluatorsParalleltime(ms) Erlang Clojure Scala
  • 22. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Conclusions Conclusions Simplicity of the implementation of a hybrid parallel genetic algorithm in functional-concurrent languages When a shared data structure is needed this language allows a more direct access and that could be an advantage Among the new trends in pGAs are new parallel platforms, the new languages with concurrent abstractions build-in are parallel platforms too
  • 23. New Trends in pGAs Modeling pGAs Sample of Canonicals island/GA Results Conclusions Conclusions Conclusions The functional side is a key component to compose software components and simplify the communication strategies among concurrent activities The performance of Scala is the best and point to Erlang as a very scalable runtime