Intel® oneAPI Base Toolkit
Support for the core tools and libraries within the base toolkit that are used to build and deploy high-performance data-centric applications.
419 Discussions

Generated module files do not allow for subdirectory relative to MODULEPATH

nsmeds
Novice
804 Views

The Intel OneAPI modules are not well written for situations where you do not want the modules to appear in the top-most level in the modules hierarchy. In short, the directory that you set as your target directory when generating the modules is intended to be present in your MODULEPATH variable.

 

The problem with this is that the oneAPI compiler is only available as "module load compiler" which is not very useful as most users may want to load different compilers.

If you create your oneAPI modules in a directory ../modulefiles/oneAPI/ and add modulefiles to your MODULEPATH the oneAPI tools will be found as a sub-level in the hierarchy and the user will be able to do things like:   module load gnu/compiler/11.2   oneapi/compiler/latest
if the module hierarchy is created with "gnu" and "oneapi" each being subdirectories relative to a component in MODULEPATH.

The problem is that the Intel modules can not handle this when computing requirements to load. In particular the compiler-rt and tbb modules are loaded by the compiler module file. Also, the module suggests where to find the debugger and dpl components.

 

The attached patch to the compiler module fixes this (at least in my setup, but I think it is general enough to work in other settings too). It needs to be adapted also for the compiler32 module and maybe some other modules that generate module load/unload sequences within them.

The patch uses the [module-info name] function call to get the argument to module load/unload and then makes substitutions in this string. There are two variables generated:
moduleinfoname => The string returned by [module-info name]

moduleinfonamenover => moduleinfoname with any explicit version component removed (/latest is kept though)

Which of the two variables are used depends on if the requirement is guaranteed to follow the version of the used modules (for example, the compiler module will always have a compiler-rt module with the same version installed).

 

0 Kudos
1 Solution
SantoshY_Intel
Moderator
595 Views

Hi,


We have included your suggestions in feature request database. At this moment there is no visibility of when it will be implemented and available for use. Please let me know if we can go ahead and close this case.


Thanks & Regards,

Santosh


View solution in original post

0 Kudos
2 Replies
SantoshY_Intel
Moderator
756 Views

Hi,


Thanks for posting in the Intel forums.


Thanks for your feedback. We have forwarded your feedback to the concerned development team. We will get back to you soon.


Thanks & Regards,

Santosh


0 Kudos
SantoshY_Intel
Moderator
596 Views

Hi,


We have included your suggestions in feature request database. At this moment there is no visibility of when it will be implemented and available for use. Please let me know if we can go ahead and close this case.


Thanks & Regards,

Santosh


0 Kudos
Reply