Gentoo Archives: gentoo-dev

From: Anton Starikov <antst@×××××××.se>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] vitrual/mpi
Date: Wed, 01 Sep 2004 01:49:03
Message-Id: 41352A89.4090601@ifm.liu.se
In Reply to: Re: [gentoo-dev] vitrual/mpi by Ferris McCormick
1 Ferris McCormick wrote:
2 > Both sys-cluster/lam-mpi and sys-cluster/mpich provide implementations
3 > of mpi (message passing interface, I believe) to allow building
4 > computation clusters, similar to PVM (parallel virtual machine).
5 That's correct :) But MPI can be used not only with clusters. I have it
6 on my home and office desktops, just because I develop software for MPI
7 :) And people use it on SMP machines also.
8
9 > Unfortunately, lam-mpi and mpich are not quite compatible. A
10 > few packages (few = 2 to 5) depend explicitly on lam-mpi in case
11 > of USE='mpi ...', and apparently cannot use mpich. (dev-libs/fftw-2.x
12 > series, app-sci/gromacs, app-sci/orsa, app-sci/tree-puzzle)
13 That's right, these packages depend on lam-mpi, because it is hardcoded
14 into ebuilds. One of ideas behind virtual/mpi is to make it possible to
15 write ebuild that will support both of them. It is not impossible.
16 Theoretically, any application, which can be compiled with LAM can be
17 also compiled with MPICH, if application conform MPI standards (at least
18 MPI 1.2) and not tuned especially for particular MPI realization (it is
19 really exotic case, because it brokes one of ideas behind of MPI as a
20 open standard). So, on a source level (source of application which use
21 MPI, of course) - they are the same.
22 There is only some minor difference about linking. And some exotic in
23 case of using some non-standard Fortran features and MPICH. (for ex. if
24 you get command-line arguments from Fortran, AFAIK it is not standard
25 and not conform MPI standard, with MPICH you will get a bit more, than
26 you need, and different on slave and master nodes :)). But AFAIR there
27 no any exotic with C/C++.
28 But linking also could be done without problems. Ebuilds just should
29 follow MPI standard and use mpicc instead gcc, mpif77 instead g77 and so
30 on. If in ebuilds for LAM_MPI, MPICH (and something else which will
31 appeared) it is properly configured, they will install such wrappers,
32 which BTW cares about proper linking with proper libraries. AFAIR they
33 do it now.
34 OK, often people really don't care about wrappers and link directly,
35 that's true :) But even in such case there is no big problem with
36 linking. Just add check in ebuild, which MPI we use. Or, probably in
37 some applications autoconf care about it (I think in app-sci/gromacs
38 such case).
39
40 fftw definetely can use MPICH. Moreover, MPICH is much more spread than
41 LAM, so, I almost sure that it is much more probable to find some
42 software which will not work with LAM, rather with MPICH. For example, I
43 always test my programs with MPICH, even if I personaly like LAM. So, I
44 always keep one machine with MPICH. Because MPICH is some kind of
45 portable reference implementation of MPI related to MPI standard developers.
46
47 --
48 Anton Starikov
49
50 --
51 gentoo-dev@g.o mailing list