Prototyping Parallel Simulations on Manycore Architectures Using Scala: A Case Study
Résumé
At the manycore era, every simulation practitioner can take advantage of the com-
puting horsepower delivered by the available high performance computing devices. From multicore
CPUs (Central Processing Unit) to thousand-thread GPUs (Graphics Processing Unit), several
architectures are now able to offer great speed-ups to simulations. However, it is often tricky to
harness them properly, and even more complicated to implement a few declinations of the same
model to compare the parallelizations. Thus, simulation practitioners would mostly benefit of a
simple way to evaluate the potential benefits of choosing one platform or another to parallelize
their simulations. In this work, we study the ability of the Scala programming language to fulfill
this need. We compare the features of two frameworks in this study: Scala Parallel Collections and
ScalaCL. Both of them provide facilities to set up a data-parallelism approach on Scala collections.
The capabilities of the two frameworks are benchmarked with three simulation models as well as
a large set of parallel architectures. According to our results, these two Scala frameworks should
be considered by the simulation community to quickly prototype parallel simulations, and choose
the target platform on which investing in an optimized development will be rewarding.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...