Skip to content

Treat mpi_family MPICH as MPICH 3.x instead of MPICH 1.x#519

Merged
boegel merged 5 commits intoeasybuilders:developfrom
geimer:fix_mpich_inconsistencies
Dec 12, 2014
Merged

Treat mpi_family MPICH as MPICH 3.x instead of MPICH 1.x#519
boegel merged 5 commits intoeasybuilders:developfrom
geimer:fix_mpich_inconsistencies

Conversation

@geimer
Copy link
Copy Markdown
Contributor

@geimer geimer commented Dec 8, 2014

Several easyblocks either don't handle the mpi_family MPICH at all or treat them as MPICH 1.x. This is addressed by this PR at least for some packages. Other easyblocks that may need modifications are:

  • aladin
  • esmf
  • imkl
  • nwchem
  • rmpi

However, I have never installed any of those, i.e., it would be good if someone else could help out.

Note that this PR is related to easybuilders/easybuild-framework#1073, easybuilders/easybuild-framework#1101, and easybuilders/easybuild-easyconfigs#1217, although I believe that the changes proposed here are required in any case.

@hpcugentbot
Copy link
Copy Markdown

Automatic reply from Jenkins: Can I test this?

For Scalasca 1.x, there /is/ actually a difference between MPICH2 and
MPICH 3.x. The latter is only supported since Scalasca 1.4.3 (older
versions won't compile) and now correctly selected by the easyblock.
@boegel
Copy link
Copy Markdown
Member

boegel commented Dec 11, 2014

Jenkins: ok to test

@hpcugentbot
Copy link
Copy Markdown

Test PASSed.

@boegel
Copy link
Copy Markdown
Member

boegel commented Dec 11, 2014

  • ALADIN: trivial patch needed
  • ESMF: look OK (both mpich and mpich2 as values are known so the mpi_family.lower() should be fine), cfr. http://www.earthsystemmodeling.org/esmf_releases/public/ESMF_3_1_0rp3/ESMF_usrdoc/node7.html)
  • imkl: needs patch to handle MPICH case, should use mpi_family() when possible (i.e. for non-dummy toolchains)
  • NWChem: trivial patch needed
  • Rmpi: seems OK, it only needs to distinguish between the high-level types OpenMPI vs MPICH, and make an exception for Intel MPI
  • ScaLAPACK & SCOTCH: looks fine too, are using mpi_family but no patch needed

@boegel
Copy link
Copy Markdown
Member

boegel commented Dec 11, 2014

required changes in geimer#1

Builds with the touched easyblocks should be retested once that PR in included in here.

@boegel
Copy link
Copy Markdown
Member

boegel commented Dec 11, 2014

I've tested installing the existing Scalasca and Score-P gompi/1.4.12-no-OFED easyconfigs using the gmpolf/1.4.8 toolchain from easybuilders/easybuild-easyconfigs#1217, on top of this PR and easybuilders/easybuild-framework#1112 (which wraps around easybuilders/easybuild-framework#1101).

Scalasca v2.0 and Score-P v1.2.1 (and their dependencies) were not a problem, but Scalasca v1.4.3 didn't work, see https://gist.github.com/boegel/ae07827244011a32f87e.

I don't know how much of an issue this is since i) it's an old version, and ii) something else may be causing this problem. I haven't checked whether building Scalasca v1.4.3 with gmolf/1.4.8 worked prior to the changes we're dealing with here. @geimer: thoughts?

I'm also checking the installation of the following with gmolf/1.4.8 (based on the existing goolf/1.4.10 easyconfigs), since the respective easyblocks were touched in this PR (once geimer#1) is merged in, results are pending:

  • ALADIN 36t1_op2bf1
  • ESMF v5.3.0
  • ESMF v6.1.1

I'm also retesting all existing imkl easyconfigs, to ensure nothing broke with the changes made in geimer#1.

@boegel
Copy link
Copy Markdown
Member

boegel commented Dec 11, 2014

Update: building ALADIN, and NWChem (v6.1.1) with the gmpolf/1.4.8 toolchain works without problems. Reinstalling all the imkl easyconfigs (on top of geimer#1) worked fine too.

Building ESMF v5.3.0 or v6.1.1 with gmpolf/1.4.8 is a problem though, and fails with:

make: mpiCC: Command not found

So, this needs a closer look, but this is not caused by any of the changes being discussed here, it simply never worked. :-)

@geimer
Copy link
Copy Markdown
Contributor Author

geimer commented Dec 12, 2014

@boegel: Regarding ESMF: Though both mpich and mpich2 are recognized, mpich may actually mean MPICH 1.x which is quite different from MPICH 2/3. I believe MPICH 1.x created an mpiCC wrapper for C++, whereas MPICH 2/3 use mpicxx or mpic++. Therefore I suggest to try again with mapping MPICH to mpich2.

@geimer
Copy link
Copy Markdown
Contributor Author

geimer commented Dec 12, 2014

@boegel: Don't waste any more time on Scalasca v1.4.3. It's a bug in our code base and not caused by these changes. It also won't compile with a recent Open MPI (>= v1.7). We are likely to release a v1.4.4 soon where these issues will be fixed (a final bugfix release for the unteachable who are not willing to switch to the better technology ;-)).

@hpcugentbot
Copy link
Copy Markdown

Test PASSed.

@geimer
Copy link
Copy Markdown
Contributor Author

geimer commented Dec 12, 2014

@boegel: Thanks for taking care of the missing easyblocks!

@boegel
Copy link
Copy Markdown
Member

boegel commented Dec 12, 2014

just a confirmation: the ESMF issue is fixed with the change included in geimer#1, so this should be good to go in

@boegel
Copy link
Copy Markdown
Member

boegel commented Dec 12, 2014

Good to go, thoroughly tested on top of easybuilders/easybuild-framework#1112

boegel added a commit that referenced this pull request Dec 12, 2014
Treat mpi_family MPICH as MPICH 3.x instead of MPICH 1.x
@boegel boegel merged commit 70db64b into easybuilders:develop Dec 12, 2014
@geimer geimer deleted the fix_mpich_inconsistencies branch December 16, 2014 10:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants