Re: beowulf clusters

Istvan Varga <istvan_v-cl+VPiYnx/[email protected]> Wed, 20 Apr 2005 21:10:43 +0200
Newsgroups gmane.comp.audio.csound.tekno
Message-ID <[email protected]>
Michael Gogins wrote:

> Not at this time. Csound is currently single-threaded in the rendering loop.
> 
> In theory, it would be possible to change the rendering loop code just
 > slightly to make Csound multi-threaded. I believe this is possible because
 > inside the duration of a kperiod, running instrument instances do not write
 > to shared data except for the output buffer, and they do not read from shared
 > data that changes during the kperiod (ffitch and Varga et al., correct me if
 > I am wrong).

I do not think this would work. Examples of shared data that can change during
a k-period include, but are probably not limited to global variables (ga/gk),
zak space, and function tables (there are table create and write opcodes).
Also, the instrument instances are expected to be performed sequentially, in a
well defined and documented order: the instrument with the lower number is
performed earlier, and in the case of equal instrument number, the instance that
was inserted first is performed first. Breaking this rule may break orchestras
that use global variables or zak space to route signals between instruments.
Nevertheless, many pieces would render correctly, particularly if the
parallelization is limited to instances with the same instrument number,
but probably all access to global variables, and use of zak and table opcodes
would need mutexes.

_______________________________________________
csoundtekno mailing list
[email protected]

Subscribe, unsubscribe, change mailing list options:
http://plot.bek.no/mailman/listinfo/csoundtekno