Request for comments: mpi and using multiple compilers

Sean Farley sean at macports.org
Sat Jul 20 16:28:35 PDT 2013


Hi all,

I'm looking for comments and feedback for two new port groups:
multiple compilers [1] and mpi [2]. My goal is to unify all the gcc4X
variants and mpich / openmpi variants scattered throughout the port
tree.

Here's a summary of the port groups:

- provide variants for all compilers (should there be a way to blacklist?)
- provide mpi variants e.g. netcdf [3]

$ port info netcdf

netcdf @4.2.1.1, Revision 2 (science)
Variants:             [+]clang, clang30, clang31, clang32, clang33,
clang34, [+]dap, dragonegg30, dragonegg31, dragonegg32, dragonegg33,
dragonegg34, g95, gcc44, gcc45, gcc46, gcc47, gcc48, gcc49,
                      gfortran, hdf4, llvm, mpich, mpich2,
mpich_devel, [+]netcdf4, openmpi, openmpi_devel, universal

- use require_active_variants to deal with conflicts; e.g. netcdf + mpich [4]

$ port install mpich
--->  Activating mpich @3.0.4_0+clang
--->  Cleaning mpich

$ port install netcdf +mpich +gfortran
--->  Computing dependencies for netcdf.
--->  Configuring netcdf
Error: org.macports.configure for port netcdf returned: mpich must be
installed with +gfortran.

Some questions:

* Should there be a default compiler (i.e. +clang)? Currently, I have
this implemented but maybe it could be removed.

* How would a port specify an optional use of mpi (or fortran) and a
requirement of one? There could be a proc 'require_mpi /
require_fortran' but I was unsure if it was worth it. Currently, there
is some monkeying around logic with using default_variants + checking
for at least one mpi / gfortran variant. I think I prefer this way
because it keeps all the variants in line.

[1] https://bitbucket.org/seanfarley/scienceports/src/2832e9d9716e178f20b5ab0eb563f40d7fcce730/_resources/port1.0/group/multiplecompilers-1.0.tcl?at=default

[2] https://bitbucket.org/seanfarley/scienceports/src/2832e9d9716e178f20b5ab0eb563f40d7fcce730/_resources/port1.0/group/mpi-1.0.tcl?at=default

[3] https://bitbucket.org/seanfarley/scienceports/src/2832e9d9716e178f20b5ab0eb563f40d7fcce730/science/netcdf/Portfile?at=default

[4] https://bitbucket.org/seanfarley/scienceports/src/2832e9d9716e178f20b5ab0eb563f40d7fcce730/science/mpich/Portfile?at=default


More information about the macports-dev mailing list