33
44MPI=$( echo " ${1:- } " | tr ' [:upper:]' ' [:lower:]' )
55
6+ setup-apt-intel-oneapi () {
7+ apt_repo_url=https://apt.repos.intel.com/
8+ gpg_key_url=$apt_repo_url /intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
9+ keyring=/usr/share/keyrings/oneapi-archive-keyring.gpg
10+ # download the key to system keyring
11+ curl -s $gpg_key_url | gpg --dearmor | sudo tee $keyring > /dev/null
12+ # add signed entry to apt sources
13+ echo " deb [signed-by=${keyring} ] ${apt_repo_url} /oneapi all main" | \
14+ sudo tee /etc/apt/sources.list.d/oneAPI.list
15+ # update list of available packages
16+ sudo apt update
17+ }
18+
19+ setup-env-intel-oneapi () {
20+ set +u
21+ source /opt/intel/oneapi/setvars.sh
22+ set -u
23+ echo " ${I_MPI_ROOT} /bin" >> $GITHUB_PATH
24+ echo " ONEAPI_ROOT=${ONEAPI_ROOT} " >> $GITHUB_ENV
25+ echo " I_MPI_ROOT=${I_MPI_ROOT} " >> $GITHUB_ENV
26+ echo " FI_PROVIDER_PATH=${FI_PROVIDER_PATH} " >> $GITHUB_ENV
27+ echo " LD_LIBRARY_PATH=${LD_LIBRARY_PATH} " >> $GITHUB_ENV
28+ echo " PKG_CONFIG_PATH=${PKG_CONFIG_PATH} " >> $GITHUB_ENV
29+ }
30+
631case $( uname) in
732
833 Linux)
@@ -16,6 +41,11 @@ case $(uname) in
1641 openmpi)
1742 sudo apt install -y -q openmpi-bin libopenmpi-dev
1843 ;;
44+ intelmpi)
45+ setup-apt-intel-oneapi
46+ sudo apt install -y -q intel-oneapi-mpi-devel
47+ setup-env-intel-oneapi
48+ ;;
1949 * )
2050 echo " Unknown MPI implementation:" $MPI
2151 exit 1
@@ -77,6 +107,11 @@ case $MPI in
77107 ompi_info --all
78108 echo " ::endgroup::"
79109 ;;
110+ intelmpi)
111+ echo " ::group::Run impi_info -all"
112+ impi_info -all
113+ echo " ::endgroup::"
114+ ;;
80115esac
81116
82117if [ $MPI == openmpi ]; then
0 commit comments