Forums > MaxMSP

Poly~: differencese between threadcount and parallel?

August 30, 2009 | 7:52 pm

I’m reading a bit about this stuff from the forums, but I’m still a little confused.

My understanding was that toggling parallel on for a poly~, will create as many threads as there are processor cores. I’m reading that the ‘threadcount’ attribute defaults to that number as well, but it seems that the reference material from max5 lists ’2′ as the default for threadcount.

Which is it? If threadcount is left at the default, and parallel is turned on, does it split across 2 processor cores, or all of them? If I force threadcount to 8, (or 16 or 32, or however many instances of the poly there are) will it get any sort of benefit, or will I actually lose speed, due to the OS shuffling threads across cores more often?


August 30, 2009 | 8:10 pm

The poly~ reference says that when parallel is activated, the poly~ processing of the number of instances loaded is split into 2 threads by default.

The number of processing threads can then be changed with the threadcount message, but it is recommended that threadcount = number of physical cores.

It does not recommend trying to split processing into more threads than there are processor cores, presumably because this means that the OS has to then process more than one audio thread on a single core, which is not necessary or beneficial for performance.

Threadcount is the variable of the parallel processing attribute.

I think the Note: in the parallel explanation is poorly worded and contradicts the explanation of the threadcount message.

I’ve never actually used poly~ though, so it would be good for someone more experienced to share some insight.

—— mm, just re-read my reply and realized it’s not very helpful at all!

sorry bout that, pretty knackered——-

hopefully someone who actually has an answer will chip in Razz


August 31, 2009 | 2:37 pm

threadcount is initialized with the number which corresponds to the number of cores that your computer has. But if you want to mess with it you can. This might be mainly helpful to see how inefficient it is to have thousands of thread on a dual core machine Wink It might be interesting to mess with it though when you have a 16 cores machine and you just want to use let’s say 8 threads. There’s no good answer to "what is the best number for threadcount", it just depends on the kind of things that you are doing. I wouldn’t touch it without tons of consideration.


August 31, 2009 | 5:07 pm

aha, I was incorrect, good to know!


March 20, 2013 | 5:54 pm

Is this still current information? Intel's i7 CPU has 4 cores, but it also apparently supports 8 parallel threads in hardware, that is at least, performance meters show 8 core instances, even though there are only 4 physical cores. When I enable parallel=1, it does split processing across the four physiual cores, but only half of each core is active. Does the threadcount parameter predictably permit activation of the other half of each physical core? This is a picture of the Windows perforamcne meter, showing that only half of each core is active.

[attachment=218388,5228]

Attachments:
  1. cpu.JPG

March 20, 2013 | 5:57 pm

If the threads have to run on the half of each core, is it possible to make two polys each of which run on different halves? Would upgrading to Windows 7 Professional make a difference to thread control?


Viewing 6 posts - 1 through 6 (of 6 total)