I have been browsing through the documentation of the IBM Platform Load Sharing Facility, to find out if it supports parallel task computing.
Below is what I think is relevant for this question, Please correct me if my perception is wrong.
Focus seems to be on the parallel job execution, where a computation has to be split up and run as different processes.
The code we have, however, is optimized for parallel task execution. Here is some pseudo C# code:
for(timeStep=0; timeStep < MaxTimeSteps; timeStep++)
{
Parallel.ForEach(Cube.Cells, currentCell =>
{
Compute(currentCell, Cube);
}
}
This code will calculate a time series and perform some computation on each cell in every time step. The computation needs the state of other cells in the same time step, to do the computation. Note the Parallel.ForEach instruction.
This problem cannot easily be split into separately running processes which calculate a time step each. The state of each cell of the previous time step is needed in current time step. Splitting the problem further, into a job for each cell in each time step, would require synchronization and extensive exchange of data, be it inter process or through files or database systems.
On the other hand, the Parallel.ForEach instruction could benefit extremely from the availability of many CPU's.
So, could this problem, running as a single process, benefit from a grid running LSF? Would it be transparent for the process, so that it perceives one huge system, with many CPU's and one big memory address space?