Detailed Description
Internals about the startup of the execution-environment and SPU-Thread-Management.
The PPU-Process creates for every SPU-thread an own thread using the pthread-library (see
SPU-Thread Management). The rank of each prozess, the overall process count, the sizes of message-queue and buffer-space and the effective base address of the buffer is send to each SPU-thread via mailbox-messages. The SPU-threads then send the memory-addresses of their message-queues and status-arrays back to the PPU-process which writes this data into the prozess-list. After all SPU-Threads have reported back to the PPU-process the effective address of the PPU's process-list ist distributed among the SPU-processes which then copy the process-list via DMA in their local storages.
The PPU-process waits till all SPU-threads have signalled that they are also executing the finalize-function. After that a signal is send back to each SPU-Thread that they can now stop execution. Then local ressources are freed and the finalize-function returns.
A mailbox-message is send to the PPU to signal that the SPU-process is now executing the finalize-function. After that the SPU-process is waiting till a mailbox-message from the PPU-process is received. Then local ressources are freed and the finalize-function returns.