Skip to content

Commit

Permalink
WIP openmpi conda
Browse files Browse the repository at this point in the history
  • Loading branch information
folmos-at-orange committed Apr 18, 2024
1 parent 5b9f25e commit b0d4bb1
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 30 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@ jobs:
# The conda version cannot have '-' as a character so we eliminate it
echo "KHIOPS_VERSION=$(echo $KHIOPS_RAW_VERSION | sed 's/-//')" >> "$GITHUB_ENV"
- name: Build conda packages (Windows)
- name: Build Conda Package (Windows)
if: runner.os == 'Windows'
run: conda build --output-folder ./build/conda ./packaging/conda
# In Linux/macOS we need the conda-forge channel to install their pinned versions
- name: Build conda packages (Linux/macOS)
- name: Build Conda Package (Linux/macOS)
if: runner.os != 'Windows'
run: conda build --channel conda-forge --output-folder ./build/conda ./packaging/conda
- name: Upload conda packages artifact
Expand Down
24 changes: 18 additions & 6 deletions packaging/conda/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,32 @@
set -euo pipefail

# Choose the build preset for macOS/Linux
if [[ "$(uname)" == "Darwin" ]]
if [[ "$(uname)" == "Linux" ]]
then
CMAKE_PRESET="macos-clang-release"
else
CMAKE_PRESET="linux-gcc-release"
cmake --fresh --preset $CMAKE_PRESET -DBUILD_JARS=OFF -DTESTING=OFF -DMPI_SUFFIX=_openmpi
else
CMAKE_PRESET="macos-clang-release"
cmake --fresh --preset $CMAKE_PRESET -DBUILD_JARS=OFF -DTESTING=OFF
fi

# Build MODL and MODL_Coclustering
cmake --fresh --preset $CMAKE_PRESET -DBUILD_JARS=OFF -DTESTING=OFF
cmake --build --preset $CMAKE_PRESET --parallel --target MODL MODL_Coclustering

# Copy the MODL binaries to the Conda PREFIX path
cp "./build/$CMAKE_PRESET/bin/MODL" "$PREFIX/bin"
cp "./build/$CMAKE_PRESET/bin/MODL_Coclustering" "$PREFIX/bin"
ls -ltr "./build/$CMAKE_PRESET/bin"
mv ./build/$CMAKE_PRESET/bin/MODL* "$PREFIX/bin"

# Rename MODL in Linux since it has a prefix depending of the MPI version
if [[ "$(uname)" == "Linux" ]]
then
if [[ -f "$PREFIX/bin/MODL_mpich" ]]
then
mv "$PREFIX/bin/MODL_mpich" "$PREFIX/bin/MODL"
else
mv "$PREFIX/bin/MODL_openmpi" "$PREFIX/bin/MODL"
fi
fi

# Custom rpath relocation and signing executables for macOS in arm64
#
Expand Down
3 changes: 3 additions & 0 deletions packaging/conda/conda_build_config.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
---
mpi:
- openmpi=4.1.6 # [not win]
- msmpi # [win]
# We need MacOS SDK 10.10 to be able to build on macOS Intel
# Download: https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX10.10.sdk.tar.xz
# Decompress then to /opt: tar -zxvf MacOSX10.10.sdk.tar.xz -C /opt
Expand Down
24 changes: 2 additions & 22 deletions packaging/conda/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,35 +26,15 @@ build:
detect_binary_files_with_prefix: false # [osx]
{% endif %}

# Note on version pinning:
# OSX:
# - mpich=3.4.3 because 4.* is still unstable
# - requires conda-forge
# Linux:
# - mpich=4.0.3 because of bugs of the 3.* series
# - requires conda-forge
requirements:
build:
- mpich 4.0.3 # [linux]
- mpich-mpicc 4.0.3 # [linux]
- mpich-mpicxx 4.0.3 # [linux]
- mpich 3.4.3 # [osx]
- mpich-mpicc 3.4.3 # [osx]
- mpich-mpicxx 3.4.3 # [osx]
- msmpi # [win]
- cmake
- ninja
- {{ compiler('cxx') }}
host:
- mpich 4.0.3 # [linux]
- mpich-mpicxx 4.0.3 # [linux]
- mpich 3.4.3 # [osx]
- mpich-mpicxx 3.4.3 # [osx]
- msmpi # [win]
- {{ mpi }}
run:
- mpich 4.0.3 # [linux]
- mpich 3.4.3 # [osx]
- msmpi # [win]
- {{ mpi }}

outputs:
- name: khiops-core
Expand Down

0 comments on commit b0d4bb1

Please sign in to comment.