diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 410af1a105b4eaa2f104b14f385368dfa05394eb..c6f74696afd9a90b33463423a443f1ed72189972 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -37,6 +37,22 @@ dev images: - poetry run ogscm compiler.py ogs.py -B --ogs off --cpu-target $CPU_TARGET - poetry run ogscm compiler.py ogs.py ogs_jupyter.py -B -R --build_args ' --progress=plain' --cvode --ccache --cpmcache --mfront --cpu-target $CPU_TARGET --cmake_args ' -DOGS_CPU_ARCHITECTURE=OFF -DOGS_BUILD_TESTING=OFF -DOGS_BUILD_PROCESSES=SteadyStateDiffusion' --runtime_base_image 'registry.opengeosys.org/ogs/ogs/jupyter/base-notebook-ubuntu:22.04_3.10' +build ogs: + tags: ["envinf23", "shell"] + stage: build + rules: + - if: $CI_COMMIT_TAG + when: never + - if: $CI_PIPELINE_SOURCE == "web" + when: never + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + script: + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - black --check ogscm + - poetry install + - poetry run ogscm compiler.py mpi.py ogs.py -B --ogs ogs/ogs@master --build_args ' --progress=plain' --cvode --ccache --cpmcache --mfront --mkl --cmake_args ' -DOGS_BUILD_PROCESSES=SteadyStateDiffusion' + - poetry run ogscm compiler.py mpi.py ogs.py -B --ogs ogs/ogs@master --build_args ' --progress=plain' --cvode --ccache --cpmcache --mfront --pm off --cmake_args ' -DOGS_BUILD_PROCESSES=SteadyStateDiffusion' + release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest diff --git a/ogscm/building_blocks/ogs.py b/ogscm/building_blocks/ogs.py index 01437fcffe54b1bf1612d03774f2c26fa3bd9e45..51f74e2afb8e674d4ca0674d50ce3c324359414b 100644 --- a/ogscm/building_blocks/ogs.py +++ b/ogscm/building_blocks/ogs.py @@ -136,6 +136,8 @@ class ogs(bb_base, hpccm.templates.CMakeBuild, hpccm.templates.rm): ) # Configure and build + if "-DOGS_USE_MKL=ON" in self.__cmake_args: + self.__commands.append(". /opt/intel/oneapi/setvars.sh") self.__commands.append( self.configure_step( directory="{}/src".format(self.__prefix), diff --git a/ogscm/recipes/ogs.py b/ogscm/recipes/ogs.py index dcbcb5c9470733956221a98a9be4d1717682adb8..558c1e2c25e7ad5124c5be16f9765e4ff78fc6f1 100644 --- a/ogscm/recipes/ogs.py +++ b/ogscm/recipes/ogs.py @@ -13,7 +13,6 @@ from hpccm.building_blocks import ( generic_autotools, generic_cmake, hdf5, - mkl, packages, pip, ) @@ -332,9 +331,22 @@ versions_master = json.loads( ) if local_args.mkl: - Stage0 += mkl(eula=True, mklvars=False) - # For 32-bit mkl_link_tool: - Stage0 += packages(apt=["lib32stdc++6"], yum=["libstdc++.i686"]) + Stage0 += packages(ospackages=["ca-certificates", "gnupg", "wget"]) + mkl_version = "2021.4.0" + Stage0 += packages( + apt_keys=[ + "https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB" + ], + apt_repositories=["deb https://apt.repos.intel.com/oneapi all main"], + ospackages=[f"intel-oneapi-mkl-devel-{mkl_version}"], + ) + Stage1 += packages( + apt_keys=[ + "https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB" + ], + apt_repositories=["deb https://apt.repos.intel.com/oneapi all main"], + ospackages=[f"intel-oneapi-mkl-{mkl_version}"], + ) cmake_args.append("-DOGS_USE_MKL=ON") if local_args.ogs != "clean": @@ -497,20 +509,14 @@ if local_args.ogs != "clean": "--CXXFLAGS='-O3'", "--FFLAGS='-O3'", "--with-debugging=no", - "--download-f2cblaslapack=./f2cblaslapack-3.4.2.q4.tar.gz", + "--download-f2cblaslapack=1", ] - # TODO: remove last line and wget in preconfigure when upgrading - # to PETSc > 3.18 petsc_configure_opts.extend(petsc_args) Stage0 += generic_autotools( configure_opts=petsc_configure_opts, devel_environment={"CMAKE_PREFIX_PATH": "/usr/local/petsc"}, directory=f"petsc-{petsc_version}", ldconfig=True, - preconfigure=[ - "wget http://ftp.mcs.anl.gov/pub/petsc/externalpackages/f2cblaslapack-3.4.2.q4.tar.gz", - "sed -i -- 's/python/python3/g' configure", - ], prefix="/usr/local/petsc", toolchain=toolchain, url=f"http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-lite-{petsc_version}.tar.gz",