ANNOUNCE: Paraffin 2.0 for GNAT and ICC Ada 2005 compilers

24 views
Skip to first unread message

Brad Moore

unread,
Oct 28, 2011, 1:40:48 AM10/28/11
to
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

Stephen Leake

unread,
Oct 29, 2011, 9:54:32 AM10/29/11
to
Brad Moore <brad....@shaw.ca> writes:

> 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.

Interesting.

> You can get the source code from SourceForge:
> https://sourceforge.net/projects/paraffin/files/

I suggest it would be helpful if the examples included instantiating the
generics. The current examples illustrate the patterns, but don't
motivate the use of generics.

--
-- Stephe

Brad Moore

unread,
Oct 29, 2011, 5:01:11 PM10/29/11
to
Thanks for the suggestion. I added instantiation code to the examples
in the README file, as well as added some recursive examples to the
README. This resulted in a new minor release paraffin.2.0a which is
mostly just an update to the README file, plus eliminating old dead
comments in the code. Note also, that if you build the test driver
for paraffin, it runs these examples, plus many more. You can of course,
view the test code, to see these examples in their entirety.

Brad Moore

Alex R. Mosteo

unread,
Oct 31, 2011, 5:56:06 AM10/31/11
to
Em... I just downloaded this release and it contains the .git folder. Your
working directory is unclean ;-)

>
> Brad Moore

Reply all
Reply to author
Forward
0 new messages