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 17, 2024
1 parent 5b9f25e commit adefaf5
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 28 deletions.
5 changes: 3 additions & 2 deletions .github/workflows/conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ jobs:
# In Linux/macOS we need the conda-forge channel to install their pinned versions
- name: Build conda packages (Linux/macOS)
if: runner.os != 'Windows'
run: conda build --channel conda-forge --output-folder ./build/conda ./packaging/conda
run: conda build --output-folder ./build/conda ./packaging/conda
- name: Upload conda packages artifact
uses: actions/upload-artifact@v4
with:
Expand Down Expand Up @@ -114,11 +114,12 @@ jobs:
# In Linux/macOS we need the conda-forge channel to install their pinned versions
- name: Install the Conda package (Linux/macOS)
if: runner.os != 'Windows'
run: conda install --channel conda-forge --channel ./build/conda khiops-core
run: conda install --channel ./build/conda khiops-core
- name: Test that the executables are installed
run: |
MODL -v
MODL_Coclustering -v
mpiexec -n 3 MODL -v
# Release is only executed on tags
# Note: For this job to work the secrets variables KHIOPS_ANACONDA_CHANNEL_TOKEN and
# KHIOPS_DEV_ANACONDA_CHANNEL_TOKEN must be set with valid anaconda.org access tokens
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"
cp ./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
28 changes: 8 additions & 20 deletions packaging/conda/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,35 +26,23 @@ 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]
- openmpi # [not win]
- openmpi-mpicc # [not win]
- openmpi-mpicxx # [not win]
- 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]
- openmpi # [not win]
- openmpi-mpicc # [not win]
- openmpi-mpicxx # [not win]
- msmpi # [win]
run:
- mpich 4.0.3 # [linux]
- mpich 3.4.3 # [osx]
- msmpi # [win]
- openmpi # [not win]
- msmpi # [win]

outputs:
- name: khiops-core
Expand Down

0 comments on commit adefaf5

Please sign in to comment.