comp.lang.ada
 help / color / mirror / Atom feed
From: Brad Moore <brad.moore@shaw.ca>
Subject: Re: ANNOUNCE: Magpie 0.10 Utilities for multi-core execution
Date: Thu, 24 Feb 2011 07:46:02 -0700
Date: 2011-02-24T07:46:02-07:00	[thread overview]
Message-ID: <Jau9p.62429$y_7.22329@newsfe10.iad> (raw)
In-Reply-To: <42787132-70a9-4629-b5dc-af580896e3b1@q40g2000prh.googlegroups.com>

On 28/01/2011 7:25 PM, Shark8 wrote:
> Brad, Marc,
>    What is the difference between Magpie and Paraffin?

Paraffin provides both iterative parallelism (parallel loops)
and recursive parallelism.

For iterative parallelism, three types of parallelism strategies are 
supported.

1) Work Sharing  - Simple Divide and Conquer strategy
2) Work Stealing - Idle workers can steal more work from busy workers.
3) Work Seeking  - Idle workers can request (seek) more work from busy 
workers.

For recursive parallelism, currently Work Sharing and Work Seeking are 
provided.

For both recursive and iterative, if needed you can generate a final 
result (reduction) from the parallelism. This reduction occurs in 
parallel and is interleaved with the main parallel processing.

For recursive parallelism, I have also added what I call
stack-safe parallel recursion.

This is an extension to work-seeking that allows recursion to continue
in parallel, but providing some guarantees that the stack wont overflow,
regardless of stack size.

Paraffin has been ported to two different Ada compilers. (GNAT and
another compiler that isn't available commercially at this time).

Paraffin also has been compiled on both Linux and Windows, and
run on both Intel based processors and AMD processors.

The code was written so as not to rely on any OS specific or Compiler 
specific features, so hopefully the code is portable to other Ada 2005
compilers and target platforms.

The README that comes with the sources provides more details,
and there are numerous examples as well, including a parallel red-black 
binary tree container, appending to an Ada 2005 Doubly_Linked_List 
container in parallel, operating on an Ada 2005 Vectors containers in 
parallel, manipulating arrays in parallel, etc.

Look also for a paper in the next upcoming Ada Users Journal issue, 
which will discuss Paraffin, and compares Work Sharing, Work Seeking, 
and Work Stealing strategies in various problems.

The paper corresponds with a presentation I gave at at Ada Europe last 
June in Valencia, but also carries on from the paper I presented last 
October for SigAda, at Fairfax Va.

Brad Moore



      parent reply	other threads:[~2011-02-24 14:46 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-27  1:12 ANNOUNCE: Magpie 0.10 Utilities for multi-core execution Marc A. Criley
2011-01-29  0:49 ` Brad Moore
2011-01-29  2:25   ` Shark8
2011-02-03  2:02     ` Marc A. Criley
2011-02-24 14:46     ` Brad Moore [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox