-
Notifications
You must be signed in to change notification settings - Fork 861
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
Standard ABI generation code and library refactor. #12033
base: main
Are you sure you want to change the base?
Conversation
Hello! The Git Commit Checker CI bot found a few problems with this PR: f12c656: Add initial ABI generation code and new libraries
Please fix these problems and, if necessary, force-push new commits back up to the PR branch. Thanks! |
20c3e2d
to
6ad2350
Compare
Two external MPI libraries are now created: libmpi.la and libmpi_abi.la. Backend code that was originally in libmpi.la has been extracted into libopen-mpi.la to be linked into both libraries. Parts of the Open MPI C interface are now being generated by a python script (abi.py) from modified source files (named with *.in). This script generates files for both the ompi ABI and the standard ABI from the same source file, also including new bigcount interfaces. To compile standard ABI code, there's a new mpicc_abi compiler wrapper. The standard ABI does not yet include all functions or symbols, so more complicated source files will not compile. ROMIO must be disabled for the code to link, since it's relying on the external MPI interface. Signed-off-by: Jake Tronge <[email protected]>
There is an issue in
|
@bwbarrett (one) CI failure was caused because |
@jtronge Now that I understand that |
I don't like that idea. python2 has been deprecated for years. |
maintaining a script written in python2 would be a lot of overhead. |
It may not be all that much overhead; we have other |
I've been under water for the last week; I'll hopefully have time tomorrow to update the AMIs to include Python3 and we can move on. |
Signed-off-by: Jake Tronge <[email protected]>
Thanks @ggouaillardet for the suggestion. I think my most recent commit should allow for VPATH builds. @jsquyres I've lowered the Python version to 3.6 and tested it locally. I'm guessing a conversion from 3-2 might require a restructure of some parts of the script and could introduce bugs. |
Hello! The Git Commit Checker CI bot found a few problems with this PR: 38209b6: Add inline attribute to generated functions
Please fix these problems and, if necessary, force-push new commits back up to the PR branch. Thanks! |
38209b6
to
a4bd1db
Compare
Signed-off-by: Jake Tronge <[email protected]>
a4bd1db
to
7e4c1ed
Compare
Our script is generating
|
If the ABI source files have not been generated, then Python >=3.6 is required. ABI source file generation is turned on by default as long as the proper Python is found. The standard ABI library will only be built with '--enable-standard-abi'. Signed-off-by: Jake Tronge <[email protected]>
This PR is on hold for the moment. We're waiting on a more complete definition of the Standard ABI as well as PR #12226, which adds bigcount support for both C and Fortran. I will be pushing a README shortly describing some of the design decisions that we discussed previously. |
Signed-off-by: Jake Tronge <[email protected]>
This adds a script for generating C ABI functions, as well as bigcount interfaces, based on template files for each function. Standard ABI functions are linked into a new libmpi_abi.la and backend code that was originally in libmpi.la is now stored in libopen-mpi.la. There are still many symbols missing from the standard ABI, so it's likely that more complicated code will not compile.