Skip to content

mpi4py: run the spawn and dynamic process tests #12421

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 1 commit into from
Apr 2, 2024

Conversation

jsquyres
Copy link
Member

They're currently disabled by default upstream in mpi4py because Open MPI is failing these tests. Explicitly enable them here in Open MPI's github action for mpi4py so that we have to fix them.

See mpi4py/mpi4py#479 for some details.

FYI @bosilca @dalcinl @hppritcha

Once this merges, we'll bring this over to v5.0.x.

@dalcinl
Copy link
Contributor

dalcinl commented Mar 21, 2024

Once this merges, we'll bring this over to v5.0.x.

@jsquyres Are you sure? Isn't better to leave the release branch as it now, such that any mpi4py failures would signal an new, unknown regression in the release branch?

@jsquyres jsquyres force-pushed the pr/mpi4py-run-the-spawn-tests branch 3 times, most recently from 58710e4 to 0fbbebd Compare March 21, 2024 11:43
@jsquyres
Copy link
Member Author

jsquyres commented Mar 21, 2024

I thought about this overnight. I changed up this PR a bit, and split the 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.

Keeping the spawn and dynamics tests separate are useful because those are different failures. So let's run them separately.

This gives us a clear green checkmark if all the mpi4py tests -- excluding spawn and dynamic tests -- pass. Then it separately runs the spawn and dynamic tests, which we currently expect to fail.

Looks like I don't quite have the syntax correct yet for this in the github action -- let me go fool with this over in my fork and not spam everyone here with a bunch of force pushes until I get this right.

@jsquyres jsquyres marked this pull request as draft March 21, 2024 11:54
@dalcinl
Copy link
Contributor

dalcinl commented Mar 21, 2024

Looks like I don't quite have the syntax correct yet for this in the github action

Feel free to ping me about any doubts you have about GHA, I've been using the thing for quite a while.

@jsquyres jsquyres force-pushed the pr/mpi4py-run-the-spawn-tests branch 2 times, most recently from aa2129d to 5d05c49 Compare March 21, 2024 19:37
@jsquyres jsquyres marked this pull request as ready for review March 21, 2024 19:53
@jsquyres jsquyres requested review from hppritcha and bosilca March 21, 2024 19:53
@jsquyres
Copy link
Member Author

jsquyres commented Mar 21, 2024

@bosilca @hppritcha I revamped the github action quite a bit since you approved it. Please re-review.

Here's what the output looks like now in the CI on the PR:

Screenshot 2024-03-22 at 6 47 21 AM
Screenshot 2024-03-21 at 3 58 11 PM

And here's what it looks like if you click through to the github action result itself:

Screenshot 2024-03-21 at 3 59 50 PM

@jsquyres jsquyres force-pushed the pr/mpi4py-run-the-spawn-tests branch from 5d05c49 to e96f5f7 Compare March 23, 2024 11:30
@jsquyres jsquyres marked this pull request as draft March 26, 2024 15:29
@jsquyres
Copy link
Member Author

General consensus on the call today:

  1. Do not merge this PR as-is; there is (legit) fear of normalizing CI failures.
  2. Instead, make the running of the spawn/dynamic tests contingent upon the presence of a github label or special token in a the PR body or comment or something.

That way, the tests are still there and able to be run, but a developer has to do something to run them.

@jsquyres jsquyres force-pushed the pr/mpi4py-run-the-spawn-tests branch from e96f5f7 to 635a663 Compare March 29, 2024 10:37
@jsquyres jsquyres added the mpi4py-all Run the optional mpi4py CI tests label Mar 29, 2024
@jsquyres jsquyres force-pushed the pr/mpi4py-run-the-spawn-tests branch from 635a663 to 027009a Compare March 30, 2024 23:32
@jsquyres jsquyres removed the mpi4py-all Run the optional mpi4py CI tests label Mar 30, 2024
@jsquyres jsquyres force-pushed the pr/mpi4py-run-the-spawn-tests branch from 027009a to e255ffc Compare March 30, 2024 23:45
@jsquyres jsquyres added the mpi4py-all Run the optional mpi4py CI tests label Mar 30, 2024
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, but
   only if the "mpi4py" label is set on the PR.  As of March 2024, we
   know some of these tests are failing.
4. run_dynamic: run all the mpi4py tests, including the dynamic tests,
   but only if the "mpi4py" label is set on the PR.  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.

For steps 2, 3, and 4, we utilize a reusable Github workflow so that
we don't have to duplicate the code.

Signed-off-by: Jeff Squyres <jeff@squyres.com>
@jsquyres jsquyres force-pushed the pr/mpi4py-run-the-spawn-tests branch from e255ffc to deb4bda Compare March 30, 2024 23:54
@jsquyres
Copy link
Member Author

Ok, I think I got it now. Here's what a run looks like if the mpi4py-all label is not on the PR:

Screenshot 2024-03-30 at 8 16 06 PM

And here's what a run looks like if the mpi4py-all label is on the PR:

Screenshot 2024-03-30 at 8 15 40 PM

@jsquyres jsquyres marked this pull request as ready for review March 31, 2024 00:17
# This parameter is required, so send a meaningless
# environment variable name that will not affect the tests at
# all (i.e., the tests will be run with default values).
env_name: MAKE_TODAY_AN_OMPI_DAY
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤣

@jsquyres jsquyres merged commit bebfc41 into open-mpi:main Apr 2, 2024
@jsquyres jsquyres deleted the pr/mpi4py-run-the-spawn-tests branch April 2, 2024 19:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
mpi4py-all Run the optional mpi4py CI tests Target: main
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants