From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,511d9a7626ec9335 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!post01.iad.highwinds-media.com!newsfe10.iad.POSTED!00000000!not-for-mail From: Brad Moore User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101207 Thunderbird/3.1.7 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: ANNOUNCE: Magpie 0.10 Utilities for multi-core execution References: <42787132-70a9-4629-b5dc-af580896e3b1@q40g2000prh.googlegroups.com> In-Reply-To: <42787132-70a9-4629-b5dc-af580896e3b1@q40g2000prh.googlegroups.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Message-ID: NNTP-Posting-Host: 68.145.218.234 X-Complaints-To: internet.abuse@sjrb.ca X-Trace: newsfe10.iad 1298558761 68.145.218.234 (Thu, 24 Feb 2011 14:46:01 UTC) NNTP-Posting-Date: Thu, 24 Feb 2011 14:46:01 UTC Date: Thu, 24 Feb 2011 07:46:02 -0700 Xref: g2news1.google.com comp.lang.ada:17586 Date: 2011-02-24T07:46:02-07:00 List-Id: 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