Skip to content

Commit 2784623

Browse files
authored
Merge pull request #7562 from raffenet/4.3.x-fixes
[4.3.x] backports in prep for 4.3.2rc1 Approved-by: Hui Zhou <[email protected]>
2 parents 12de885 + 01c8edd commit 2784623

File tree

50 files changed

+311
-157
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+311
-157
lines changed

CHANGES

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,50 @@
1+
===============================================================================
2+
Changes in 4.3.2
3+
===============================================================================
4+
# Improve libfabric provider selection when available providers have
5+
negative internal score
6+
7+
# Improve error messages when Level Zero failures are detected
8+
9+
# Improve localhost detection in Hydra
10+
11+
# Update libfabric usage to silence deprecation warnings
12+
13+
# Update embedded UCX to v1.19.0
14+
15+
# Add compatibility with CUDA 13
16+
17+
# Fix crash with GPU-aware build when running on systems with no GPUs
18+
19+
# Fix singleton init with Hydra
20+
21+
# Fix thread safety for Level Zero memcpy functions
22+
23+
# Fix potential crash when release gather collective initialization fails
24+
25+
# Fix ch3 connect/accept protocol handling when a discard event arrives
26+
after a connection is already established
27+
28+
# Fix inlining for posix eager modules in ch4/shm
29+
30+
# Fix weak attribute usage in MPI ABI build
31+
32+
# Fix potential use-after-free bug in Hydra during spawn operations
33+
34+
# Fix bug in persistent bcast algorithm
35+
36+
# Fix bug in fabric coordinate retrieval with PMIx
37+
38+
# Fix integer overflow and signed/unsigned bugs in ROMIO
39+
40+
# Fix Quobtye ROMIO driver build error
41+
42+
# Fix broken string conversion in mpi_f08 module
43+
44+
# Fix compilation issue with mpi_f08 and NAG compiler
45+
46+
# Fixes for various test program bugs
47+
148
===============================================================================
249
Changes in 4.3.1
350
===============================================================================

README.vin

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ has all MPI 4.1 functions and features required by the standard with
66
the exception of support for user-defined data representations for I/O.
77

88
This README file should contain enough information to get you started
9-
with MPICH. More extensive installation and user guides can be found
10-
in the doc/installguide/install.pdf and doc/userguide/user.pdf files
9+
with MPICH. More extensive installation and user guides can be found in
10+
the doc/installguide/install.pdf and doc/userguide/user.pdf files
1111
respectively. Additional information regarding the contents of the
12-
release can be found in the CHANGES file in the top-level directory,
13-
and in the RELEASE_NOTES file, where certain restrictions are
14-
detailed. Finally, the MPICH web site, http://www.mpich.org, contains
15-
information on bug fixes and new releases.
12+
release can be found in the CHANGES file in the top-level
13+
directory. Finally, see the official MPICH GitHub page,
14+
https://github.com/pmodels/mpich, for active development, bug tracking,
15+
and up-to-date release information.
1616

1717

1818
1. Getting Started

RELEASE_NOTES

Lines changed: 0 additions & 51 deletions
This file was deleted.

doc/wiki/source_code/Creating_A_Release.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,6 @@ Check all tests. This includes
4949
- Before committing `CHANGES`, it is recommended to send
5050
`CHANGES`, at least, to [email protected] in order to make sure
5151
everything is clear.
52-
- Update the `RELEASE_NOTES` file. This requires input from everyone,
53-
and generally requires asking each person (in person) if the current
54-
restrictions still apply, and if any new ones should be added.
5552
- Update the `README.vin` if necessary.
5653

5754
## Create a final tarball for the release using the release.pl script

maint/local_python/binding_c.py

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,7 +1042,7 @@ def out_can_be_undefined(p):
10421042
return True
10431043
return False
10441044
# ----
1045-
re_Handle = r'MPI_(Comm|Datatype|Errhandler|Group|Info|Message|Op|Request|Session|Win|File)\b'
1045+
re_Handle = get_abi_re_Handle()
10461046
for p in func['c_parameters']:
10471047
skip_abi_swap = False
10481048
param_type = mapping[p['kind']]
@@ -2801,6 +2801,10 @@ def dump_validate_get_topo_size(func):
28012801

28022802
# ---- supporting routines (reusable) ----
28032803

2804+
def get_abi_re_Handle():
2805+
# the following handle types need perform ABI-swap for abi bindings
2806+
return r'MPI_(Comm|Datatype|Errhandler|Group|Info|Message|Op|Request|Session|Win|File)\b'
2807+
28042808
def get_function_args(func):
28052809
arg_list = []
28062810
for p in func['c_parameters']:
@@ -2812,16 +2816,10 @@ def get_declare_function(func, is_large, kind=""):
28122816
name = get_function_name(func, is_large)
28132817
mapping = get_kind_map('C', is_large)
28142818

2815-
ret = "int"
2816-
if 'return' in func:
2817-
ret = mapping[func['return']]
2818-
if func['return'] == 'EXTRA_STATE':
2819-
ret = 'void *'
2819+
ret = get_C_return(func, mapping, kind == 'abi')
28202820

2821-
params = get_C_params(func, mapping)
2821+
params = get_C_params(func, mapping, kind == 'abi')
28222822
s_param = ', '.join(params)
2823-
if kind == 'abi':
2824-
s_param = re.sub(r'\bMPI_', 'ABI_', s_param)
28252823
s = "%s %s(%s)" % (ret, name, s_param)
28262824

28272825
if kind == 'proto':
@@ -2831,10 +2829,25 @@ def get_declare_function(func, is_large, kind=""):
28312829
s += " MPICH_API_PUBLIC"
28322830
return s
28332831

2834-
def get_C_params(func, mapping):
2832+
def get_C_return(func, mapping, is_abi=False):
2833+
ret = "int"
2834+
if 'return' in func:
2835+
ret = mapping[func['return']]
2836+
if func['return'] == 'EXTRA_STATE':
2837+
ret = 'void *'
2838+
if is_abi and func['dir'] != 'io':
2839+
re_Handle = get_abi_re_Handle()
2840+
ret = re.sub(re_Handle, r'ABI_\1', ret)
2841+
return ret
2842+
2843+
def get_C_params(func, mapping, is_abi=False):
28352844
param_list = []
2845+
re_Handle = get_abi_re_Handle()
28362846
for p in func['c_parameters']:
2837-
param_list.append(get_C_param(p, func, mapping))
2847+
param = get_C_param(p, func, mapping)
2848+
if is_abi and func['dir'] != 'io':
2849+
param = re.sub(re_Handle, r'ABI_\1', param)
2850+
param_list.append(param)
28382851
if not len(param_list):
28392852
return ["void"]
28402853
else:

maint/local_python/binding_f08.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -862,7 +862,12 @@ def dump_interface_function(func, name, c_name, is_large):
862862
decl_list.append("INTEGER(c_int) :: ierror")
863863
else:
864864
ret = "res"
865-
decl_list.append("%s :: res" % f08_mapping[func['return']])
865+
if func['return'] == 'LOGICAL':
866+
# MPIX_Request_is_complete
867+
decl_list.append("LOGICAL(c_bool) :: res")
868+
uses['c_bool'] = 1
869+
else:
870+
decl_list.append("%s :: res" % f08_mapping[func['return']])
866871

867872
# ----
868873
G.out.append("")

maint/version.m4

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
# changing this by playing with diversions, but then we would probably be
1515
# playing with autotools-fire.
1616

17-
m4_define([MPICH_VERSION_m4],[4.3.1])dnl
17+
m4_define([MPICH_VERSION_m4],[4.3.2rc1])dnl
1818
m4_define([MPICH_RELEASE_DATE_m4],[unreleased development copy])dnl
1919

2020
# For libtool ABI versioning rules see:

modules/ucx

Submodule ucx updated 756 files

src/binding/c/op_api.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,16 @@ MPI_Op_create:
77
.poly_impl: separate
88
/*
99
Notes on the user function:
10-
The calling list for the user function type is
10+
For MPI_Op_create, the calling list for the user function type is
1111
.vb
1212
typedef void (MPI_User_function) (void * a,
1313
void * b, int * len, MPI_Datatype *);
1414
.ve
15+
For MPI_Op_create_c, the calling list for the user function type is
16+
.vb
17+
typedef void (MPI_User_function_c) (void * a,
18+
void * b, MPI_Count * len, MPI_Datatype *);
19+
.ve
1520
where the operation is 'b[i] = a[i] op b[i]', for 'i=0,...,len-1'. A pointer
1621
to the datatype given to the MPI collective computation routine (i.e.,
1722
'MPI_Reduce', 'MPI_Allreduce', 'MPI_Scan', or 'MPI_Reduce_scatter') is also

0 commit comments

Comments
 (0)