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

setvars.sh failing on macOS Catalina using zsh; works for bash

tinkham__douglas
Beginner
2,239 Views

I don't see a place to post possible bugs except in the forums.

MacOS 10.15.6 (Catalina), with oneAPI Base (2021.1.8.1970) and HPC (2021.1.8.1885)Toolkits installed:

"source /opt/intel/oneapi/setvars.sh" fails for me when using the zsh shell in Terminal, but it works just fine when using bash shell in Terminal. Problem is in TBB setting of TBBROOT, and somewhere else with rreadlink. Output is below.

No showstopper, I just noticed that Apple is now pushing folks to use zsh instead of bash in Catalina so many macos users might be using zsh.

 

Output of setvars.sh:

me@TAG-816 ~ % source /opt/intel/oneapi/setvars.sh

:: initializing oneAPI environment ...

:: daal -- latest

:: advisor -- latest

:: intelpython -- latest

:: ippcp -- latest

:: dnnl -- latest

:: tbb -- latest

usage: dirname path

ERROR: libtbb.dylib library does not exist in /Users/me/../lib.

:: mkl -- latest

:: ERROR: rreadlink(): '' does not exist.

 

:: dev-utilities -- latest

:: ipp -- latest

:: vtune_profiler -- latest

:: compiler -- latest

:: oneAPI environment initialized ::

me@TAG-816 ~ %

0 Kudos
1 Solution
Zhiqi_T_Intel
Employee
2,181 Views

ZSH support will be complete for MacOS in the future oneAPI release. For now, please try this workaround.


% bash -c 'source /opt/intel/oneapi/setvars.sh ; exec zsh'

:: initializing oneAPI environment ...

:: daal -- latest

:: advisor -- latest

:: intelpython -- latest

:: ippcp -- latest

:: dnnl -- latest

:: tbb -- latest

:: mkl -- latest


:: dev-utilities -- latest

:: ipp -- latest

:: vtune_profiler -- latest

:: oneAPI environment initialized ::

% which vtune

/opt/intel/oneapi/vtune_profiler/2021.1-beta08/MacOS/vtune



View solution in original post

0 Kudos
4 Replies
PrasanthD_intel
Moderator
2,227 Views

Hi Douglas,


Thanks for the suggestion.

Currently, GNU bash is the only shell supported.(https://software.intel.com/content/www/us/en/develop/articles/intel-oneapi-base-toolkit-system-requirements.html)

We are considering this as a feature request and forwarding your query to the concerned team.


Regards

Prasanth


0 Kudos
vinc17
Beginner
2,158 Views

Same issue with zsh under Linux. Note that setvars.sh contains the following comment:

# NOTE: This script is designed to be POSIX compatible, so that it can more
# easily be _sourced_ by a variety of shell scripts (zsh, ksh, bash, etc.) on
# a variety of UNIX-style systems (macOS and Linux). The "shebang" on line one
# of this script has no bearing on the actual shell that is used to execute
# this script, because it will always be executed within the context of the
# shell from which it is sourced.

So, if bash is required, I'm wondering why other shells are mentioned. Also, remember that with zsh, the user may source this script under non-default options (for this reason I also get many warnings such as "scalar parameter c created globally in function dnnl_match_configuration"). I don't know the best solution, but a possibility is to source all the code in a function that starts with "emulate -LR zsh".

0 Kudos
Zhiqi_T_Intel
Employee
2,208 Views

This is indeed an issue with oneAPI beta08. I have lodged a ticket to fix this issue. Thank you very much for reporting this issue!


0 Kudos
Zhiqi_T_Intel
Employee
2,182 Views

ZSH support will be complete for MacOS in the future oneAPI release. For now, please try this workaround.


% bash -c 'source /opt/intel/oneapi/setvars.sh ; exec zsh'

:: initializing oneAPI environment ...

:: daal -- latest

:: advisor -- latest

:: intelpython -- latest

:: ippcp -- latest

:: dnnl -- latest

:: tbb -- latest

:: mkl -- latest


:: dev-utilities -- latest

:: ipp -- latest

:: vtune_profiler -- latest

:: oneAPI environment initialized ::

% which vtune

/opt/intel/oneapi/vtune_profiler/2021.1-beta08/MacOS/vtune



0 Kudos
Reply