From: Brad Moore <brad.moore@shaw.ca>
Subject: ANN: Paraffin 4.3, Parallelism Generics
Date: Wed, 19 Jun 2013 00:41:43 -0600
Date: 2013-06-19T00:41:43-06:00 [thread overview]
Message-ID: <Hocwt.10815$UV.4373@newsfe08.iad> (raw)
I am pleased to announce Paraffin 4.3.
Paraffin is a set of Ada 2012 generics that may be used to add
parallelism to iterative loops and recursive code.
Older releases (prior to 4.0) also support Ada 2005.
Paraffin includes generics for both Ravenscar and non-Ravenscar use.
The Ravenscar version utilizes static task pools with dispatching
domains intended for real-time programming.
Paraffin also includes Paraffinalia, which is a suit of useful parallel
utilities that utilize the Paraffin generics. These include generics for;
1) generic to integrating a function in parallel
2) generic to apply quicksort algorithm in parallel to an array
3) generic to apply fast fourier transform to an array of data.
4) generic Red-Black tree container that performs some operations
in parallel.
5) function to solve matrices using Gauss-Jordan Elimination
6) generic to perform prefix sum calculations
7) generic to perform sequence alignment using the Smith-Waterman
algorithm to find similar regions between two strings for
problems such as comparing genetic nucleotide or protein
sequences, or checking for plagiarism between two text sourcs.
This release has the following notable features;
1) Most importantly, to those who want to compile Paraffin with
the latest GNAT 2013 GPL release, this version contains bug fixes
that allow compilation.
2) A new Paraffinalia app has been added. This implements the
Smith-Waterman dynamic algorithm in parallel. This app performs
sequence alignment, which means it may be used to find similar
regions between two text strings. Such an algorithm is of interest
to genetic comparisons of nucleotide or protein sequences. It may
also be used to compare two text documents against each other for
plagiarism, etc.
3) A Ravenscar compliant version of the Smith-Waterman app has also
been added
4) Several wait-free barriers have been added. These offer several
advantages over the facilities of Ada.Synchronous_Barriers, in that
the workers are released in parallel, as opposed to sequentially,
for barriers that are implemented as protected objects. In addition,
there is no blocking, no queues, and these new barriers are
Ravenscar compliant, and objects of these barriers can be declared
at nested levels in a Ravenscar application, unlike barriers that
are implemented as protected objects. The last point to note is that
using these barriers can make a significant improvement in
performance. The matrix-solving paraffinalia app has been seen to
complete twice as fast in certain circumstances.
5) A new facility has been added to the work sharing loop iteration
packages. This is a subprogram, Get_Worker_Id, that allows the
caller to statically determine which worker will be assigned to a
particular loop iteration number. This is particularly useful for
algorithms that use barriers, as typically one needs to know how
many workers will be synchronizing on the barrier, as well as to
map intermediate user-defined result arrays with worker numbers.
6) The Smith-Waterman app, the matrix solving app, and the histogram
cumulative sum paraffinalia apps were modified to use this new
faclity.
The latest stable release and older releases may be downloaded from;
https://sourceforge.net/projects/paraffin/files/
For those who want the current development versions of the source they
can download using git (http://git-scm.com/) by issuing the following
commands;
mkdir sandbox
cd sandbox
git clone git://git.code.sf.net/p/paraffin/code paraffin-code
Regards,
Brad Moore
reply other threads:[~2013-06-19 6:41 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox