SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

쉽게 설명하는 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
 

Tendances (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
 

Similaire à Implementing pGAs in Functional and Concurrent Paradigms

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
 

Similaire à Implementing pGAs in Functional and Concurrent Paradigms (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...
 

Plus 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
 

Plus 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
 

Dernier

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 

Dernier (20)

5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 

Implementing pGAs in Functional and Concurrent Paradigms

  • 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