Supernova cpu usage with ParGroups

  • SuperCollider version: 3.11.2
  • Operating system: Linux
// Server.scsynth;
Server.supernova;
s.options.maxNodes = 8000;
s.options.memSize = 2 ** 16;
s.boot;
s.mute;  // don't forget to mute.

SynthDef(\test, { Out.ar(0, SinOsc.ar!2) }).add;
g = ParGroup()
// h = { Group(target: g) }!4;  // other option, the same.

(
fork {
	3000.do { arg i;
		// Synth(\test);  // one core
		Synth(\test, target:g);  // -T 4 cores
		// Synth(\test, target:h[i % 4]);
		0.001.wait;
	}
};
)

s.numSynths;
s.quit;

For one thread supernova (~70%) uses more cpu than scsynth (~60%) but with four threads (-T 4 option, not configurable from sclang) each thread uses the same amount of cpu (~70%) supposedly doing less work. I don’t remember this being the case, is it working properly or I’m doing something wrong?

I think it is configurable – ServerOptions | SuperCollider 3.11.1 Help – " .threads = value – Number of audio threads that are spawned by supernova."

In any case: In years past, my dual-core machine could almost double performance with supernova. Now supernova performs not significantly better than scsynth.

That’s worrisome.

hjh

Thanks for the tip, I overlooked it. Yep, something is wrong it seems…