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

mpi4py: run the spawn and dynamic process tests #23

Closed
wants to merge 2 commits into from

Conversation

jsquyres
Copy link
Owner

Split the mpi4py Github Action into 4 parts:

  1. build: do everything to build, configure, and install Open MPI and mpi4py
  2. run: run all the mpi4py tests with its defaults. As of March 2024, this disables the spawn and dynamic tests, which means that the entire block of tests should pass.
  3. run_spawn: run all the mpi4py tests, including the spawn tests. As of March 2024, we know some of these tests are failing.
  4. run_dynamic: run all the mpi4py tests, including the dynamic tests. As of March 2024, we know some of these tests are failing.

The spawn and dynamic failures are different, so we split them up and run them separately.

Signed-off-by: Jeff Squyres <jeff@squyres.com>
@jsquyres jsquyres force-pushed the jms-mpi4py-github-action branch 19 times, most recently from 747505c to 0ad934c Compare March 21, 2024 16:29
@jsquyres
Copy link
Owner Author

@hppritcha @dalcinl I think I finally got the github action in a state where I want it -- it is split up into the 4 parts:

  1. Build everything
  2. Run mpi4py tests with defaults
  3. Run mpi4py tests with spawn included
  4. Run mpi4py tests with dynamic included

So we get nice green checkmarks for the first 2, and expected red X's for the latter two.

Splitting into multiple parts did make it a bit more complex, however. E.g., I have to upload and download artifacts between the jobs.

You probably have more experience with GHA's than me. Am I making this too complicated?

@dalcinl
Copy link

dalcinl commented Mar 21, 2024

@jsquyres Take a look here https://github.com/mpi4py/mpi4py-testing/blob/master/.github/workflows/abi.yml

  • Build job: you first use pip wheel <mpi4py-directory> to create a wheel file, the you use actions/upload-artifact, as in the last two steps starting here
  • Test jobs: You have to checkout the mpi4py repo to get the tests, but rather than building again, you download the built wheel artifact, next you pip install <wheel-file> it, as in the two consecutive steps starting here.

The Open MPI part requires a similar treatment, but as there is no "standard" package involved (unless you to the apt route), I guess you just have to tar+upload and download+untar the prefix install directory. Sorry, I cannot look at the full thing right now to give you better advice.

@jsquyres
Copy link
Owner Author

@dalcinl Ah, making a wheel and uploading / downloading that artifact would likely be better. Right now, I'm uploading / downloading $site_packages/mpi4py, which is kinda kludgey. Making a wheel, uploading that, downloading that, and the installing the wheel would definitely be cleaner.

The upload/download artifact functionality supports entire trees -- so I changed installing Open MPI to /opt/openmpi and then upload/download that entire tree (no need to tar it up or make a deb or anything). Good enough for here, I think.

Ok, I'll do the wheel thing and then bring this back to the main OMPI community repo.

@jsquyres jsquyres force-pushed the jms-mpi4py-github-action branch 4 times, most recently from 486ceab to dc971ac Compare March 21, 2024 18:21
Split the mpi4py Github Action into 4 parts:

1. build: do everything to build, configure, and install Open MPI and
   mpi4py
2. run: run all the mpi4py tests with its defaults.  As of March 2024,
   this disables the spawn and dynamic tests, which means that the
   entire block of tests should pass.
3. run_spawn: run all the mpi4py tests, including the spawn tests.  As
   of March 2024, we know some of these tests are failing.
4. run_dynamic: run all the mpi4py tests, including the dynamic tests.
   As of March 2024, we know some of these tests are failing.

The spawn and dynamic failures are different, so we split them up and
run them separately.

Signed-off-by: Jeff Squyres <jeff@squyres.com>
@jsquyres jsquyres closed this Mar 21, 2024
@jsquyres jsquyres deleted the jms-mpi4py-github-action branch March 21, 2024 19:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants