MPI_Init( /* ... */ );
LIP_Setup( /* ... */ );
/* Generate index array describing
* relationships between user data */
/*Create of the irregular distribution*/
LIP_create_hilbert_distribution_OOC(
datamap,...);
/*Actually move data*/
LIP_remap_ooc(datamap,...);
/* Perform irregular computation
* on the data */
for ( /* ... */ )
{
/* read i-section's indices
* from a file */
/* Inspector Phase (computes
* optimized communication
* and disk-memory mapping pattern)*/
LIP_Localize(datamap,schedule,... );
LIP_OOC_Localize(schedule,IObufmap,...);
/* Create MPI derived datatypes
* for moving data between
* the memory and the disk */
LIP_IObufmap_get_datatype(IOBufmap,...);
|