Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update IntelMPI to 2024.12 and use dynamic libraries on Ubuntu. #26

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 13 additions & 6 deletions .github/workflows/install_vcpkg_packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ jobs:
VCPKG_OVERLAY_PORTS: ${{ github.workspace }}/../../build_base/framework-ci/vcpkg_overlays/${{ matrix.vcpkg_overlay }}
VCPKG_DISABLE_METRICS: 1
VCPKG_BUILD_DIR: '${{ github.workspace }}/../../build_base/framework-ci/vcpkg'
VCPKG_PREINSTALL_HASH_PACKAGE_NAME: '1.3.2-${{ matrix.full_name }}-${{ matrix.triplet }}'
VCPKG_PUSH_HASH_PACKAGE_NAME: '1.4.2-${{ matrix.full_name }}-${{ matrix.triplet }}'
VCPKG_PREINSTALL_HASH_PACKAGE_NAME: '1.5.7-${{ matrix.full_name }}-${{ matrix.triplet }}'
VCPKG_PUSH_HASH_PACKAGE_NAME: '1.5.9-${{ matrix.full_name }}-${{ matrix.triplet }}'
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
DOTNET_CLI_TELEMETRY_OPTOUT: true
DOTNET_VERSION: '6.x'
Expand Down Expand Up @@ -46,18 +46,25 @@ jobs:
mono: ''
- os: 'ubuntu-20.04'
full_name: 'ubuntu-20.04'
triplet: 'x64-linux'
triplet: 'x64-linux-dynamic'
nugetexe: /usr/local/bin/nuget.exe
vcpkg_overlay: none
# To run `nuget.exe` on non-Windows platforms, we must use `mono`.
mono: 'mono'
- os: 'ubuntu-22.04'
full_name: 'ubuntu-22.04'
triplet: 'x64-linux'
triplet: 'x64-linux-dynamic'
nugetexe: /usr/local/bin/nuget.exe
vcpkg_overlay: none
# To run `nuget.exe` on non-Windows platforms, we must use `mono`.
mono: 'mono'
# - os: 'ubuntu-24.04'
# full_name: 'ubuntu-24.04'
# triplet: 'x64-linux-dynamic'
# nugetexe: /usr/local/bin/nuget.exe
# vcpkg_overlay: none
# # To run `nuget.exe` on non-Windows platforms, we must use `mono`.
# mono: 'mono'

steps:

Expand Down Expand Up @@ -126,8 +133,8 @@ jobs:

- name: 'Install vpckg packages'
shell: 'bash'
run: >
${VCPKG_BUILD_DIR}/vcpkg --debug install glib libxml2 mpi parmetis hypre hdf5 hwloc bzip2 lz4 tbb boost-program-options boost-property-tree gtest --triplet ${{ matrix.triplet }}
run: |
${VCPKG_BUILD_DIR}/vcpkg --debug install glib libxml2 mpi parmetis hypre hdf5 hwloc bzip2 lz4 tbb boost-program-options boost-property-tree hiredis gtest --triplet ${{ matrix.triplet }}

- name: 'Create nuget package for vcpkg installed packages'
shell: 'bash'
Expand Down
4 changes: 2 additions & 2 deletions _build/download_intel_mpi_2021.bat
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
C:\msys64\usr\bin\wget.exe "https://registrationcenter-download.intel.com/akdlm/irc_nas/19160/w_mpi_oneapi_p_2021.8.0.25543_offline.exe"
C:\msys64\usr\bin\wget.exe "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/a3a49de8-dc40-4387-9784-5227fccb6caa/w_mpi_oneapi_p_2021.12.1.7_offline.exe"
echo "Download finished"
.\w_mpi_oneapi_p_2021.8.0.25543_offline.exe -s -a --silent --eula=accept
.\w_mpi_oneapi_p_2021.12.1.7_offline.exe -s -a --silent --eula=accept
dir "C:\Program Files (x86)"
dir "C:\Program Files (x86)\Intel"
dir "C:\Program Files (x86)\Intel\OneAPI"
Expand Down
24 changes: 16 additions & 8 deletions vcpkg_overlays/win32-intelmpi/intel-mpi/portfile.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
set(INTELMPI_VERSION "2021.8.0")
set(INTELMPI_VERSION "2021.12")
set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/intel-mpi-${INTELMPI_VERSION}")

file(TO_NATIVE_PATH "C:/Program Files (x86)/Intel/oneAPI" SDK_SOURCE_DIR)
Expand All @@ -8,10 +8,10 @@ message(STATUS "IntelMPI source SDK = ${SDK_SOURCE_DIR}")
set(SDK_SOURCE_MPI_DIR "${SDK_SOURCE_DIR}/mpi/${INTELMPI_VERSION}")

set(SOURCE_INCLUDE_PATH "${SDK_SOURCE_MPI_DIR}/include")
set(SOURCE_LIB_PATH "${SDK_SOURCE_MPI_DIR}/lib/release")
set(SOURCE_DEBUG_LIB_PATH "${SDK_SOURCE_MPI_DIR}/lib/debug")
set(SOURCE_BIN_PATH "${SDK_SOURCE_MPI_DIR}/bin/release")
set(SOURCE_DEBUG_BIN_PATH "${SDK_SOURCE_MPI_DIR}/bin/debug")
set(SOURCE_LIB_PATH "${SDK_SOURCE_MPI_DIR}/lib")
set(SOURCE_DEBUG_LIB_PATH "${SDK_SOURCE_MPI_DIR}/lib/mpi/debug")
set(SOURCE_BIN_PATH "${SDK_SOURCE_MPI_DIR}/bin")
set(SOURCE_DEBUG_BIN_PATH "${SDK_SOURCE_MPI_DIR}/bin/mpi/debug")
set(SOURCE_TOOLS_PATH "${SDK_SOURCE_MPI_DIR}/bin")
set(SOURCE_INCLUDE_FILES
"${SOURCE_INCLUDE_PATH}/mpi.h"
Expand All @@ -38,11 +38,18 @@ file(INSTALL

# Also install include files in the tools directory
# because the compiler wrappers (mpicc.bat for example) needs them
# With Intel 2024.12 and CMake 2.27 we have to create a 'mpi' directory
# in the header directory to avoid an error with packages using MPI
file(INSTALL
${SOURCE_INCLUDE_FILES}
DESTINATION
"${CURRENT_PACKAGES_DIR}/tools/${PORT}/include"
)
file(INSTALL
${SOURCE_INCLUDE_FILES}
DESTINATION
"${CURRENT_PACKAGES_DIR}/tools/${PORT}/include/mpi"
)

# Install include files
file(INSTALL
Expand All @@ -69,19 +76,20 @@ file(INSTALL
file(INSTALL
"${SOURCE_BIN_PATH}/impi.dll"
"${SOURCE_BIN_PATH}/impi.pdb"
"${SDK_SOURCE_MPI_DIR}/libfabric/bin/libfabric.dll"
"${SDK_SOURCE_MPI_DIR}/opt/mpi/libfabric/bin/libfabric.dll"
DESTINATION "${CURRENT_PACKAGES_DIR}/bin"
)

file(INSTALL
"${SOURCE_DEBUG_BIN_PATH}/impi.dll"
"${SOURCE_DEBUG_BIN_PATH}/impi.pdb"
"${SDK_SOURCE_MPI_DIR}/libfabric/bin/libfabric.dll"
"${SDK_SOURCE_MPI_DIR}/opt/mpi/libfabric/bin/libfabric.dll"
DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin"
)

file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/mpi-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")

# Handle copyright
file(COPY "${SDK_SOURCE_DIR}/licensing/2023.0.0/license.htm" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
# C:\Program Files (x86)\Intel\oneAPI\licensing\2024.1\licensing\2024.1
file(COPY "${SDK_SOURCE_DIR}/licensing/2024.1/licensing/2024.1/license.htm" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "See the accompanying 'licence.htm'")
4 changes: 2 additions & 2 deletions vcpkg_overlays/win32-intelmpi/intel-mpi/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "intel-mpi",
"version": "2021.8.0",
"port-version": 2,
"version": "2021.12.0",
"port-version": 1,
"description": "Intel MPI is a Intel implementation of the Message Passing Interface standard for developing and running parallel applications.",
"homepage": "https://www.intel.com/content/www/us/en/developer/tools/oneapi/mpi-library.html",
"supports": "windows & !uwp"
Expand Down
Loading