Csound Csound-dev Csound-tekno Search About

[Csnd] parallel rendering, eg via clusters

Date2008-01-16 12:05
FromAtte André Jensen
Subject[Csnd] parallel rendering, eg via clusters
Hi

Is it possible to use multiple processors (or preferably a cluster) to 
render with csound? Of course realtime would be nice, but deferred 
rendering to disc would also be ok.

If it's possible, where can I read about how to get started?

If no: is there a workaround that'll allow this? If not, are somebody 
working on adding this possibility to csound or does anyone else see a 
use for it?

-- 
Atte

http://atte.dk       | http://myspace.com/attejensen
http://anagrammer.dk | http://modlys.dk

Date2008-01-16 12:18
FromVictor Lazzarini
Subject[Csnd] Re: parallel rendering, eg via clusters
yes, but you are talking here of using the Csound API , either from C or
perhaps from Java or Python. With C it's possible to use MPI and build
a cluster-csound host.

I think Oeyvind has looked into doing something with Python, perhaps he can
give you some pointers.

Victor

At 12:05 16/01/2008, you wrote:
>Hi
>
>Is it possible to use multiple processors (or preferably a cluster) to 
>render with csound? Of course realtime would be nice, but deferred 
>rendering to disc would also be ok.
>
>If it's possible, where can I read about how to get started?
>
>If no: is there a workaround that'll allow this? If not, are somebody 
>working on adding this possibility to csound or does anyone else see a use 
>for it?
>
>--
>Atte
>
>http://atte.dk       | http://myspace.com/attejensen
>http://anagrammer.dk | http://modlys.dk
>
>
>Send bugs reports to this list.
>To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe 
>csound"

Victor Lazzarini
Music Technology Laboratory
Music Department
National University of Ireland, Maynooth


Date2008-01-16 12:28
FromRichard Dobson
Subject[Csnd] Re: Re: parallel rendering, eg via clusters
Victor Lazzarini wrote:
> yes, but you are talking here of using the Csound API , either from C or
> perhaps from Java or Python. With C it's possible to use MPI and build
> a cluster-csound host.
> 
> I think Oeyvind has looked into doing something with Python, perhaps he can
> give you some pointers.
> 
> Victor


I would be interested to know what the current best scholarship is on 
this. Is anyone actively running Csound on a cluster? I was wondering 
for example if anyone has made/got tools for e.g. splitting a score to 
run each instrument concurrently on different instances on different 
processors/cores (handling any dependencies, etc). (Assuming that is a 
reasonable approach, etc...).

Richard Dobson



Date2008-01-16 12:37
FromAtte André Jensen
Subject[Csnd] Re: Re: parallel rendering, eg via clusters
Victor Lazzarini wrote:

> yes, but you are talking here of using the Csound API , either from C or
> perhaps from Java or Python. With C it's possible to use MPI and build
> a cluster-csound host.

Hmm, sounds promissing. I'm not totally sure what the implications are 
of "using the Csound API". Would it be possible to throw a regular csd 
at cluster like this and have it render to disc?

> I think Oeyvind has looked into doing something with Python, perhaps he can
> give you some pointers.

That would be great! Looking forward to any information.

-- 
peace, love & harmony
Atte

http://atte.dk       | http://myspace.com/attejensen
http://anagrammer.dk | http://modlys.dk

Date2008-01-16 13:25
FromVictor Lazzarini
Subject[Csnd] Re: Re: Re: parallel rendering, eg via clusters
I have started some work on a large cluster, but did not have time to
continue. I got as far as build Csound 5  on the cluster and was going to
play with MPI, but then I did not have any spare time to pursue it. I am 
interested
in that kind of thing and had experience with MPI. However, there are only
24 hours in the day.

Victor

At 12:28 16/01/2008, you wrote:
>Victor Lazzarini wrote:
>>yes, but you are talking here of using the Csound API , either from C or
>>perhaps from Java or Python. With C it's possible to use MPI and build
>>a cluster-csound host.
>>I think Oeyvind has looked into doing something with Python, perhaps he can
>>give you some pointers.
>>Victor
>
>
>I would be interested to know what the current best scholarship is on 
>this. Is anyone actively running Csound on a cluster? I was wondering for 
>example if anyone has made/got tools for e.g. splitting a score to run 
>each instrument concurrently on different instances on different 
>processors/cores (handling any dependencies, etc). (Assuming that is a 
>reasonable approach, etc...).
>
>Richard Dobson
>
>
>
>
>Send bugs reports to this list.
>To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe 
>csound"

Victor Lazzarini
Music Technology Laboratory
Music Department
National University of Ireland, Maynooth


Date2008-01-16 13:28
FromVictor Lazzarini
Subject[Csnd] Re: Re: Re: parallel rendering, eg via clusters
Yes, once Csound lib is available, then it's a case of writing
distributed programs, with tools such as MPI. Depending on
the cluster and on how the access to it is granted, it might
be even possible to collect audio data on a microcomputer
connected to it and play it in realtime.

Victor

At 12:37 16/01/2008, you wrote:
>Victor Lazzarini wrote:
>
>>yes, but you are talking here of using the Csound API , either from C or
>>perhaps from Java or Python. With C it's possible to use MPI and build
>>a cluster-csound host.
>
>Hmm, sounds promissing. I'm not totally sure what the implications are of 
>"using the Csound API". Would it be possible to throw a regular csd at 
>cluster like this and have it render to disc?
>
>>I think Oeyvind has looked into doing something with Python, perhaps he can
>>give you some pointers.
>
>That would be great! Looking forward to any information.
>
>--
>peace, love & harmony
>Atte
>
>http://atte.dk       | http://myspace.com/attejensen
>http://anagrammer.dk | http://modlys.dk
>
>
>Send bugs reports to this list.
>To unsubscribe, send email sympa@lists.bath.ac.uk with body "unsubscribe 
>csound"

Victor Lazzarini
Music Technology Laboratory
Music Department
National University of Ireland, Maynooth


Date2008-01-16 16:29
From"Steven Yi"
Subject[Csnd] Re: Re: Re: Re: parallel rendering, eg via clusters
AttachmentsNone  

Date2008-01-16 21:14
From"Oeyvind Brandtsegg"
Subject[Csnd] Re: Re: Re: Re: Re: parallel rendering, eg via clusters
AttachmentsNone  

Date2008-01-18 21:15
FromMark Van Peteghem
Subject[Csnd] Re: parallel rendering, eg via clusters
An entirely different approach would be to make opcodes themselves 
parallel. grain is an example of an opcode that may take a lot of time 
to calculate (depending on the parameters). If the calculation would be 
shared by two cores of a processor, each with half the density, their 
results can be simply added (maybe something more is needed to get it 
right, but I think it is possible). For simpler opcodes like oscil this 
probably is not possible, but that is a fast opcode anyway.

This would almost definitely be possible on multicore CPUs, but I'm not 
sure if it would be possible with a cluster, because the jobs that are 
divided are quite small.

The advantage of this approach is that you can parallellise without 
having to worry about the order of instrument invocations, global 
variables, writing to f-tables etc. The downside is that it may be more 
work, because you have to modify every opcode that is slow to calculate. 
And there may be such opcodes that can't be parallellized.

For scores that have a huge amount of instrument invocations, with 
simple opcodes that can't be parallellized (like oscil), this would not 
improve the speed.

-- 
  Mark
  _________________________________________
  When you get lemons, you make lemonade.
  When you get hardware, you make software.