diff --git a/.github/workflows/Fortran.yml b/.github/workflows/Fortran.yml index 138771822..9519d327d 100644 --- a/.github/workflows/Fortran.yml +++ b/.github/workflows/Fortran.yml @@ -83,6 +83,7 @@ jobs: - name: DAMASK - Run run: | ./bin/DAMASK_grid -l tensionX.yaml -g 20grains16x16x16.vti -w examples/grid + ./bin/DAMASK_mesh -h intel: @@ -114,7 +115,15 @@ jobs: source /opt/intel/oneapi/setvars.sh printenv >> $GITHUB_ENV + - name: PETSc - Cache download + id: petsc-download + uses: actions/cache@v3 + with: + path: download + key: petsc-${{ env.PETSC_VERSION }}.tar.gz + - name: PETSc - Download + if: steps.petsc-download.outputs.cache-hit != 'true' run: | wget -q https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-${PETSC_VERSION}.tar.gz -P download @@ -127,6 +136,13 @@ jobs: export PETSC_ARCH=intel-${INTEL_V} printenv >> $GITHUB_ENV + - name: PETSc - Cache installation + id: petsc-install + uses: actions/cache@v3 + with: + path: petsc-${{ env.PETSC_VERSION }} + key: petsc-${{ env.PETSC_VERSION }}-intel-${{ matrix.intel_v }}-${{ hashFiles('**/petscversion.h') }} + - name: PETSc - Install (classic) if: contains( matrix.intel_v, 'classic') run: | @@ -150,6 +166,7 @@ jobs: make all - name: DAMASK - Compile + if: contains( matrix.intel_v, 'classic') run: | cmake -B build/grid -DDAMASK_SOLVER=grid -DCMAKE_INSTALL_PREFIX=${PWD} cmake --build build/grid --parallel @@ -158,6 +175,19 @@ jobs: cmake --build build/mesh --parallel cmake --install build/mesh + # ifx has issue with openMP + # https://community.intel.com/t5/Intel-Fortran-Compiler/ifx-ICE-and-SEGFAULT/m-p/1459877 + - name: DAMASK - Compile + if: contains( matrix.intel_v, 'llvm') + run: | + cmake -B build/grid -DDAMASK_SOLVER=grid -DCMAKE_INSTALL_PREFIX=${PWD} -DOPENMP=OFF + cmake --build build/grid --parallel + cmake --install build/grid + cmake -B build/mesh -DDAMASK_SOLVER=mesh -DCMAKE_INSTALL_PREFIX=${PWD} -DOPENMP=OFF + cmake --build build/mesh --parallel + cmake --install build/mesh + - name: DAMASK - Run run: | ./bin/DAMASK_grid -l tensionX.yaml -g 20grains16x16x16.vti -w examples/grid + ./bin/DAMASK_mesh -h diff --git a/cmake/Compiler-IntelLLVM.cmake b/cmake/Compiler-IntelLLVM.cmake index c6e6208b6..23cb285c1 100644 --- a/cmake/Compiler-IntelLLVM.cmake +++ b/cmake/Compiler-IntelLLVM.cmake @@ -6,7 +6,7 @@ if (CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 18.0) endif () if (OPENMP) - set (OPENMP_FLAGS "-qopenmp") + set (OPENMP_FLAGS "-fiopenmp") endif () if (OPTIMIZATION STREQUAL "OFF" OR OPTIMIZATION STREQUAL "DEBUG") @@ -23,6 +23,8 @@ endif () set (STANDARD_CHECK "-stand f18 -assume nostd_mod_proc_name") set (LINKER_FLAGS "${LINKER_FLAGS} -shared-intel") # Link against shared Intel libraries instead of static ones +set (LINKER_FLAGS "${LINKER_FLAGS} -shared-intel -fc=ifx") +# enforce use of ifx for MPI wrapper #------------------------------------------------------------------------------------------------ # Fine tuning compilation options