OpenDX/MPI, as I call it, is a package I've built on top of OpenDX,
consisting of a set of additional modules and associated infrastructure
that allows data to be spread among many nodes of a distributed cluster.
It operates in a master/slave architecture, in which the master holds a
simplified representation of a distributed data object which contains
attributes that link it to partitions of the un-simplified data that
resides on slave nodes.  These simplified objects on the master, which I
call stand-ins, are processed by standard OpenDX modules on the master as
if they are the data itself; however, OpenDX/MPI modules that recognize the
distributed-data attributes can operate on the unsimplified, distributed
data.  This can be done in two ways: by invoking macros on the slave nodes
that operate in parallel on the portion of the distrbuted data that they
hold, and by "distributed" modules, that operate on the data using either
the OpenDX/MPI remote point-to-point or broadcast procedure call interface,
or directly through MPI.

The first approach is used, for example, to compute an isosurface of a
distributed volume.  On the master, the network would invoke the
CallDistributedMacroReturnsStandin module:

standin for distributed isosurface = CallDistributedMacroReturnsStandin
("IsoMacro", standin for distributed volume, isovalues);

and on the slaves, you would have a macro:

macro IsoMacro(in)
{
    volumePartition, isovalues = DistributedMacroArguments(in);
    isoPartition = Isosurface(volumePartition, isovalues);
    ReturnStandIn(isoPartition);
}

Arguments passed into CallDistributedMacroReturnsStandin correspond to
outputs of DistributedMacroArguments, and are either standins (in which
case the corresponding output of DistributedMacroArguments on each slave is
the locally resident portion of the distributed data represented by the
standin) or simple OpenDX objects, which are broadcast by the master and
output by DistributedMacroArguments.  The return call ReturnStandIn in the
macro enables CallDistributedMacroReturnsStandin to create a standin for
the distributed result.  In this manner, distributed data is always
processed locally, and results remain distributed.

The second approach is used by included modules StreamlineRK, which
produces distributed streamlines from distributed vector fields, several
parallel rendering modules and several parallel data-import modules.

Rendering can be done in parallel using either software or hardware OpenGL
on the slave nodes, parallel binary-swap composition, and sending the
pixels to the master, by gathering distributed data onto the master node
for local rendering:

localdata = GatherDistributedData(standin for distributed data);
Image(localdata);

or by using Chromium-based parallel OpenGL.

Status is that its working fairly well but very poorly documented.  I can
distribute it to academic-associated people, but am still trying to figure
out how to get IBM to OK a full open-source release.

Greg





                                                                                
                                                          
                      "Jim K.W. Tse"                                            
                                                          
                      <[EMAIL PROTECTED]>             To:       
[email protected]                                   
                      Sent by:                             cc:                  
                                                          
                      [EMAIL PROTECTED]        Subject:  [opendx-users] About 
DXMPI                                           
                      son.ibm.com                                               
                                                          
                                                                                
                                                          
                                                                                
                                                          
                      05/31/2002 08:46 AM                                       
                                                          
                      Please respond to                                         
                                                          
                      opendx-users                                              
                                                          
                                                                                
                                                          
                                                                                
                                                          



Hi there

Do anyone know how can I get more information about DX MPI extension ?

thanks :)

-Jim





Reply via email to