Csound Csound-dev Csound-tekno Search About

Re: [Cs-dev] parallel processing panel at ICMC

Date2008-09-01 16:45
FromMichael Gogins
SubjectRe: [Cs-dev] parallel processing panel at ICMC
OpenMP is not supported by the Microsoft Visual C++ Express Edition compiler (OpenMP is supported by the commercial editions). Since, for the upcoming release, I was planning to do a Microsoft build for the Windows installers, we may want to think about using OpenMP. Other than that, OpenMP is a later iteration of the parallel concepts and looks like a good choice for Csound. 

As far as MinGW/MSys is concerned, the current Windows installers are built with MinGW 4.2.1-2 dw2, which does seem to support OpenMP (haven't actually tried it yet). There was a Google Summer of Code project, recently completed, to fix problems with MinGW:

http://gcc.gnu.org/wiki/WindowsGCCImprovementsGSoC2008

Note the claim that OpenMP support is OK.

So it boils down to this: with OpenMP we can forget about Visual C++. With Visual C++ we can forget about OpenMP.

I'm personally happy enough with MinGW/MSys and could drop Visual C++ and proceed with OpenMP, but I think some Csound users and developers may be anticipating using Visual C++.

Another candidate would be Intel Threading Building Blocks, which has a mirror situation: supported on Linux and with Visual C++, but no support for MinGW,
although it might be possible to go ahead and hack a build with MinGW. TBB has very good documentation and looks cleanly designed.

Regards,
Mike

-----Original Message-----
>From: victor 
>Sent: Sep 1, 2008 12:00 AM
>To: Developer discussions 
>Subject: Re: [Cs-dev] parallel processing panel at ICMC
>
>I was thinking of OpenMP for parallelising engine code rather than to
>substitute pthreads for everything (we'll keep pthreads for
>threads...). OpenMP seemed to be quite useful.
>
>Victor
>----- Original Message ----- 
>From: "Steven Yi" 
>To: "Developer discussions" 
>Sent: Monday, September 01, 2008 3:07 AM
>Subject: Re: [Cs-dev] parallel processing panel at ICMC
>
>
>> Hi Victor,
>>
>> Thanks very much for the report!  It seems to me that we would use
>> OpenMP in the same way as the code we currently have in that we use a
>> barrier and split work.  We would still need to work on a better work
>> partitioning system, regardless of a change to OpenMP or not.
>>
>> I took a further look int OpenMP and it looks pretty nice. However, it
>> looks like gcc 4.x is only in alpha state for MinGW.  If it works then
>> that'd be great.
>>
>> As for replacing pthread, I wonder if that would be appropriate for
>> the threaded code we have that isn't related to parallelizing code.
>> On the other hand, I don't know if we can use pthreads in conjunction
>> with OpenMP.
>>
>> So, what does everyone else think?  I am thinking our current code is
>> enough for now for running the parallel code, and we might be better
>> served to continue to look at places where we are running into
>> problems.
>>
>> A step we can take would be to start systematically creating a test
>> suite of CSD's, much like what was done for the new parser and the
>> tests in the tests directory.  Those tests for the new parser took one
>> step at a time and introduced a single new language feature to test
>> another feature of the processor.  We should probably do something
>> similar so that we can step by step test and then if we find a
>> problem, we'd have a good idea of what the problem was from as we only
>> add one feature at a time.
>>
>> Thoughts?
>> steven
>>
>>
>>
>>
>> On Sun, Aug 31, 2008 at 3:33 PM, victor  wrote:
>>> Hello everyone,
>>>
>>> just a quick e-mail in relation to the panel at ICMC. John was there and
>>> might add details to these.
>>>
>>> The overall tone was 'yes it is a good idea; we'll have to do it, but we
>>> don't know how yet.'  I asked the question we wanted to know:
>>> who is doing it? They basically shrugged and said, "well max has
>>> the poly object...", and then someone said that SCSynth could be
>>> run several separate, but unconnected, processes, to what I replied,
>>> so can any other program...
>>>
>>> The only thing I found useful was to hear the FAUST guy talk about
>>> their multiprocessor output usimg openMP. They also have experience
>>> with their parallel version of Jack.
>>>
>>> Has anyone looked at OpenMP. Looks dead easy to use, it seems available
>>> across the board for all support platforms (gcc 4.2). Perhaps we can use
>>> that instead of pthreads?
>>>
>>> But overall, they all seemed clueless. The discussions in this list 
>>> seemed
>>> to be better informed. The added joke was Miller Puckette saying that 
>>> with
>>> his three year PC he could run six PVs so he was happy and did not want
>>> to bother with it.
>>>
>>> Regards
>>>
>>> Victor
>>>
>>> -------------------------------------------------------------------------
>>> This SF.Net email is sponsored by the Moblin Your Move Developer's 
>>> challenge
>>> Build the coolest Linux based applications with Moblin SDK & win great
>>> prizes
>>> Grand prize is a trip for two to an Open Source event anywhere in the 
>>> world
>>> http://moblin-contest.org/redirect.php?banner_id=100&url=/
>>> _______________________________________________
>>> Csound-devel mailing list
>>> Csound-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>
>>>
>>
>> -------------------------------------------------------------------------
>> This SF.Net email is sponsored by the Moblin Your Move Developer's 
>> challenge
>> Build the coolest Linux based applications with Moblin SDK & win great 
>> prizes
>> Grand prize is a trip for two to an Open Source event anywhere in the 
>> world
>> http://moblin-contest.org/redirect.php?banner_id=100&url=/
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel 
>
>
>-------------------------------------------------------------------------
>This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
>Build the coolest Linux based applications with Moblin SDK & win great prizes
>Grand prize is a trip for two to an Open Source event anywhere in the world
>http://moblin-contest.org/redirect.php?banner_id=100&url=/
>_______________________________________________
>Csound-devel mailing list
>Csound-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/csound-devel




-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2008-09-02 06:56
FromVictor.Lazzarini@nuim.ie
SubjectRe: [Cs-dev] parallel processing panel at ICMC
AttachmentsNone  None  None  None