Compilers and MPI Port Groups

Sean Farley sean at macports.org
Tue Jan 14 00:09:12 PST 2014


sean at macports.org writes:

> Hello all and Happy Boxing Day!
>
> I have done a complete rewrite of the compilers and mpi port groups
> based on suggestions from previous emails. I will try to keep this email
> short and provide links for those that want to know more.
>
> Highlights:
>
> - specify which compilers to set via compilers.choose,
>   e.g. 'compilers.choose f77 f90 fc'
>
> - functions for testing if fortran has been selected for optional
>   interfaces
>
> - portfile author can specify if fortran (or mpi) is required
>
> - unified and have made non-conflicting openmpi and mpich ports; also
>   added an openmpi-devel port [1]
>
> - can now select either mpi port as the default mpi installation
>
> Example of a portfile using the new compilers portgroup:
> https://smf.io/macports/changeset/compilers
>
> Example of a portfile that uses the mpi portgroup:
> https://smf.io/macports/files/mpi/dports/science/hdf5-18/Portfile
>
> The changes I made to the sparskit and hdf5-18 portfiles are just
> examples I did for illustrative purposes. I won't push them unless the
> portfile author wants it. The mpich and openmpi portfiles need these
> changes so that the mpi portgroup will work.
>
> Anyway, I'd like to push this soon so that I can continue other work
> (and close a lot of tickets), so it'd be great if others could take a
> look at the proposed changes.
>
> [1] https://smf.io/macports/changeset/81bb51 or look at the changelog
> https://smf.io/macports/changelog to see all the diffs

Just an update to say that I've gone ahead and finished updating all the
ports that use mpi to use this new port group. The only work that needs
to be done is to get some review of this patch series and after that,
permission to push.

I've cc'd the people who are the maintainers of the ports I changed,
listed below. It'd be great to have you guys look at the changes.

dstrubbe: sparskit, hpl, octopus

eborisch: mpich

mww: openmpi

raimue: valgrind, valgrind-devel

takeshi: berkeley_upc, omnixmp, gnudatalanguage, netcdf, netcdf-cxx,
netcdf-cxx4, netcdf-fortran

mmoll: optpp, hdf5-18, arpack

hum: plda

howarth: apbs-mpi

mattoates: raxml

mk: scotch

michaelld: SuiteSparse

Check out http://smf.io/macports for the updated changes.

Having other people look at this would be great and hopefully would
catch some of the errors I missed. The common ones I noticed were
missing revbumps (though, I think I got all of those now).

Documentation is very much "read the comments and the code itself or
look at an example" so, apologies about that. Also, sometimes I couldn't
think of a good name for a proc, so if anyone has a better name, please
speak up.

Some changes since last email are:

- ensure the same mpi is used via mpi.enforce_variant

- ensure the same c compiler is used (even when using mpi) via
  compilers.enforce_c

- similar for fortran, compilers.enforce_fortran

- test for avx compatible compiler via avx_variant_isset

Still yet to be done is to replace all custom recipes done for the
compiler variants. By my count, there are no more than 72 of those
ports. This is lower priority since they'll still work as is.


More information about the macports-dev mailing list