as far as i know it pretty much comes down to the OS. but i think that you may have two options. allow me to briefly explain the parallel processing architecture and its divisions. the main branches use either a single instruction multiple data stream (SIMD) or multiple instruction multiple data stream (MIMD - a set of processors simultaneously execute different instruction sequences on different data sets) MIMD branches into two subsets classified as Distributed Memory (or in other words each processor has its own memory, ie, a box by itself, this is known as clustering, or Shared Memory. SMP falls under the latter heading, BUT the other option would be to use the master/slave architecture, whereby the OS kernel always runs on one processor and perhaps only user programs execute on the other. the main disadvantage with this is that the master may cause a performance bottleneck. and of course if the master goes down, there goes the system.
alternatively i know that when programming in C on linux only (windows craps itself) you can fork processes(linux makes a clone of the process and its attributes and memory space and everything), but i don't know (yet!) how to specify where it goes to get executed.
again, best of luck.




Reply With Quote