Data Structures

Eray Ozkural erayo at
Fri Jul 5 08:10:25 PDT 2002

On Friday 05 July 2002 22:22, Joffre Heredia wrote:
>  After reading some information about MPI programming, I actually think
> that it could be possible to implement data structures for these parts of
> the parallel calculation that are running localy in a node. Maybe I'm
> wrong. Could anyone help ?

Advanced data structures are used when needed.

C people usually don't want to get into complex data structures because the 
language is too low level for that, you don't have genericity so you can't 
provide, say, a graph structure or a binary tree that will satisfy everyone.

I guess you'll find a lot of data structures in parallel machine learning / 
data mining or visualization codes...

In general you have to implement them yourself. Data structures are beyond the 
scope of a message passing library. And this is for a simple reason: 
parallelism is not dictated solely by data structure but the algorithm you 
pick. So if you have algorithms A and B which both use priority queues, the 
parallel versions might be completely different. Parallel implementation will 
most certainly depend on the algorithm and architecture of the parallel 
computer. Only then you can decide how to distribute/replicate the data.

Actually, it's best to write your own marshalling code and avoid MPI types for 
such codes... I use MPI only for point to point message passing and 
collective operations on arrays. In C++ it's quite easy to implement parallel 
algorithms that work on distributed graphs, trees, etc.


Eray Ozkural <erayo at>
Comp. Sci. Dept., Bilkent University, Ankara
GPG public key fingerprint: 360C 852F 88B0 A745 F31B  EA0F 7C07 AE16 874D 539C

More information about the Beowulf mailing list