SCC is a chip with 48 P54c cores connected by a 2D mesh on-die interconnect. On top of this chip, you can implement a variety of OS solutions.
The typical solution used with SCC is for each core to run an instance of Linux. You can use the RCCE library to write message passing programs that run on SCC. There are groups, however, looking into mapping other OS solutioins onto SCC. So there is nothing in the chip that requires Linux.
And as much as I like RCCE, there are groups porting their own APIs to SCC. You don't have to use RCCE. For many people, RCCE is a place to get started. You can study how we solved the message passing problem with RCCE and then use it as an example as y
Thanks for explaining that Tim!
So, on SCC is it possible to boot a single Linux kernel, shared by a set of cores? (If we somehow manage cache coherency in s/w and keeping the kernel image in DRAM shared by these cores). I know there'll be huge overheads involved and that we all hate shared memory in case of manycores.
I am not an OS expert so I am not the best person to discuss what is and is not possible. We do not run all the cores from a single Linux image in DRAM. Each core has its own copy of the Linux Image. This saves us from all the complexities of maintaining a coherent view of OS resources between cores. Is it possible to use a single Linux image for all the cores? I know of one group that proposed a research project to figure out how to do this. It may be possible, but it would be VERY difficult to pull off.
As Tim said, the SCC must be treated as 'cluster on a chip' in the first place. Running one OS instance over mutiple cores / tiles is as difficult as running a single OS image transparently on-top-of a cluster of workstations. In the past, this was often called "Single System Image" (SSI) operating system. The most prominent example was OpenMOSIX, but there are others. Our group is currently investigating the possibilities for getting a SMP OS up and running on the SCC. Be patient ;-) ...