[CMake] History and ideas behind FindMPI.cmake?
Bartlett, Roscoe A
rabartl at sandia.gov
Tue Jan 13 14:59:44 EST 2009
Brad,
Thanks for the clarifications.
Note that MPI is unique in that it specifics how main(...) must be written and how to run programs on the command-line. I can't think of any other library that does this (except perhaps other message passing standards).
- Ross
> -----Original Message-----
> From: Brad King [mailto:brad.king at kitware.com]
> Sent: Tuesday, January 13, 2009 11:22 AM
> To: Bartlett, Roscoe A
> Cc: alin.elena at qub.ac.uk; cmake at cmake.org
> Subject: Re: [CMake] History and ideas behind FindMPI.cmake?
>
> Alin M Elena wrote:
> > Do you really need an module for MPI?
> >
> > All you need is to set the normal shell variables for
> compilers to the
> > MPI wrappers.
> > You need both mpi and non-mpi binaries just use different
> build folders.
>
> Alin is correct. If the project works with an all-MPI build
> you can just specify mpicc as the compiler (and similarly for
> C++). If anything in CMake prevents this from working we can
> address the specific issue.
> The FindMPI module is useful for mixed projects that want
> some MPI and some non-MPI binaries in the same tree.
>
> AFAIK the MPI compiler wrappers are provided to help
> non-software people (who may not understand ABIs, library
> search paths, etc.) use MPI. If every library took this
> approach it would be impossible to use more than one library.
> Imagine if zlib required one to use zlibcc to link to it.
> There is nothing wrong with using MPI libraries directly so
> long as the proper compiler flags are found. Teaching
> FindMPI how to do this for all MPI distributions may take
> some work but is not a wrong approach.
>
> The current FindMPI module is one of the oldest find-modules in CMake.
> It has mostly been updated minimally as necessary for the
> needs of folks willing to contribute their changes back to
> us. No one has taken the time to contribute a thorough treatment.
>
> -Brad
>
>
More information about the CMake
mailing list