Dear Chandra Users,
I'm pleased to announce PModel, an ISIS plugin which distributes
the computation of spectral models over multiple CPUs or hosts.
PModel enables ISIS to simultaneously calculate pieces of a model
over an entire grid, or the entire model over pieces of a grid,
using essentially arbitrary mathematical expressions.
This approach substantially enlarges the space of models which
may be computed in practical timeframes, without requiring that
scientists become experts in parallelism.
To our knowledge this kind of parallel modeling exists only in
ISIS, so even in nascent form PModel may interest early adopters
working with expensive models which cannot be tractably computed
in other spectral analysis packages. PModel has been exercised
for months within the context of ongoing astrophysical research,
in multiple computing environments, and may be downloaded from
An arXiv reference to the ADASS 2008 paper is available at
and a simple example is given below.
Michael S. Noble
Consider the model expression
warmabs(1) * warmabs(2) * hotabs(3)
The components here are XSTAR analytic models, known to be expensive.
Under certain conditions each may take 10 seconds or more to evaluate
just once on a modern CPU, or >30 seconds to compute the entire model
expression for one fit loop iteration. Typical fits may contain scores
or hundreds of such iterations, with tens of thousands to millions of
evaluations often needed for thorough walks of parameter space during
error bar generation. In short, days or weeks of compute time can be
needed for essential analysis with expensive models.
With PModel the above expression can be rewritten as
pm_mult(1, warmabs(1), warmabs(2), hotabs(2))
to transparently ship the component evaluations to multiple processors,
collect results, and perform a "multiplicative reduction" operation
upon them. Nothing else in one's ISIS analysis need be changed, and in
fact ISIS doesn't even understand that the model is parallelized: this
knowledge is completely encoded within PModel, which ISIS simply calls
in the same serial manner it would for any ordinary model. PModel also
employs a caching mechanism which lets the results of model evaluations
with identical parameters be reused; this can potentially avoid large
numbers of evaluations and lead to superlinear speedups.
This archive was generated by hypermail 2b29 : Mon Dec 09 2013 - 01:00:06 EST