[sc-users] scsynth with two processor cores

Sciss contact at sciss.de
Fri Feb 1 04:08:16 PST 2008


hi,

has probably been discussed before : i just recognized, i can get the  
double amount of processing power out of supercollider on the macbook  
pro coreduo by launching two instances of scsynth. One single  
instance runs without clicks until it goes above around 75%. but  
opening the processor panel it reveals that it uses both cores,  
however the sum of both cores is never than 50%, also they seem to be  
used complementary, when there is a spike in core 1, there is a dip  
in core 2:

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Bild 1.jpg
Type: image/jpeg
Size: 12486 bytes
Desc: not available
Url : http://lists.create.ucsb.edu/pipermail/sc-users/attachments/20080201/1e53b27a/attachment.jpg 
-------------- next part --------------


when i launch a second scsynth, both can go to 75% and the processor  
palette really shows full power on both cores. now that is in a way  
nice but those two scsynths of course cannot share internal busses,  
so i wonder if the maximum CPU usage of one scsynth is a OS-based  
limitation (i'm on osx 10.4) and it's not scsynth but the OS which  
distributes the processing to the two cores. or if there could be  
some tweaking in scsynth to make it able to use both cores to the max?

s.boot

1000.do({ Synth( \default )})
SynthDef( \gaga, { 50.do({ Out.ar( 0, SinOsc.ar( exprand( 100,  
2000 ), mul: 0.05 ))})}).send( s );
20.do({ Synth( \gaga )})  // o.k. no clicks
y = Array.fill( 10, { Synth( \gaga )});   // too much CPU ;-(
y.do(_.free);

x = Server( \test, NetAddr( "127.0.0.1", 57000 ), s.options.copy );
x.boot;

SynthDef( \gaga, { 50.do({ Out.ar( 0, SinOsc.ar( exprand( 100,  
2000 ), mul: 0.05 ))})}).send( x );
20.do({ Synth( \gaga, target: x )}); // yeah, i get more synths  
without clicks




More information about the sc-users mailing list