Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Default impi version should match intel compiler #524

Closed
chuckatkins opened this issue Aug 11, 2017 · 5 comments
Closed

Default impi version should match intel compiler #524

chuckatkins opened this issue Aug 11, 2017 · 5 comments

Comments

@chuckatkins
Copy link

Now that the version parsing is fixed in 0863c5c , it would be great if somehow the default impi version was aligned with the compiler version it was shipped with. i.e. intel compiler version 16.0.3.210 would use a default impi version of 5.1.3.210, compiler version 17.0.4.196 would default to impi version 2017.3.196, etc. A preliminary implementation can be found in #523 .

@chuckatkins
Copy link
Author

@koomie

@koomie
Copy link
Contributor

koomie commented Aug 17, 2017

Hi @chuckatkins, thanks for testing out the updated approach over in #479. I personally think we need to be careful about making impi versions default to matching the compiler version. While that likely happens the majority of the time, there is nothing to prevent a user from installing impi separately (since it is available as a standalone entity) and there are also times when we see updates for the compiler without a matching update in impi.

As an example, the most recent 2017 pxse cluster studio collection contains update4 for the compiler, but has update3 for MPI.

Basing things off of the raw versioning string from the corresponding RPM seems to me, to be a more accurate and transparent way to track the version in cases like this.

What do you think - you can live with an approach where the impi versioning matches the rpm that installed it?

@chuckatkins
Copy link
Author

Hi @koomie,

you think - you can live with an approach where the impi versioning matches the rpm that installed it

Yes, I think that's great. The problem before was that both the compiler and impi ohpc packages each used a different means of introspection to determine their respective module versions, both of which were disjoint from the actual RPM version of the product itself. I think keeping the module version in line with the product rpm version works great and removes any "interpretation" that might need to be done.

As an example, the most recent 2017 pxse cluster studio collection contains update4 for the compiler, but has update3 for MPI.

Yep, things get even messier when you throw 2016 in to the mix since you'll have compiler version intel/16.0.4.258 and mpi version impi/5.1.3.258.

I personally think we need to be careful about making impi versions default to matching the compiler version.

Agreed. The problem I'm specifically trying to address is when multiple compiler and impi versions are available:

$ module avail
...
-------------------------- /opt/ohpc/pub/modulefiles ---------------------------
   gnu/5.4.0           intel/17.0.1.132    intel/18.0.0.082 (D)
   gnu7/7.1.0          intel/17.0.2.174    ohpc             (L)
   intel/16.0.3.210    intel/17.0.3.191    prun/1.1         (L)
   intel/16.0.4.258    intel/17.0.4.196
   intel/17.0.0.098    intel/18.0.0.061
...
$ module load intel/16.0.4.258
$ module avail
...
------------- /opt/ohpc/pub/moduledeps/intel ----------------------------------
   impi/5.1.3.210         impi/2017.1.132    impi/2017.3.196
   impi/5.1.3.258         impi/2017.2.174    impi/2018.0.061
   impi/2017.0.098        impi/2017.2.191    impi/2018.0.082 (D)
...
$ module load impi
$ module list
Currently Loaded Modules:
  1) prun/1.1   2) ohpc   3) intel/16.0.4.258   4) impi/2018.0.082

Because the default version is always to use the newest available, you end up with the 2016u4 compiler and 2018b1 impi, which is almost certainly not what would be expected. I took a crack at this over in #523. Essentially, durring the compiler module install, it looks to see if there's an impi installed in the same prefis. If there is, it sets up the default impi version when that compiler version is loaded.

@chuckatkins
Copy link
Author

So really the intent here is not for the default impi version to match the compiler version, but more so to have the default impi version be the one associated with the currently loaded compiler.

@chuckatkins
Copy link
Author

Closing this issue but leaving #523 open for future discussion

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

No branches or pull requests

2 participants