I am pleased to announce the availability of Paraffin 2.0.
Paraffin is a suite of generics for Ada 2005 that can add parallelism to
loops and recursive algorithms.
Since the initial (previous) release of Paraffin, there have been a
number of improvements.
Some of these include:
1) Paraffin and the Irvine ICC Ada 2005 compiler
Paraffin has been compiled and tested using the Irvine ICC Ada 2005
compiler, running on both Windows and Linux.
See
http://www.irvine.com for more information about their compiler
2) Paraffin on an Android Samsung Galaxy S II smart phone
Paraffin has been compiled and tested using GNAT AUX on an Android
Samsung Galaxy S II Smart phone.
See
http://www.dragonlace.net for more information about this compiler
This is a dual core smartphone, which benefits from Paraffin's
parallelism. But note that for recursive problems, another new
feature (described below) makes it attractive to also run Paraffin on
Android devices that only have a single core.
3) Paraffin and the GNAT 2011 GPL compiler
Paraffin has been compiled and tested using GNAT 2010 and 2011 GPL
versions of the compiler on both Windows and Linux.
See
http://libre.adacore.com/libre for more information about this
compiler.
4) Stack Safe Recursive Parallelism Support
Paraffin now includes generics that allow deep recursion using a
small stack. The generics feature parallel work seeking that
monitors the usage of each workers stack, and defers work if the
stack resource is approaching depletion. This allows idle worker
tasks to resume the deferred work with a fresh stack, in a safe
manner until all the work has been completed. Testing has shown that
the overhead associated with the stack monitoring is minimal, and
that the performance is such that it can also be attractive to
consider using on systems that only have a single core.
5) Stack depth filtering generics.
Generics have been added that filter out poor work offers based on
the depth of the recursion.
6) The optimal worker count is calculated by default for iterative
looping, based on the number of available cores, and the number of
iterations.
7) Increased portability, by providing the "Any" target, which does not
use any OS services or vendor specific libraries.
8) Numerous performance improvements, particularly for the recursive
generics, which were significantly improved.
7) Various bug fixes
.
You can get the source code from SourceForge:
https://sourceforge.net/projects/paraffin/files/
Brad Moore