Marcus G. Daniels wrote:
Mike Houston wrote:
The main issue with this, and addressed at the end
of the report, is that the code size is going to be a problem as data
and code must live in the same 256KB in each SPE. They mention dynamic
overlay loading, which is also how we deal with large code size, but
things get tricky and slow with the potentially needed save and restore
of registers and LS.
I did some checking on this. Apparently the trunk of GCC and the
latest GNU Binutils handle overlays. Because the SPU compiler knows of
its limits address space, the ELF object code sections reflect this, and
the the linker can transparently generate stubs to trigger the
loading. GCC also has options like -ffunction-sections that enable the
linker to optimize for locality.
So even though the OpenMPI shared libraries in total appear to have a
footprint about four times too big for code alone (don't know about the
typical stack & heap requirements), perhaps it's still doable without a
big effort to strip down OpenMPI?