Intel® MPI Library
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.

I_MPI_SUBSTITUTE_INSTALLDIR

kgerheiser
Novice
1,976 Views

Hello,

 

I'm using Intel 2021.5.0 on Ubuntu 20.04 and I'm having a problem with these `I_MPI_SUBSTITUTE_INSTALLDIR` paths entering my build and causing it to fail. Along with `EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__` 

 

These values are found in the `mpif90` wrapper.

 

I've seen this happen in two packages, one with a CMake build using `find_package(MPI)` and another Autotools build.

 

Are these variables supposed to be manually replaced? Setting I_MPI_ROOT fixes the problem, but it seems like this is supposed to be replaced at install time. I'm using APT to install the packages if that matters.

Labels (2)
0 Kudos
6 Replies
HemanthCH_Intel
Moderator
1,952 Views

Hi,

 

Thank you for posting in Intel Communities.

 

From the above post, we assume that you have downloaded the oneAPI HPC toolkit and when you tried to build an application using CMake/Autotool build, then you faced issues with these directories (I_MPI_SUBSTITUTE_INSTALLDIR & EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__).

Please correct me if I got your issue wrong.

And we assume you can successfully build the application after setting up the I_MPI_ROOT variable.

 

Before using oneAPI HPC Toolkit, please initialize the oneAPI environment for setting up the related environment variables.

Use the below command for setting up your environment:

source /opt/intel/oneAPI/setvars.sh

Now, try to build your application using compilers of oneAPI HPC Toolkit.

 

Thanks & Regards,

Hemanth.

 

0 Kudos
kgerheiser
Novice
1,942 Views

You are correct, but my question is: shouldn't these variables be set automatically when the package is installed? Or are we supposed to manually replace the substitute variables?

0 Kudos
HemanthCH_Intel
Moderator
1,915 Views

Hi,

 

>>"shouldn't these variables be set automatically when the package is installed?"

No, please set the oneAPI environment to initialize the environment variables.

 

Please find the below screenshot to see the difference between before initializing the oneAPI environment and after initializing the environment.

HemanthCH_Intel_0-1646136222901.png

 

Please find the below command to initialize the Intel oneAPI environment.

source /opt/intel/oneAPI/setvars.sh

>>"or we supposed to manually replace the substitute variables"

When you source the setvars file then all the environment variables are set automatically. No need to manually replace the variables.

 

Thanks & Regards,

Hemanth.

 

0 Kudos
HemanthCH_Intel
Moderator
1,862 Views

Hi,


We haven't heard back from you. Could you please provide an update on your issue?


Thanks & Regards,

Hemanth.


0 Kudos
HemanthCH_Intel
Moderator
1,809 Views

Hi,


We assume that your issue is resolved. If you need any additional information, please post a new question as this thread will no longer be monitored by Intel.


Thanks & Regards,

Hemanth.


0 Kudos
kgerheiser
Novice
1,765 Views

The issue is that I'm if I'm using an external tool like Spack, and I can't source setup.sh. The hack they take here is to manually replace the template with the install prefix. It would be nice if the Intel installer did this automatically. What is the reason for having

__EXEC_PREFIX_TO_BE_FILLED_AT_INSTALL_TIME__ and I_MPI_SUBSTITUTE_INSTALLDIR  in the script if they're not substituted?

 

Then, this would remove the possibility of this value entering configure flags by accident.

 

See: https://github.com/spack/spack/blob/e0e3443f3a2afac0ec3140e850e0745422f15280/var/spack/repos/builtin/packages/intel-oneapi-mpi/package.py#L116-L121

Reply