comp.lang.ada
 help / color / mirror / Atom feed
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