Intel® oneAPI HPC Toolkit
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.
Announcements
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.
2019 Discussions

I_MPI_SUBSTITUTE_INSTALLDIR

kgerheiser
Novice
910 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
886 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.

 

kgerheiser
Novice
876 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?

HemanthCH_Intel
Moderator
849 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.

 

HemanthCH_Intel
Moderator
796 Views

Hi,


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


Thanks & Regards,

Hemanth.


HemanthCH_Intel
Moderator
743 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.


kgerheiser
Novice
699 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