cpu optimizing and Mac OS10.6
Hi, does anyone know anything about how the new Grand Central Dispatch works in Snow Leopard? Lets say I was running two cpu-hungry applications (made in MaxMSP) at once, would their processing be split across the available cpu cores?
If that would work, it might be useful for me to split some of my patches into bits, and use them as applications communicating with each other to make for better performance.
Grand Central for developers to use in writing code that is better optimized for parallel processing. It won't do anything for you if the program you are using hasn't been written with Grand Central in mind.
That being said, the idea you mention of running two copies of Max to split things across CPUs/Cores should work and doesn't require Snow Leopard. If you are running two copies of Max, they both will be running independent threads that will be distributed to your available cores by your OS.
aha! Cheers for the reply, thats a very useful think for me to know! I'll try to test that out tomorrow to check if it seems to be working.
I wonder if Cycling74 will look into the GCD optimizing for future versions of maxmsp, I really prefer just running my patches without exporting.
I doubt they will because that would effect the cross platformness of Max5, but GCD is just a tool to help programmers, not the only way of doing multicore stuff.. Did you know about the parallel message to [poly~] to make it run in multithreaded mode? That is one thing you can do right now. Also, I think Jitter has multithreading options (if I remember correctly) and I could be wrong, but I think the Max and DSP threads might get sent to different cores if your computer decides that's the thing to do (someone correct me if I'm wrong about this), although probably doesn't make a big difference as the DSP thread is usually much more CPU intensive.
Yeah, I've known about the poly~ multithreading, but as I understand it, it is multiple instances which are split across cores. This doesn't help for all situations, as the patches I will need to optimize eventually are just massive patches, so loading 2 instances into a poly~ and splitting the threading wouldn't do me any good because I only want 1 instance, if that makes sense.
I think upgrading RAM will help me out a lot, as I tend to use buffers everywhere!
how can I run two copies of max5 simultaneously on windows?
Stay tuned for additional multi-core support in Max 6, but in the meantime, If you use Max for Live, you can run several patches simultaneous with audio in different threads when they are in different tracks. We have no plans for GCD support at the moment, but what we are working on is cross platform and of similar interest.
...multi-core support that would make one thankful they opted for the 12-core Mac Pro to run CPU intensive Jitter patches?