[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
runtime.
Typically MPI is the API for running parallel applications across a cluster and
OpenMP for running parallel applications within a node (an SMP multiprocessor
machine).
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
--
~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Tom Elken Manager, Performance Engineering
tom.elken at qlogic.com QLogic Corporation
Host Solutions Group
More information about the Beowulf
mailing list