Csound Csound-dev Csound-tekno Search About

[Cs-dev] Multicore, ParCS, OpenMP, spinlocks ??

Date2011-10-23 00:02
FromFelipe Sateler
Subject[Cs-dev] Multicore, ParCS, OpenMP, spinlocks ??
I'm confused by all that. How does multicore work?

I'm trying to parse csound.h (which BTW I think is the wrong place to
put this stuff, csound.h should contain only the public API, not
implementation details) to grok the spinlock definitions but I'm
completely failing (are they still used?).

I ask because I had to disable the __sync_lock_test_and_set test
because sparc was choking on it on the past, and if possible, I'd like
to get rid of that hack.

What does a linux system need to have to enable multicore, and which
scons options need to be enabled? I'd like to have a multicore-enabled
csound in the next debian package.

-- 

Saludos,
Felipe Sateler

------------------------------------------------------------------------------
The demand for IT networking professionals continues to grow, and the
demand for specialized networking skills is growing even more rapidly.
Take a complimentary Learning@Cisco Self-Assessment and learn 
about Cisco certifications, training, and career opportunities. 
http://p.sf.net/sfu/cisco-dev2dev
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2011-10-25 16:13
FromSteven Yi
SubjectRe: [Cs-dev] Multicore, ParCS, OpenMP, spinlocks ??
Hi Felipe,

I just noticed this email was in my inbox and no one has replied yet.
To use the multicore stuff, I know you need to compile with the new
parser and multicore (buildNewParser=1 buildMultiCore=1).  I think it
just relies on pthreads. OpenMP is optional, but I do not know if you
gain anything from having it.

Perhaps others can elaborate a bit.

Thanks!
steven

p.s. - I've been using CMake for a lot of Csound stuff lately, but
mostly on OSX.  CMake Makefile build does not seem to work here for
OSX, though XCode build does.  I'm also getting errors still with
CMake on Linux Makefile build.  I'll try to diagnose this sometime
tomorrow.

On Sun, Oct 23, 2011 at 12:02 AM, Felipe Sateler  wrote:
> I'm confused by all that. How does multicore work?
>
> I'm trying to parse csound.h (which BTW I think is the wrong place to
> put this stuff, csound.h should contain only the public API, not
> implementation details) to grok the spinlock definitions but I'm
> completely failing (are they still used?).
>
> I ask because I had to disable the __sync_lock_test_and_set test
> because sparc was choking on it on the past, and if possible, I'd like
> to get rid of that hack.
>
> What does a linux system need to have to enable multicore, and which
> scons options need to be enabled? I'd like to have a multicore-enabled
> csound in the next debian package.
>
> --
>
> Saludos,
> Felipe Sateler
>
> ------------------------------------------------------------------------------
> The demand for IT networking professionals continues to grow, and the
> demand for specialized networking skills is growing even more rapidly.
> Take a complimentary Learning@Cisco Self-Assessment and learn
> about Cisco certifications, training, and career opportunities.
> http://p.sf.net/sfu/cisco-dev2dev
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
>

------------------------------------------------------------------------------
The demand for IT networking professionals continues to grow, and the
demand for specialized networking skills is growing even more rapidly.
Take a complimentary Learning@Cisco Self-Assessment and learn 
about Cisco certifications, training, and career opportunities. 
http://p.sf.net/sfu/cisco-dev2dev
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2011-10-25 16:29
Fromjpff@cs.bath.ac.uk
SubjectRe: [Cs-dev] Multicore, ParCS, OpenMP, spinlocks ??
I totally missed your message

I hope I arranged that if buildMultiCore=1 then newparser is also set, but
I have not tested it.  I build the Debian system nightly but never tried
the multicore as my Debian machine is unicore and slow, but uit does build
(I think).  I build with
scons buildCsoundVST=0 generateTags=0 useJack=1 generateZip=0
usePortMIDI=1 install=1 useALSA=1 useOSC=1 buildInterfaces=1
buildTclcsound=1 buildJavaWrapper=1 pythonVersion=2.5 buildPythonOpcodes=1
noDebug=1 buildPDClass=1 buildWinsound=1 useUDP=1 buildNewParser=1
useGettext=1 gcc4opt=i386 buildVirtual=1 buildCsoundAC=0 buildBeats=1
includeWii=1 includeP5Glove=1 includeMP3=1 install

On OpenSuse I build with
scons -j 6 generateTags=1 useJack=0 generateZip=0 install=0 useOSC=1
useDouble=1 buildInterfaces=1 buildTclcsound=1 usePortMIDI=1 useALSA=1
noDebug=0 buildJavaWrapper=1 pythonVersion=2.6 buildPythonOpcodes=1
buildRelease=0 buildWinsound=1 Word64=1 buildCsound5GUI=0 buildCSeditor=1
Lib64=1 buildNewParser=1 useUDP=1 useGettext=1 gcc4opt=core2
tclversion=8.5 includeMP3=1 includeWii=1 buildPythonWrapper=1 buildBeats=1
NewParserDebug=1

but I am testing not installing.

Steven is right it depends on pthredas and pthread barriers.  In the case
iod Mac there is emulation for barriers as that is missing.  It does use
spinlocks when appropriate and basic mutex.

Not sure I understand the problems you are having

==jOPHN FF
> Hi Felipe,
>
> I just noticed this email was in my inbox and no one has replied yet.
> To use the multicore stuff, I know you need to compile with the new
> parser and multicore (buildNewParser=1 buildMultiCore=1).  I think it
> just relies on pthreads. OpenMP is optional, but I do not know if you
> gain anything from having it.
>
> Perhaps others can elaborate a bit.
>
> Thanks!
> steven
>
> p.s. - I've been using CMake for a lot of Csound stuff lately, but
> mostly on OSX.  CMake Makefile build does not seem to work here for
> OSX, though XCode build does.  I'm also getting errors still with
> CMake on Linux Makefile build.  I'll try to diagnose this sometime
> tomorrow.
>
> On Sun, Oct 23, 2011 at 12:02 AM, Felipe Sateler 
> wrote:
>> I'm confused by all that. How does multicore work?
>>
>> I'm trying to parse csound.h (which BTW I think is the wrong place to
>> put this stuff, csound.h should contain only the public API, not
>> implementation details) to grok the spinlock definitions but I'm
>> completely failing (are they still used?).
>>
>> I ask because I had to disable the __sync_lock_test_and_set test
>> because sparc was choking on it on the past, and if possible, I'd like
>> to get rid of that hack.
>>
>> What does a linux system need to have to enable multicore, and which
>> scons options need to be enabled? I'd like to have a multicore-enabled
>> csound in the next debian package.
>>
>> --
>>
>> Saludos,
>> Felipe Sateler
>>
>> ------------------------------------------------------------------------------
>> The demand for IT networking professionals continues to grow, and the
>> demand for specialized networking skills is growing even more rapidly.
>> Take a complimentary Learning@Cisco Self-Assessment and learn
>> about Cisco certifications, training, and career opportunities.
>> http://p.sf.net/sfu/cisco-dev2dev
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>
>
> ------------------------------------------------------------------------------
> The demand for IT networking professionals continues to grow, and the
> demand for specialized networking skills is growing even more rapidly.
> Take a complimentary Learning@Cisco Self-Assessment and learn
> about Cisco certifications, training, and career opportunities.
> http://p.sf.net/sfu/cisco-dev2dev
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
>
>
>



------------------------------------------------------------------------------
The demand for IT networking professionals continues to grow, and the
demand for specialized networking skills is growing even more rapidly.
Take a complimentary Learning@Cisco Self-Assessment and learn 
about Cisco certifications, training, and career opportunities. 
http://p.sf.net/sfu/cisco-dev2dev
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2011-11-01 23:03
FromFelipe Sateler
SubjectRe: [Cs-dev] Multicore, ParCS, OpenMP, spinlocks ??
Sorry for the delay in answering.

The first multicore implementation used some custom-made spinlocks
using gcc primitives like __sync_lock_test_and_set. In debian we had
issues with these spinlocks in the sparc architecture, so I had to
disable it. With the new ParCS implementation, are these gcc
primitives still needed? When are they used? I see that they are still
tested in SConstruct.

On Tue, Oct 25, 2011 at 12:29,   wrote:
> I totally missed your message
>
> I hope I arranged that if buildMultiCore=1 then newparser is also set, but
> I have not tested it.  I build the Debian system nightly but never tried
> the multicore as my Debian machine is unicore and slow, but uit does build
> (I think).  I build with
> scons buildCsoundVST=0 generateTags=0 useJack=1 generateZip=0
> usePortMIDI=1 install=1 useALSA=1 useOSC=1 buildInterfaces=1
> buildTclcsound=1 buildJavaWrapper=1 pythonVersion=2.5 buildPythonOpcodes=1
> noDebug=1 buildPDClass=1 buildWinsound=1 useUDP=1 buildNewParser=1
> useGettext=1 gcc4opt=i386 buildVirtual=1 buildCsoundAC=0 buildBeats=1
> includeWii=1 includeP5Glove=1 includeMP3=1 install
>
> On OpenSuse I build with
> scons -j 6 generateTags=1 useJack=0 generateZip=0 install=0 useOSC=1
> useDouble=1 buildInterfaces=1 buildTclcsound=1 usePortMIDI=1 useALSA=1
> noDebug=0 buildJavaWrapper=1 pythonVersion=2.6 buildPythonOpcodes=1
> buildRelease=0 buildWinsound=1 Word64=1 buildCsound5GUI=0 buildCSeditor=1
> Lib64=1 buildNewParser=1 useUDP=1 useGettext=1 gcc4opt=core2
> tclversion=8.5 includeMP3=1 includeWii=1 buildPythonWrapper=1 buildBeats=1
> NewParserDebug=1
>
> but I am testing not installing.
>
> Steven is right it depends on pthredas and pthread barriers.  In the case
> iod Mac there is emulation for barriers as that is missing.  It does use
> spinlocks when appropriate and basic mutex.
>
> Not sure I understand the problems you are having
>
> ==jOPHN FF
>> Hi Felipe,
>>
>> I just noticed this email was in my inbox and no one has replied yet.
>> To use the multicore stuff, I know you need to compile with the new
>> parser and multicore (buildNewParser=1 buildMultiCore=1).  I think it
>> just relies on pthreads. OpenMP is optional, but I do not know if you
>> gain anything from having it.
>>
>> Perhaps others can elaborate a bit.
>>
>> Thanks!
>> steven
>>
>> p.s. - I've been using CMake for a lot of Csound stuff lately, but
>> mostly on OSX.  CMake Makefile build does not seem to work here for
>> OSX, though XCode build does.  I'm also getting errors still with
>> CMake on Linux Makefile build.  I'll try to diagnose this sometime
>> tomorrow.
>>
>> On Sun, Oct 23, 2011 at 12:02 AM, Felipe Sateler 
>> wrote:
>>> I'm confused by all that. How does multicore work?
>>>
>>> I'm trying to parse csound.h (which BTW I think is the wrong place to
>>> put this stuff, csound.h should contain only the public API, not
>>> implementation details) to grok the spinlock definitions but I'm
>>> completely failing (are they still used?).
>>>
>>> I ask because I had to disable the __sync_lock_test_and_set test
>>> because sparc was choking on it on the past, and if possible, I'd like
>>> to get rid of that hack.
>>>
>>> What does a linux system need to have to enable multicore, and which
>>> scons options need to be enabled? I'd like to have a multicore-enabled
>>> csound in the next debian package.
>>>
>>> --
>>>
>>> Saludos,
>>> Felipe Sateler
>>>
>>> ------------------------------------------------------------------------------
>>> The demand for IT networking professionals continues to grow, and the
>>> demand for specialized networking skills is growing even more rapidly.
>>> Take a complimentary Learning@Cisco Self-Assessment and learn
>>> about Cisco certifications, training, and career opportunities.
>>> http://p.sf.net/sfu/cisco-dev2dev
>>> _______________________________________________
>>> Csound-devel mailing list
>>> Csound-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>>
>>
>> ------------------------------------------------------------------------------
>> The demand for IT networking professionals continues to grow, and the
>> demand for specialized networking skills is growing even more rapidly.
>> Take a complimentary Learning@Cisco Self-Assessment and learn
>> about Cisco certifications, training, and career opportunities.
>> http://p.sf.net/sfu/cisco-dev2dev
>> _______________________________________________
>> Csound-devel mailing list
>> Csound-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/csound-devel
>>
>>
>>
>
>
>
> ------------------------------------------------------------------------------
> The demand for IT networking professionals continues to grow, and the
> demand for specialized networking skills is growing even more rapidly.
> Take a complimentary Learning@Cisco Self-Assessment and learn
> about Cisco certifications, training, and career opportunities.
> http://p.sf.net/sfu/cisco-dev2dev
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel
>



-- 

Saludos,
Felipe Sateler

------------------------------------------------------------------------------
RSA® Conference 2012
Save $700 by Nov 18
Register now!
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/csound-de