[Beowulf] LAM, MPICH, OpenMP?

Tom Elken elken at pathscale.com
Wed May 23 15:10:04 PDT 2007

> From: "Robert G. Brown" <rgb at phy.duke.edu>
> Subject: Re: [Beowulf] LAM, MPICH, OpenMP?
> To: Ruhollah Moussavi Baygi  <ruhollah.mb at gmail.com>
> Cc: beowulf at beowulf.org
> Message-ID: <Pine.LNX.4.64.0705231532390.7231 at lilith.rgb.private.net>
> Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
> On Tue, 22 May 2007, Ruhollah Moussavi Baygi  wrote:
>> > Dear all at Beowulf,
>> >
>> > As a conceptual question in the realm of parallel programming, what is the
>> > difference between LAM/MPI, MPICH, and OpenMP? Could one say that all of
>> > these are something like 'different compilers'  for  'one programming
>> > language'?
> No.  They are more like "different libraries" that share (more or less)
> "one API".  In fact, that is indeed what they are.

I think RGB was answering as though you typed "Open MPI" rather than "OpenMP."

If you did mean to type "Open MPI," then ignore the following.

His answer was very appropriate for several MPI's.  OpenMP is an API that is 
implemented through directives (a special kind of statement) that has to be 
interpreted by the compiler to generate multi-threaded code.  With the OpenMP 
compiler will be provided an OpenMP runtime library to manage the threading at 

Typically MPI is the API for running parallel applications across a cluster and 
OpenMP for running parallel applications within a node (an SMP multiprocessor 

You may want to get a book that covers both topics like "Parallel Programming in 
C with MPI and OpenMP" by Michael Quinn to get at the conceptual differences and 
similarities between the two.  Or  google searching can provide a lot of free 
references to both.


~~~~~~~~~~~~~~~~~~~       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tom Elken                 Manager, Performance Engineering
tom.elken at qlogic.com      QLogic Corporation
                           Host Solutions Group

More information about the Beowulf mailing list