Skip to content

Commit c6ef3c4

Browse files
authored
MPI fixes (macOS build/link flags), oneAPI ifort->ifx switch; turn off MSMPI CI (#976)
2 parents 4c1a93f + cf13403 commit c6ef3c4

File tree

6 files changed

+215
-45
lines changed

6 files changed

+215
-45
lines changed

.github/workflows/meta.yml

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ jobs:
3535
mpi: openmpi
3636
- os: ubuntu-latest
3737
mpi: mpich
38-
- os: windows-latest
39-
mpi: msmpi
4038
- os: macos-latest
4139
mpi: openmpi
4240
- os: macos-latest
@@ -106,16 +104,14 @@ jobs:
106104
if: contains(matrix.os,'ubuntu') && contains(matrix.mpi,'intel')
107105
timeout-minutes: 1
108106
run: |
109-
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
110-
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
111-
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
112-
echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
107+
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
108+
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
113109
sudo apt-get update
114110
115111
- name: (Ubuntu) Install Intel oneAPI
116112
if: contains(matrix.os,'ubuntu') && contains(matrix.mpi,'intel')
117-
timeout-minutes: 5
118-
run: sudo apt-get install intel-oneapi-compiler-fortran intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-mpi intel-oneapi-mpi-devel intel-oneapi-mkl ninja-build
113+
timeout-minutes: 15
114+
run: sudo apt-get install intel-oneapi-compiler-dpcpp-cpp-2023.1.0 intel-oneapi-compiler-fortran-2023.1.0 intel-oneapi-mpi-devel ninja-build
119115

120116
- name: (Ubuntu) Setup Intel oneAPI environment
121117
if: contains(matrix.os,'ubuntu') && contains(matrix.mpi,'intel')
@@ -152,6 +148,7 @@ jobs:
152148
if: contains(matrix.os,'windows') && contains(matrix.mpi,'msmpi')
153149
run: |
154150
echo "C:\Program Files\Microsoft MPI\Bin\" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
151+
echo "/c/Program Files/Microsoft MPI/Bin/" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
155152
echo "MSMPI_BIN=C:\Program Files\Microsoft MPI\Bin\" | Out-File -FilePath $env:GITHUB_ENV -Append
156153
157154
- name: (Windows) load OneAPI environment variables
@@ -216,9 +213,9 @@ jobs:
216213
if: contains(matrix.mpi,'intel')
217214
shell: bash
218215
run: |
219-
echo "FPM_FC=ifort" >> $GITHUB_ENV
220-
echo "FPM_CC=icc" >> $GITHUB_ENV
221-
echo "FPM_CXX=icpc" >> $GITHUB_ENV
216+
echo "FPM_FC=ifx" >> $GITHUB_ENV
217+
echo "FPM_CC=icx" >> $GITHUB_ENV
218+
echo "FPM_CXX=icpx" >> $GITHUB_ENV
222219
223220
- name: (macOS) Use gcc/g++ instead of Clang for C/C++
224221
if: contains(matrix.os,'macOS')

fpm.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ fortran-regex.git = "https://github.com/perazz/fortran-regex"
1818
fortran-regex.tag = "1.1.2"
1919
jonquil.git = "https://github.com/toml-f/jonquil"
2020
jonquil.rev = "4fbd4cf34d577c0fd25e32667ee9e41bf231ece8"
21+
fortran-shlex.git = "https://github.com/perazz/fortran-shlex"
22+
fortran-shlex.tag = "1.0.1"
2123

2224
[[test]]
2325
name = "cli-test"

src/fpm_compiler.F90

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,9 @@ module fpm_compiler
185185
flag_intel_fixed_form = " -fixed", &
186186
flag_intel_standard_compliance = " -standard-semantics"
187187

188+
character(*), parameter :: &
189+
flag_intel_llvm_check = " -check all,nouninit"
190+
188191
character(*), parameter :: &
189192
flag_intel_backtrace_win = " /traceback", &
190193
flag_intel_warn_win = " /warn:all", &
@@ -421,7 +424,7 @@ subroutine get_debug_compile_flags(id, flags)
421424
case(id_intel_llvm_nix)
422425
flags = &
423426
flag_intel_warn//&
424-
flag_intel_check//&
427+
flag_intel_llvm_check//&
425428
flag_intel_limit//&
426429
flag_intel_debug//&
427430
flag_intel_byterecl//&

src/fpm_environment.f90

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ integer function get_os_type() result(r)
3636
!! found on specific system types only.
3737
!!
3838
!! Returns OS_UNKNOWN if the operating system cannot be determined.
39-
character(len=32) :: val
40-
integer :: length, rc
41-
logical :: file_exists
42-
logical, save :: first_run = .true.
43-
integer, save :: ret = OS_UNKNOWN
39+
character(len=255) :: val
40+
integer :: length, rc
41+
logical :: file_exists
42+
logical, save :: first_run = .true.
43+
integer, save :: ret = OS_UNKNOWN
4444
!$omp threadprivate(ret, first_run)
4545

4646
if (.not. first_run) then

src/fpm_filesystem.F90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -654,7 +654,7 @@ end function unix_path
654654
!! integer :: iostat
655655
!! character(len=:),allocatable :: line, iomsg
656656
!! open(unit=stdin,pad='yes')
657-
!! INFINITE: do
657+
!! INFINITE: do
658658
!! call getline(stdin,line,iostat,iomsg)
659659
!! if(iostat /= 0) exit INFINITE
660660
!! write(*,'(a)')'['//line//']'

0 commit comments

Comments
 (0)