Title: Parallel Kernels: An Architecture for Parallel Distributed Computing
1 Parallel KernelsAn Architecture for Parallel
Distributed Computing N. Patel (University of
Maryland)? M. McKerns (California Institute of
Technology)? P. Kienzle (National Institute of
Standards and Technology)?
Funded by NSF (grant DMR-0520547)?
2Inverse modelling is expensive
1 hour
Cost function
Fit parameter
3 To improve performance we need to go
parallel
Source www.globalnerdy.com/2007/09/07/multicore-
musings/
4PARK Plug-in models and create fit jobs
PARK provides a rich architecture for
creating physical models coupling models to
optimizers constraining parameters
between simultaneous ?ts analyzing goodness
of ?t
PARK provides a rich architect for creating
physical models coupling models to
optimizers constraining parameters
between simultaneous ?ts analyzing goodness
of ?t
- PARK provide a rich architecture for
- Creating physical models
- Coupling model to optimizer
- Constraining parameters between simultaneous fits
- Analyzing goodness of fit.
PARK Plug-in models and create ?t jobs
5Distributed Parallel Computing Services
Model Server
- Parallel computing
- Each PARK model may require its own parallel
computer cluster.
- Distributed computing
- Multiple copies of models working together for
global optimization and in parameter sensitivity
studies. - Queue configuration and launch commands must be
passed between compute resources. - PARK Server must manage all distributed services.
PARK Controller
Client
6 Client is decoupled from the services
Client Controller
Services
ffff
Fetch URL
Alice
Fit
Compufans
Bob
MD Sim
Clients, Controller and Services are fully
asynchronous
7...but still feels interactive
Client Controller
Services
Alice
50 complete
Bob
Clients, Controller and Services are fully
asynchronous
8 Service runs uncoupled from controller
notifications
Control message
Map f, vector
Map complete
Done request
Next request
Data store
Node 3
Node 1
Node 2
9Sample Code (Differential Evolution
Algorithm)? from park.service import mapper as
pmap def evolve(self, handler, numgens1000)
'''Evolve the population for numgens
generations, or until it converges. returns the
best vector from the run''' if
self.pop_values None
self.__init_pop(handler)? start_gen
self.generations for gen in
xrange(self.generations 1, self.generations
numgens 1)
candidate_pop Generate next
pop for i in range(self.pop_size)
(r1, r2, r3) self.select_participan
ts(i)? perturbation/mutation
candidate self.populationr1
self.F(self.populationr2
-
self.populationr3)? crossover
candidate self.crossover(candidat
e, i)? enforce bound
constraints if not
self.is_within_bounds(candidate)
candidate self.get_random_gene()?
candidate_pop.append(candidate)?
Evaluate next pop for i,v in
enumerate(pmap(self.func, candidate_pop))
if v lt self.pop_valuesi
self.pop_valuesi v
self.populationi candidate_popi
self.ncalls self.pop_size
10Exceptions are caught and returned
Alice
Node 3
Node 2
Node 1
11Jobs can be killed
kill
Bob
Node 3
Node 1
Node 2
12Concluding Thoughts
- Software is a vital part of end user scientists,
and unless the software is both robust and easy
to use, growth may be limited. - Parallel computing can be dynamic, interactive,
flexible, and easy to use. - Parallel Kernels will allow scientist to go
parallel easily with competitive performance. - Parallel Kernels is under active development.
- Please visit http//www.reflectometry.org/danse/
13Questions