Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
2478ada
Add initial ABI generation code and new libraries
jtronge Sep 28, 2023
98ff643
Move ABI support into big count binding code
hppritcha May 10, 2025
fda8cb2
bindings: fix up makefile for c interfaces
hppritcha May 28, 2025
c6d502e
makefile fixes
hppritcha May 29, 2025
14d8a94
checkpoint
hppritcha Jun 2, 2025
d450f37
some fixes and start of a wrapper method
hppritcha Jul 2, 2025
0494bdc
attributes: add wrapper infrastructure
hppritcha Jul 7, 2025
84d3206
abi: move converter functions to a persistent file
hppritcha Jul 29, 2025
04a2ef3
minor compiler complaint fix
hppritcha Jul 29, 2025
0dcc6e4
temp commit with comments notes
hppritcha Aug 12, 2025
8e26eeb
Switch to using MPI Standard ABI values
Joe-Downs Jun 26, 2025
29fa149
distcheck fix and more
hppritcha Aug 21, 2025
478593a
git ignore additions
hppritcha Aug 23, 2025
f9386c6
ABI library: don't include functions in 19.3.4/5
hppritcha Aug 23, 2025
64be146
fixes to handle count/offset/aint in abi.h
hppritcha Aug 25, 2025
0083195
fix req converter abi to ompi
hppritcha Aug 26, 2025
98e9d5d
fix problem with request_get_status_some
hppritcha Aug 26, 2025
6111122
bindings: fix up REQUEST_CONST for abi
hppritcha Aug 26, 2025
236486a
tools: first steps to add support for ABI
hppritcha Sep 2, 2025
04f8e88
fix problem with undefined symbols in libmpi_abi
hppritcha Sep 2, 2025
ea70dad
hack on abi json file
hppritcha Sep 3, 2025
981e578
abi.h template - add MPI_T related structs
hppritcha Sep 3, 2025
ed8de45
binding framework: fixes for MPI T stuff
hppritcha Sep 3, 2025
7823ba8
binding framework: add a TS_LEVEL type
hppritcha Sep 3, 2025
02ea132
more hacks on the mpi-standard-5.0-abi.json
hppritcha Sep 3, 2025
ebe0ca4
fix for enable-mca-dso
hppritcha Sep 3, 2025
9581db3
makefile changes to add symbols to libmpi_abi
hppritcha Sep 16, 2025
15154ff
abi: fix problems with error handler converters
hppritcha Sep 17, 2025
43f65e9
fix problems with makefiles and some symbols
hppritcha Sep 17, 2025
8d0837d
abi: move mpi_type_get_envelope etc. into templates
hppritcha Sep 18, 2025
4fcb7a7
rebase fixup
hppritcha Sep 19, 2025
8bd03c8
add abi variantes of mpi_aint_diff and add
hppritcha Sep 19, 2025
e16ae92
add abi_set/get_fortran_info
hppritcha Sep 19, 2025
d8a0aa2
abi_fortran_stuff: fix up the imp of these
hppritcha Sep 22, 2025
e1a1767
abi_converters: add fortran datatypes to
hppritcha Sep 22, 2025
9a6c626
fix for mac-os CI
hppritcha Sep 23, 2025
820c49a
pr feedback on add/diff for aints
hppritcha Sep 23, 2025
db7c7df
configury: discover fortran logical false
hppritcha Sep 23, 2025
2b31848
configury fix
hppritcha Sep 23, 2025
9e595f3
squashme: temporary commit
hppritcha Sep 23, 2025
a29c560
add abi_get/set_fortran_booleans c interfaces
hppritcha Sep 25, 2025
0afcb57
abi_fortran: add support for LOGICAL16
hppritcha Sep 25, 2025
1e39fd0
logical16 patch
hppritcha Sep 29, 2025
df46cfc
add comm_from/toint
hppritcha Sep 29, 2025
36cc540
complete toint/fromint interfaces
hppritcha Oct 1, 2025
c014e99
fix error return values for ABI routines
hppritcha Oct 1, 2025
4661466
minor fixup for toint/fromint
hppritcha Oct 1, 2025
a37a2c2
rebase fix
hppritcha Oct 1, 2025
65587cd
handle TAG more correctly
hppritcha Oct 1, 2025
b60b9bc
squash compiler warning
hppritcha Oct 1, 2025
a5da3fc
add hooks for TAG_OUT type
hppritcha Oct 1, 2025
6125ed8
add better support for MPI_ROOT and source
hppritcha Oct 1, 2025
cfeb656
squash a compiler warning
hppritcha Oct 2, 2025
17298a7
some fixes to comm attributes wrappers
hppritcha Oct 3, 2025
94e855b
fix bug in comm attr copy code
hppritcha Oct 3, 2025
9cb711b
some fixes for attributes and more
hppritcha Oct 7, 2025
dcac48f
checkpoint
hppritcha Oct 9, 2025
31767be
fix for datatype converters
hppritcha Oct 9, 2025
9ccdf29
distcheck fix
hppritcha Oct 9, 2025
4fa421e
EVENT_INSTANCE: arg type cast fix
hppritcha Oct 9, 2025
8edcd9e
MPI_ROOT: capture proc null type too
hppritcha Oct 9, 2025
efb0122
requests: fixes to some multirequest test functions
hppritcha Oct 10, 2025
9f02e55
weights and source out support/fixes
hppritcha Oct 10, 2025
a6847b8
some fixes for message related functions
hppritcha Oct 11, 2025
f0ec8f1
fix mpi4py break
hppritcha Oct 11, 2025
0ffb052
fix a few problems with datatype bindings
hppritcha Oct 11, 2025
4ffe5f6
update gitignore
hppritcha Oct 11, 2025
2e73f01
add replacements to code bodies for various string lengths
hppritcha Oct 13, 2025
3328ab1
add support for distrib array and order
hppritcha Oct 13, 2025
187c613
add support for mode bits - in only
hppritcha Oct 13, 2025
6be0583
add support for amode out
hppritcha Oct 13, 2025
5963e39
add support for whence
hppritcha Oct 14, 2025
e6ff3f0
add support for some win attributes
hppritcha Oct 14, 2025
0a2054d
handle special case of MPI_DISPLACEMENT_CURRENT
hppritcha Oct 14, 2025
59da51a
add support for combiner, typeclass, win lock assert
hppritcha Oct 14, 2025
80b9c33
c_header: comment out deprecated functions
hppritcha Oct 15, 2025
35d3538
fix problem with special attrs for windows
hppritcha Oct 15, 2025
2e60fce
fix for win_shared_query
hppritcha Oct 15, 2025
509f115
fixes to rget/rget_accumulate
hppritcha Oct 16, 2025
a24159e
fix problem with code gen for win create keyval
hppritcha Oct 16, 2025
ede7cea
fix rank problem in rput/raccumulate
hppritcha Oct 16, 2025
f253a28
add MPI_GROUP_EMPTY to predefined group handles
hppritcha Oct 16, 2025
cec4c74
handle user error classes and codes
hppritcha Oct 16, 2025
eb4b80d
temporary WAR for non-blocking alltoallw
hppritcha Oct 20, 2025
82cadac
add support for comm topos
hppritcha Oct 20, 2025
5975394
support INOUT attribute for all handles
hppritcha Oct 20, 2025
a3d9ad3
fix problem with attribute callback handling
hppritcha Oct 20, 2025
877b6e3
catch use of special buffer consts
hppritcha Oct 21, 2025
43adab0
remove some debug statements
hppritcha Oct 21, 2025
b65e90d
swat nit
hppritcha Oct 21, 2025
100b0ce
patch get_address
hppritcha Oct 21, 2025
3accd60
add new type to handle out void stars
hppritcha Oct 21, 2025
714df46
fixes for datatypes for neighbor collectives
hppritcha Oct 21, 2025
06d574d
add inouts for op, errhandler, info
hppritcha Oct 22, 2025
1bbdf39
cleanup datatype tmps for ialltoallw and friends
hppritcha Oct 22, 2025
f0f6116
a logical16 fix
hppritcha Oct 22, 2025
b892ba0
abi_get_version/get_info add to ompi abi lib
hppritcha Oct 22, 2025
9956d85
toint fixes
hppritcha Oct 23, 2025
6c32329
fix issue with ASYNC data arrays cleanup
hppritcha Oct 24, 2025
2877f43
various fixes from dalcinl
hppritcha Oct 24, 2025
a97c98f
fix a problem
hppritcha Oct 24, 2025
959df10
ompi-codegen.patch from dalcinl
hppritcha Oct 24, 2025
d9884bb
ompi-abiinfo.patch from dalcinl
hppritcha Oct 24, 2025
7542f49
ompi-status.patch from dalcinl
hppritcha Oct 25, 2025
017ed80
move some deprecated funcs out of libmpi-abi
hppritcha Oct 27, 2025
2296bf2
add support for typeclass
hppritcha Oct 27, 2025
8983e1d
ops: convert data from internal to abi
hppritcha Oct 27, 2025
9c1147b
split rdma modes out from modes for files
hppritcha Oct 27, 2025
7f41d88
add SOURCE_ARRAY type
hppritcha Oct 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,7 @@ ompi/tools/ompi_info/ompi_info

ompi/tools/wrappers/mpic++-wrapper-data.txt
ompi/tools/wrappers/mpicc-wrapper-data.txt
ompi/tools/wrappers/mpicc_abi-wrapper-data.txt
ompi/tools/wrappers/mpifort-wrapper-data.txt
ompi/tools/wrappers/ompi_wrapper_script
ompi/tools/wrappers/ompi.pc
Expand Down Expand Up @@ -534,6 +535,12 @@ docs/man

# Generated C Bindings
ompi/mpi/c/*_generated*.c
ompi/mpi/c/standard_*.c
ompi/mpi/c/abi.h
ompi/mpi/c/abi_get_info.c
ompi/mpi/c/abi_converters.h
ompi/mpi/c/standard_abi
ompi/mpi/tool/*_generated*.c

# Generated Fortran Bindings
ompi/mpi/fortran/use-mpi-f08/*_generated.F90
Expand Down
1 change: 1 addition & 0 deletions config/ompi_config_files.m4
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ AC_DEFUN([OMPI_CONFIG_FILES],[
ompi/tools/ompi_info/Makefile
ompi/tools/wrappers/Makefile
ompi/tools/wrappers/mpicc-wrapper-data.txt
ompi/tools/wrappers/mpicc_abi-wrapper-data.txt
ompi/tools/wrappers/mpic++-wrapper-data.txt
ompi/tools/wrappers/mpifort-wrapper-data.txt
ompi/tools/wrappers/ompi.pc
Expand Down
26 changes: 25 additions & 1 deletion config/ompi_configure_options.m4
Original file line number Diff line number Diff line change
Expand Up @@ -256,5 +256,29 @@ AM_CONDITIONAL(OMPI_OMPIO_SUPPORT, test "$ompi_want_ompio" = "1")
AC_ARG_ENABLE([deprecate-mpif-h],
[AS_HELP_STRING([--enable-deprecate-mpif-h],
[Mark the mpif.h bindings as deprecated (default: enabled)])])

# If the binding source files don't exist, then we need Python to generate them
AM_PATH_PYTHON([3.6],,[:])
binding_file="${srcdir}/ompi/mpi/c/ompi_send_generated.c"
AS_IF([! test -e "$binding_file" && test "$PYTHON" = ":"],
[AC_MSG_ERROR([Open MPI requires Python >=3.6 for generating the bindings. Aborting])])
AM_CONDITIONAL(OMPI_GENERATE_BINDINGS,[test "$PYTHON" != ":"])

AC_MSG_CHECKING([if want to enable standard ABI library])
AC_ARG_ENABLE([standard-abi],
[AS_HELP_STRING([--enable-standard-abi],
[Enable building the standard ABI library (default: enabled)])])
if test "$enable_standard_abi" = "no"; then
AC_MSG_RESULT([no])
ompi_standard_abi=0
else
AC_MSG_RESULT([yes])
ompi_standard_abi=1
fi
AC_DEFINE_UNQUOTED([OMPI_STANDARD_ABI],[$ompi_standard_abi],
[Whether we want to build the standard ABI library])
AM_CONDITIONAL(OMPI_STANDARD_ABI,[test $ompi_standard_abi = 1])
AS_IF([test $ompi_standard_abi -eq 1],
[gen_abi="yes"],
[gen_abi="no"])
OPAL_SUMMARY_ADD([Miscellaneous], [MPI Standard ABI support], [], [$gen_abi])
])dnl
4 changes: 3 additions & 1 deletion config/ompi_fortran_check_logical_array.m4
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ dnl All rights reserved.
dnl Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
dnl Copyright (c) 2015 Research Organization for Information Science
dnl and Technology (RIST). All rights reserved.
dnl Copyright (c) 2025 Triad National Security, LLC. All rights
dnl reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
Expand Down Expand Up @@ -64,7 +66,7 @@ void ompi_check_f(ompi_fortran_logical_t * logical)
FILE *f=fopen("conftestval", "w");
if (!f) exit(1);

if (logical[[0]] == 0 &&
if (logical[[0]] == $ompi_cv_fortran_false_value &&
logical[[1]] == $ompi_cv_fortran_true_value)
result = 1;
fprintf(f, "%d\n", result);
Expand Down
60 changes: 56 additions & 4 deletions config/ompi_fortran_get_value_true.m4
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ dnl All rights reserved.
dnl Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
dnl Copyright (c) 2015 Research Organization for Information Science
dnl and Technology (RIST). All rights reserved.
dnl Copyright (c) 2025 Triad National Security, LLC. All rights
dnl reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
Expand All @@ -27,16 +29,22 @@ AC_DEFUN([OMPI_FORTRAN_GET_VALUE_TRUE],[
if test "$ompi_cv_fortran_true_value" = "0" ; then
unset ompi_cv_fortran_true_value
fi
if test "$ompi_cv_fortran_false_value" = "0" ; then
unset ompi_cv_fortran_false_value
fi

AS_VAR_PUSHDEF([fortran_true_var],
[ompi_cv_fortran_true_value])
AS_VAR_PUSHDEF([fortran_false_var],
[ompi_cv_fortran_false_value])

AC_CACHE_CHECK([Fortran value for .TRUE. logical type],
fortran_true_var,
[if test "$1" = "none" || \
test $OMPI_TRY_FORTRAN_BINDINGS -eq $OMPI_FORTRAN_NO_BINDINGS || \
test $ompi_fortran_happy -eq 0 ; then
value=77
tvalue=77
fvalue=77
else
#
# C module
Expand Down Expand Up @@ -98,6 +106,14 @@ EOF
CALL ompi_print(value)
end
EOF
cat > conftestf2.f <<EOF
program main
logical value
value=.FALSE.
CALL ompi_print(value)
end
EOF


#
# Try the compilation and run.
Expand All @@ -114,11 +130,40 @@ EOF
AS_IF([test "$cross_compiling" = "yes"],
[AC_MSG_ERROR([Can not determine value of .TRUE. when cross-compiling])],
[OPAL_LOG_COMMAND([./conftest],
[value=`sed 's/ *//' conftestval`],
[tvalue=`sed 's/ *//' conftestval`],
[AC_MSG_ERROR([Could not determine value of Fotran .TRUE.. Aborting.])])])

cat > conftestf.f <<EOF
program main
logical value
value=.FALSE.
CALL ompi_print(value)
end
EOF

#
# Try the compilation and run.
#
OPAL_LOG_COMMAND([$CC $CFLAGS -I. -c conftest.c],
[OPAL_LOG_COMMAND([$FC $FCFLAGS -o conftest conftest.o conftestf.f $LDFLAGS $LIBS],
[happy=1], [happy=0])],
[happy=0])

AS_IF([test $happy -eq 0 && test $ompi_fortran_happy -eq 1],
[AC_MSG_ERROR([Could not compile Fortran .FALSE. test. Aborting.])
])

AS_IF([test "$cross_compiling" = "yes"],
[AC_MSG_ERROR([Can not determine value of .FALSE. when cross-compiling])],
[OPAL_LOG_COMMAND([./conftest],
[fvalue=`sed 's/ *//' conftestval`],
[AC_MSG_ERROR([Could not determine value of Fotran .FALSE.. Aborting.])])])
fi
AS_VAR_SET(fortran_true_var, [$value])
unset value
AS_VAR_SET(fortran_true_var, [$tvalue])
unset tvalue
AS_VAR_SET(fortran_false_var, [$fvalue])
unset fvalue

])

AS_VAR_COPY([ompi_fortran_true_value], [fortran_true_var])
Expand All @@ -127,6 +172,13 @@ EOF
[Fortran value for LOGICAL .TRUE. value])
AS_VAR_POPDEF([fortran_true_var])

AS_VAR_COPY([ompi_fortran_false_value], [fortran_false_var])
AC_DEFINE_UNQUOTED([OMPI_FORTRAN_VALUE_FALSE],
[$ompi_fortran_false_value],
[Fortran value for LOGICAL .FALSE. value])
AS_VAR_POPDEF([fortran_false_var])


unset happy ompi_print_logical_fn
rm -rf conftest*
])dnl
6 changes: 5 additions & 1 deletion docs/man-openmpi/man3/MPI_Errors.3.rst
Original file line number Diff line number Diff line change
Expand Up @@ -348,9 +348,13 @@ Standard error return classes for Open MPI:
- Value is too large to store.

* - MPI_ERR_ERRHANDLER
- 89
- 80
- Invalid error handler handle.

* - MPI_ERR_ABI
- 81
- Invalid use of ABI method.

* - MPI_ERR_LASTCODE
- 93
- Last error code.
Expand Down
Loading