Skip to content

Prepare for v5.0.5 quick follow-up release #12700

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

Merged
merged 4 commits into from
Jul 22, 2024
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
45 changes: 45 additions & 0 deletions .github/workflows/macos-checks.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: macOS

on: [pull_request]

jobs:
macOS:
runs-on: macos-latest
steps:
- name: Setup macOS
run: |
# Copied from mpi4py/mpi-publish
# create gfortran symlink
cd $(brew --prefix)/bin
gfortran=$(ls gfortran-* | sort | head -n 1)
sudo ln -s $gfortran gfortran
# install autotools
brew install autoconf
brew install automake
brew install libtool
# unlink libevent
brew unlink libevent || true
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Build Open MPI
run: |
./autogen.pl
./configure --prefix=/opt/openmpi
make -j $(sysctl -n hw.logicalcpu)
- name: Run unit tests
run: |
make check
- name: Install Open MPI
run: |
sudo make install
- name: Add Open MPI to PATH
run: echo /opt/openmpi/bin >> $GITHUB_PATH
- name: Build examples
run: |
pushd examples
make
popd
- name: Test ring
run: |
mpirun --map-by ppr:1:core examples/ring_c
4 changes: 2 additions & 2 deletions VERSION
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ flex_min_version=2.5.4
# requirement is that it must be entirely printable ASCII characters
# and have no white space.

greek=a1
greek=

# If repo_rev is empty, then the repository version number will be
# obtained during "make dist" via the "git describe --tags --always"
Expand Down Expand Up @@ -94,7 +94,7 @@ date="Unreleased developer copy"
# Version numbers are described in the Libtool current:revision:age
# format.

libmpi_so_version=80:4:40
libmpi_so_version=80:5:40
libmpi_mpifh_so_version=80:0:40
libmpi_usempi_tkr_so_version=80:0:40
libmpi_usempi_ignore_tkr_so_version=80:0:40
Expand Down
18 changes: 18 additions & 0 deletions docs/release-notes/changelog/v5.0.x.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,24 @@ Open MPI v5.0.x series
This file contains all the NEWS updates for the Open MPI v5.0.x
series, in reverse chronological order.

Open MPI version v5.0.5
--------------------------
:Date: 23 July 2024

.. note:: This is a quick follow-up release that fixes v5.0.4 which does
not compile on macOS (arm64) with the inbox Apple clang compiler (``/usr/bin/gcc``).
The *only* change in v5.0.5 compared to v5.0.4 is a fix for this compilation issue.

- Internal PMIx and PRRTe versions:

- PMIx (v5.0.3). Commit hash: ``8ab6d680b90afd6e61766220a8724065a1b554a7``.
- PRRTE (v3.0.6). Commit hash: ``b68a0acb32cfc0d3c19249e5514820555bcf438b``.

- Bugfixes and changes

- Fix a typo that breaks the build on macOS with the Apple clang compiler on arm64 platforms.
Many thanks to Lisandro Dalcin for reporting the issue.

Open MPI version v5.0.4
--------------------------
:Date: 19 July 2024
Expand Down
6 changes: 5 additions & 1 deletion ompi/communicator/communicator.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
* Copyright (c) 2018-2024 Triad National Security, LLC. All rights
* reserved.
* Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved.
* Copyright (c) 2024 NVIDIA Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
Expand Down Expand Up @@ -610,6 +609,11 @@ static inline struct ompi_proc_t* ompi_comm_peer_lookup (const ompi_communicator
return ompi_group_peer_lookup(comm->c_remote_group,peer_id);
}

static inline bool ompi_comm_instances_same(const ompi_communicator_t *comm1, const ompi_communicator_t *comm2)
{
return comm1->instance == comm2->instance;
}

#if OPAL_ENABLE_FT_MPI
/*
* Support for MPI_ANY_SOURCE point-to-point operations
Expand Down
25 changes: 21 additions & 4 deletions ompi/mpi/c/testall.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
* and Technology (RIST). All rights reserved.
* Copyright (c) 2021 Triad National Security, LLC. All rights
* reserved.
* Copyright (c) 2024 NVIDIA Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
Expand Down Expand Up @@ -58,13 +57,31 @@ int MPI_Testall(int count, MPI_Request requests[], int *flag,
);

if ( MPI_PARAM_CHECK ) {
int rc = MPI_SUCCESS;
int i, rc = MPI_SUCCESS;
MPI_Request check_req = NULL;
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
if( (NULL == requests) && (0 != count) ) {
rc = MPI_ERR_REQUEST;
} else {
if(!ompi_request_check_same_instance(requests, count) ) {
rc = MPI_ERR_REQUEST;
for (i = 0; i < count; i++) {
if (NULL == requests[i]) {
rc = MPI_ERR_REQUEST;
break;
}
if (&ompi_request_empty == requests[i]) {
continue;
} else if (NULL == requests[i]->req_mpi_object.comm) {
continue;
} else if (NULL == check_req) {
check_req = requests[i];
}
else {
if (!ompi_comm_instances_same(requests[i]->req_mpi_object.comm,
check_req->req_mpi_object.comm)) {
rc = MPI_ERR_REQUEST;
break;
}
}
}
}
if ((NULL == flag) || (count < 0)) {
Expand Down
25 changes: 21 additions & 4 deletions ompi/mpi/c/testany.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
* and Technology (RIST). All rights reserved.
* Copyright (c) 2021 Triad National Security, LLC. All rights
* reserved.
* Copyright (c) 2024 NVIDIA Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
Expand Down Expand Up @@ -57,13 +56,31 @@ int MPI_Testany(int count, MPI_Request requests[], int *indx, int *completed, MP
);

if ( MPI_PARAM_CHECK ) {
int rc = MPI_SUCCESS;
int i, rc = MPI_SUCCESS;
MPI_Request check_req = NULL;
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
if ((NULL == requests) && (0 != count)) {
rc = MPI_ERR_REQUEST;
} else {
if(!ompi_request_check_same_instance(requests, count) ) {
rc = MPI_ERR_REQUEST;
for (i = 0; i < count; i++) {
if (NULL == requests[i]) {
rc = MPI_ERR_REQUEST;
break;
}
if (&ompi_request_empty == requests[i]) {
continue;
} else if (NULL == requests[i]->req_mpi_object.comm) {
continue;
} else if (NULL == check_req) {
check_req = requests[i];
}
else {
if (!ompi_comm_instances_same(requests[i]->req_mpi_object.comm,
check_req->req_mpi_object.comm)) {
rc = MPI_ERR_REQUEST;
break;
}
}
}
}
if (((NULL == indx || NULL == completed) && count > 0) ||
Expand Down
25 changes: 21 additions & 4 deletions ompi/mpi/c/testsome.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
* and Technology (RIST). All rights reserved.
* Copyright (c) 2021 Triad National Security, LLC. All rights
* reserved.
* Copyright (c) 2024 NVIDIA Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
Expand Down Expand Up @@ -59,13 +58,31 @@ int MPI_Testsome(int incount, MPI_Request requests[],
);

if ( MPI_PARAM_CHECK ) {
int rc = MPI_SUCCESS;
int indx, rc = MPI_SUCCESS;
MPI_Request check_req = NULL;
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
if ((NULL == requests) && (0 != incount)) {
rc = MPI_ERR_REQUEST;
} else {
if(!ompi_request_check_same_instance(requests, incount) ) {
rc = MPI_ERR_REQUEST;
for (indx = 0; indx < incount; ++indx) {
if (NULL == requests[indx]) {
rc = MPI_ERR_REQUEST;
break;
}
if (&ompi_request_empty == requests[indx]) {
continue;
} else if (NULL == requests[indx]->req_mpi_object.comm) {
continue;
} else if (NULL == check_req) {
check_req = requests[indx];
}
else {
if (!ompi_comm_instances_same(requests[indx]->req_mpi_object.comm,
check_req->req_mpi_object.comm)) {
rc = MPI_ERR_REQUEST;
break;
}
}
}
}
if (((NULL == outcount || NULL == indices) && incount > 0) ||
Expand Down
25 changes: 21 additions & 4 deletions ompi/mpi/c/waitall.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
* and Technology (RIST). All rights reserved.
* Copyright (c) 2021 Triad National Security, LLC. All rights
* reserved.
* Copyright (c) 2024 NVIDIA Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
Expand Down Expand Up @@ -56,13 +55,31 @@ int MPI_Waitall(int count, MPI_Request requests[], MPI_Status statuses[])
);

if ( MPI_PARAM_CHECK ) {
int rc = MPI_SUCCESS;
int i, rc = MPI_SUCCESS;
MPI_Request check_req = NULL;
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
if( (NULL == requests) && (0 != count) ) {
rc = MPI_ERR_REQUEST;
} else {
if(!ompi_request_check_same_instance(requests, count) ) {
rc = MPI_ERR_REQUEST;
for (i = 0; i < count; i++) {
if (NULL == requests[i]) {
rc = MPI_ERR_REQUEST;
break;
}
if (&ompi_request_empty == requests[i]) {
continue;
} else if (NULL == requests[i]->req_mpi_object.comm) {
continue;
} else if (NULL == check_req) {
check_req = requests[i];
}
else {
if (!ompi_comm_instances_same(requests[i]->req_mpi_object.comm,
check_req->req_mpi_object.comm)) {
rc = MPI_ERR_REQUEST;
break;
}
}
}
}
if (count < 0) {
Expand Down
25 changes: 21 additions & 4 deletions ompi/mpi/c/waitany.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
* and Technology (RIST). All rights reserved.
* Copyright (c) 2021 Triad National Security, LLC. All rights
* reserved.
* Copyright (c) 2024 NVIDIA Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
Expand Down Expand Up @@ -57,13 +56,31 @@ int MPI_Waitany(int count, MPI_Request requests[], int *indx, MPI_Status *status
);

if ( MPI_PARAM_CHECK ) {
int rc = MPI_SUCCESS;
int i, rc = MPI_SUCCESS;
MPI_Request check_req = NULL;
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
if ((NULL == requests) && (0 != count)) {
rc = MPI_ERR_REQUEST;
} else {
if(!ompi_request_check_same_instance(requests, count) ) {
rc = MPI_ERR_REQUEST;
for (i = 0; i < count; i++) {
if (NULL == requests[i]) {
rc = MPI_ERR_REQUEST;
break;
}
if (requests[i] == &ompi_request_empty) {
continue;
} else if (NULL == requests[i]->req_mpi_object.comm) {
continue;
} else if (NULL == check_req) {
check_req = requests[i];
}
else {
if (!ompi_comm_instances_same(requests[i]->req_mpi_object.comm,
check_req->req_mpi_object.comm)) {
rc = MPI_ERR_REQUEST;
break;
}
}
}
}
if ((NULL == indx && count > 0) ||
Expand Down
25 changes: 21 additions & 4 deletions ompi/mpi/c/waitsome.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
* and Technology (RIST). All rights reserved.
* Copyright (c) 2021 Triad National Security, LLC. All rights
* reserved.
* Copyright (c) 2024 NVIDIA Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
Expand Down Expand Up @@ -59,13 +58,31 @@ int MPI_Waitsome(int incount, MPI_Request requests[],
);

if ( MPI_PARAM_CHECK ) {
int rc = MPI_SUCCESS;
int indx, rc = MPI_SUCCESS;
MPI_Request check_req = NULL;
OMPI_ERR_INIT_FINALIZE(FUNC_NAME);
if ((NULL == requests) && (0 != incount)) {
rc = MPI_ERR_REQUEST;
} else {
if(!ompi_request_check_same_instance(requests, incount) ) {
rc = MPI_ERR_REQUEST;
for (indx = 0; indx < incount; ++indx) {
if (NULL == requests[indx]) {
rc = MPI_ERR_REQUEST;
break;
}
if (&ompi_request_empty == requests[indx]) {
continue;
} else if (NULL == requests[indx]->req_mpi_object.comm) {
continue;
} else if (NULL == check_req) {
check_req = requests[indx];
}
else {
if (!ompi_comm_instances_same(requests[indx]->req_mpi_object.comm,
check_req->req_mpi_object.comm)) {
rc = MPI_ERR_REQUEST;
break;
}
}
}
}
if (((NULL == outcount || NULL == indices) && incount > 0) ||
Expand Down
Loading
Loading