diff options
author | Todd Gamblin <tgamblin@llnl.gov> | 2016-05-05 01:40:11 -0700 |
---|---|---|
committer | Todd Gamblin <tgamblin@llnl.gov> | 2016-05-05 01:40:11 -0700 |
commit | 10b0cb108cc5c60916c94580e84930d14a97b9ce (patch) | |
tree | 472aae4aa60bc43405672a889a525bbf2297d5a2 /lib | |
parent | 56557f7ff679c0434e808e6cc9763449cdefdaee (diff) | |
parent | c3bc4d6195a7f84525f117acfb68e2df5149d1ff (diff) | |
download | spack-10b0cb108cc5c60916c94580e84930d14a97b9ce.tar.gz spack-10b0cb108cc5c60916c94580e84930d14a97b9ce.tar.bz2 spack-10b0cb108cc5c60916c94580e84930d14a97b9ce.tar.xz spack-10b0cb108cc5c60916c94580e84930d14a97b9ce.zip |
Merge pull request #893 from davydden/mpi_dependent_env
Introduce variables for MPI compiler wrappers and document their usage
Diffstat (limited to 'lib')
-rw-r--r-- | lib/spack/docs/packaging_guide.rst | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/spack/docs/packaging_guide.rst b/lib/spack/docs/packaging_guide.rst index 519c0da232..34d11308f5 100644 --- a/lib/spack/docs/packaging_guide.rst +++ b/lib/spack/docs/packaging_guide.rst @@ -1831,6 +1831,23 @@ successfully find ``libdwarf.h`` and ``libdwarf.so``, without the packager having to provide ``--with-libdwarf=/path/to/libdwarf`` on the command line. +Message Parsing Interface (MPI) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +It is common for high performance computing software/packages to use ``MPI``. +As a result of conretization, a given package can be built using different +implementations of MPI such as ``Openmpi``, ``MPICH`` or ``IntelMPI``. +In some scenarios to configure a package one have to provide it with appropriate MPI +compiler wrappers such as ``mpicc``, ``mpic++``. +However different implementations of ``MPI`` may have different names for those +wrappers. In order to make package's ``install()`` method indifferent to the +choice ``MPI`` implementation, each package which implements ``MPI`` sets up +``self.spec.mpicc``, ``self.spec.mpicxx``, ``self.spec.mpifc`` and ``self.spec.mpif77`` +to point to ``C``, ``C++``, ``Fortran 90`` and ``Fortran 77`` ``MPI`` wrappers. +Package developers are advised to use these variables, for example ``self.spec['mpi'].mpicc`` +instead of hard-coding ``join_path(self.spec['mpi'].prefix.bin, 'mpicc')`` for +the reasons outlined above. + + Forking ``install()`` ~~~~~~~~~~~~~~~~~~~~~ |