LFC software supports a serial, single processor user interface, but delivers the computing power achievable by an expert user working on the same problem who optimally utilizes the resources of a cluster. The basic premise is to design numerical library software that addresses both computational time and space complexity issues on the user' s behalf and in a manner as transparent to the user as possible. The software intends to allow users to either link against an archived library of executable routines or benefit from the convenience of prebuilt executable programs without the hassle of resolving linker dependencies. The user is assumed to call one of the LFC routines from a serial environment while working on a single processor of the cluster. The software executes the application. If it is possible to finish executing the problem faster by mapping the problem into a parallel environment, then this is the thread of execution taken. Otherwise, the application is executed locally with the best choice of a serial algorithm. The following details for parallelizing the user's problem are all handled by the software:
- resource discovery,
- selection and allocation,
- mapping the data onto (and off of) the working cluster of processors,
- executing the user' s application in parallel,
- freeing the allocated resources,
- and returning control of the user' s process in the serial environment from which the procedure began
Alternatively, the expert user chooses a subset of processors from the cluster well suited to address memory and computational demands, initializes the parallel environment directly, generates the data set locally, in parallel on the working group in a manner affecting any necessary parallel data structures, and then executes the same parallel application.