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

Add MPI standalone CI build job #1242

Merged
merged 13 commits into from
Apr 30, 2021
Merged

Conversation

mtreinish
Copy link
Member

Summary

This commit adds a CI job that builds aer in standalone mode with MPI to
ensure that we can build with MPI support. This should hopefully prevent
regressions like #1234 in the future.

Details and comments

This commit fixes compiler warnings that were caused by Commit
1a51d27 ("Fix various compiler
warnings (Qiskit#1201)").

Fixes: Qiskit#1234
@mtreinish mtreinish added the on hold Can not fix yet label Apr 29, 2021
@mtreinish
Copy link
Member Author

This is blocked until #1241 merges

This commit adds a CI job that builds aer in standalone mode with MPI to
ensure that we can build with MPI support. This should hopefully prevent
regressions like Qiskit#1234 in the future.
@mtreinish
Copy link
Member Author

mtreinish commented Apr 29, 2021

Ok, after merging #1241 into the PR branch so we can actually build, the CI job looks like it's working now. It's running mpi on the local ci node and reflecting that in the output: https://github.com/Qiskit/qiskit-aer/runs/2470401773?check_suite_focus=true#step:8:73

@doichanj do you have any suggestions for additional testing we can do in the CI nodes, or is what I have here sufficient for a quick smoke test?

@doichanj
Copy link
Collaborator

I think it is enough to test standalone MPI execution.
But I think we need some test cases for Python execution. There are already existing test cases for multi-chunk parallelization, but I think some more new test cases are needed to test MPI implementation (e.g. snapshots, expectation values)

@mtreinish mtreinish removed the on hold Can not fix yet label Apr 30, 2021
mtreinish added a commit to mtreinish/qiskit-aer that referenced this pull request Apr 30, 2021
In Qiskit#1242 we added a basic smoke test job for MPI builds using standalone
mode. That job builds aer in standalone mode with MPI and then runs a
qobj of a grovers circuit with mpi enabled and validate it works (and
the result metadata has the mpi fields set). That was useful to provide
a quick smoke test to verify that a proposed change doesn't completely
break MPI builds. However, it doesn't fully validate aer's usage with MPI
enabled. This commit adds a new CI job that runs the full python unittest
suite under mpi run using a aer binary built with mpi support. The
tradeoff there though is we have to run the tests serially using the
stdlib python unittest runner (since stestr runs tests in parallel
processes) the process is running under mpirun.

Additionally, this commit bumps the timeout for the unit test jobs to 1
hour as we've been regularly hitting the timeout on the CI test jobs.
The timeout for the new mpi job is double that (120 min) since it is
running tests serially instead of in 2 or 4 processes.
@mtreinish mtreinish merged commit f157608 into Qiskit:main Apr 30, 2021
@mtreinish mtreinish deleted the mpi-build-job branch April 30, 2021 15:35
hitomitak pushed a commit to hitomitak/qiskit-aer that referenced this pull request Jun 24, 2021
* Add MPI standalone CI build job

This commit adds a CI job that builds aer in standalone mode with MPI to
ensure that we can build with MPI support. This should hopefully prevent
regressions like Qiskit#1234 in the future.

* Use mpirun for c++ unit test execution

I'm not sure if the c++ unit tests actually will exercise routines that
are MPI aware, but it doesn't hurt to run it with mpirun (since it's the
only existing test for standalone mode).

* Add step to run qobj with standalone

* Use full path to mpirun

* Explicitly use mpirun.openmpi full path

* Actually install qiskit-terra for qobj test

* Install terra in mpi job too

* Add results validation to qobj standalone test

* Only validate mpi results in mpi job

* Add missing import
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.

4 participants