3
3
4
4
MPI=$( echo " ${1:- } " | tr ' [:upper:]' ' [:lower:]' )
5
5
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
+
6
31
case $( uname) in
7
32
8
33
Linux)
@@ -16,6 +41,11 @@ case $(uname) in
16
41
openmpi)
17
42
sudo apt install -y -q openmpi-bin libopenmpi-dev
18
43
;;
44
+ intelmpi)
45
+ setup-apt-intel-oneapi
46
+ sudo apt install -y -q intel-oneapi-mpi-devel
47
+ setup-env-intel-oneapi
48
+ ;;
19
49
* )
20
50
echo " Unknown MPI implementation:" $MPI
21
51
exit 1
@@ -77,6 +107,11 @@ case $MPI in
77
107
ompi_info --all
78
108
echo " ::endgroup::"
79
109
;;
110
+ intelmpi)
111
+ echo " ::group::Run impi_info -all"
112
+ impi_info -all
113
+ echo " ::endgroup::"
114
+ ;;
80
115
esac
81
116
82
117
if [ $MPI == openmpi ]; then
0 commit comments