Assuming that we are moving from parallel MPP systems towords workstation (PCs) clusters I have
the following conclusions (Based on the PASSION Summary) :
-
A large portion of PASSION is dedicated to out-of-core programs. When it is very relevent for MPP
architectures, it is much less relevent for computing clusters. The reason for it is simple; nodes
on parallel machines don't have virtual memory, therefore when something doesn't fit into the physical
memory it has to be devided between the available physical memory window and disks. Workstations, on the
other hand have their virtual memory limited only by the available swap space. Since the swap space is
rarely less than 100MB a chance that something won't fit is rather slim. There are of course cases when
the problem can still arise; a heap limit for user processes for example, but I belive such obstacles
can be removed through appropriate system administration. A conversation with Miloje should verify this
claim.
-
If it is agreed that out-of-core data is less relevant for clusters, then the whole portion of PASSION
that deals with compiler and HPF language support will have little relevance.
-
The model of the portable, virtual file system VIP-FS defined in PASSION can be utlized in any environment.
The important question is whether the design choices made for MPP are realy the optimal way of doing things -
clusters are much flexible when placing process is concerned (two or more of them can reside on the same machine
while on parallel nodes it is not possible in general).
-
The model of the the Two-Phase Access Strategy should be equally applicable to MPP as well as clusters.
-
What I think would be a sensible thing to do in the cluster case is to design (or reuse the VIP-FS design) the
parallel/distributed file server. This file server would interact with appropriate runtime via message passing.
The runtime would support language or library constructs which do ALL IO operations in the prefetching/non-blocking
mode. The runtime would use tce functionality to implement the non-blocking IO access using threads. The same
framework could be used to implement the file server. Finely, we could add the HPF directives to express
the "new" asynchronous IO at the language lavel, and to allow the runtime to execute the Two-Phase Access Strategy.