diff --git a/.github/workflows/build_test_mpi.yml b/.github/workflows/build_test_mpi.yml new file mode 100644 index 00000000..a27ff079 --- /dev/null +++ b/.github/workflows/build_test_mpi.yml @@ -0,0 +1,74 @@ +name: 'Build and Test QUICK MPI Version' + +on: + push: + paths-ignore: + - '**.md' + pull_request: + paths-ignore: + - '**.md' + +jobs: + build-and-test-mpi-legacy-configure-make: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: 'Install Dependencies for MPI Version' + run: | + sudo apt-get update + sudo apt-get -y install gfortran openmpi-bin openmpi-common libopenmpi-dev + - name: 'Configure MPI Version' + run: ./configure --mpi --enablef --prefix $PWD/install gnu + - name: 'Build and Install MPI Version Using 2 Jobs' + run: make -j2 all install + - name: 'Setup Environment Variables for Running Tests' + run: | + echo "DO_PARALLEL=mpirun -np 2" >> "$GITHUB_ENV" + echo "QUICK_HOME=$PWD/install" >> "$GITHUB_ENV" + - name: 'Run Tests for MPI Version (Make) Using 2 MPI Processes' + run: make fulltest + - name: 'Archive Test Results for MPI Version' + if: always() + uses: actions/upload-artifact@v4 + with: + name: 'mpi-legacy-configure-make-tests' + path: /home/runner/work/QUICK/QUICK/install/test/runs/mpi + retention-days: 3 + - uses: actions/download-artifact@v4 + with: + name: 'mpi-legacy-configure-make-tests' + - name: 'Display Artifacts' + run: ls -R + build-and-test-mpi-cmake: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: 'Install Dependencies for MPI Version (CMake)' + run: | + sudo apt-get update + sudo apt-get -y install gfortran cmake openmpi-bin openmpi-common libopenmpi-dev + - name: 'Configure MPI Version (CMake)' + run: | + mkdir build + cd build + cmake .. -DCOMPILER=GNU -DMPI=TRUE -DENABLEF=TRUE -DCMAKE_INSTALL_PREFIX=$PWD/../install + - name: 'Build and Install MPI Version (CMake) Using 2 Jobs' + run: | + cd build + cmake --build . --parallel 2 + cmake --install . + - name: 'Setup Environment Variables for Running Tests' + run: | + echo "DO_PARALLEL=mpirun -np 2" >> "$GITHUB_ENV" + echo "QUICK_HOME=$PWD/install" >> "$GITHUB_ENV" + - name: 'Run Tests for MPI Version Using 2 MPI Processes' + run: | + cd install + ./runtest --mpi --full + - name: 'Archive Test Results for MPI Version (CMake)' + if: always() + uses: actions/upload-artifact@v4 + with: + name: 'mpi-cmake-tests' + path: /home/runner/work/QUICK/QUICK/install/test/runs/mpi + retention-days: 3 diff --git a/.github/workflows/build_test_serial.yml b/.github/workflows/build_test_serial.yml new file mode 100644 index 00000000..ad724c76 --- /dev/null +++ b/.github/workflows/build_test_serial.yml @@ -0,0 +1,72 @@ +name: 'Build and Test QUICK Serial Version' + +on: + push: + paths-ignore: + - '**.md' + pull_request: + paths-ignore: + - '**.md' + +jobs: + build-and-test-serial-legacy-configure-make: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: 'Install Dependencies for Serial Version' + run: | + sudo apt-get update + sudo apt-get -y install gfortran + - name: 'Configure Serial Version' + run: ./configure --serial --enablef --prefix $PWD/install gnu + - name: 'Build and Install Serial Version Using 2 Jobs' + run: make -j2 all install + - name: 'Setup Environment Variables for Running Tests' + run: | + echo "QUICK_HOME=$PWD/install" >> "$GITHUB_ENV" + - name: 'Run Tests for Serial Version (Make)' + run: make fulltest + - name: 'Archive Test Results for Serial Version' + if: always() + uses: actions/upload-artifact@v4 + with: + name: 'serial-legacy-configure-make-tests' + path: /home/runner/work/QUICK/QUICK/install/test/runs/serial + retention-days: 3 + - uses: actions/download-artifact@v4 + with: + name: 'serial-legacy-configure-make-tests' + - name: 'Display Artifacts' + run: ls -R + build-and-test-serial-cmake: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: 'Install Dependencies for Serial Version (CMake)' + run: | + sudo apt-get update + sudo apt-get -y install gfortran cmake + - name: 'Configure Serial Version (CMake)' + run: | + mkdir build + cd build + cmake .. -DCOMPILER=GNU -DENABLEF=TRUE -DCMAKE_INSTALL_PREFIX=$PWD/../install + - name: 'Build and Install Serial Version (CMake) Using 2 Jobs' + run: | + cd build + cmake --build . --parallel 2 + cmake --install . + - name: 'Setup Environment Variables for Running Tests' + run: | + echo "QUICK_HOME=$PWD/install" >> "$GITHUB_ENV" + - name: 'Run Tests for Serial Version' + run: | + cd install + ./runtest --serial --full + - name: 'Archive Test Results for Serial Version (CMake)' + if: always() + uses: actions/upload-artifact@v4 + with: + name: 'serial-cmake-tests' + path: /home/runner/work/QUICK/QUICK/install/test/runs/serial + retention-days: 3 diff --git a/.github/workflows/mpi.yml b/.github/workflows/mpi.yml deleted file mode 100644 index 191a9227..00000000 --- a/.github/workflows/mpi.yml +++ /dev/null @@ -1,73 +0,0 @@ -name: MPI Build - -on: - push: - paths-ignore: - - '**.md' - pull_request: - paths-ignore: - - '**.md' - -jobs: - make-build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Install deps - run: sudo apt-get -y install gfortran openmpi-bin openmpi-common libopenmpi-dev - - name: Configure mpi - run: ./configure --mpi --enablef --prefix $PWD/install gnu - - name: Build mpi - run: make - - name: Install mpi - run: make install - - name: Set environment variables - run: | - echo "DO_PARALLEL=mpirun -np 2" >> $GITHUB_ENV - echo "QUICK_HOME=$PWD/install" >> $GITHUB_ENV - - name: Test mpi - run: make fulltest - - name: Archive test results - if: always() - uses: actions/upload-artifact@v2 - with: - name: mpi-tests - path: /home/runner/work/QUICK/QUICK/install/test/runs/mpi - retention-days: 3 - - uses: actions/download-artifact@v2 - with: - name: mpi-tests - - name: Display structure of artifacts - run: ls -R - cmake-build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Install deps - run: | - sudo apt-get update - sudo apt-get -y install gfortran cmake openmpi-bin openmpi-common libopenmpi-dev - - name: Configure MPI - run: | - mkdir build - cd build - cmake .. -DCOMPILER=GNU -DMPI=TRUE -DENABLEF=TRUE -DCMAKE_INSTALL_PREFIX=$(pwd)/../install - - name: Build MPI - run: | - cd build - make -j2 install - - name: Set environment variables - run: | - echo "DO_PARALLEL=mpirun -np 2" >> $GITHUB_ENV - echo "QUICK_HOME=$PWD/install" >> $GITHUB_ENV - - name: Test mpi - run: | - cd install - ./runtest --mpi --full - - name: Archive test results - if: always() - uses: actions/upload-artifact@v2 - with: - name: mpi-tests - path: /home/runner/work/QUICK/QUICK/install/test/runs/mpi - retention-days: 3 diff --git a/.github/workflows/serial.yml b/.github/workflows/serial.yml deleted file mode 100644 index 1f326578..00000000 --- a/.github/workflows/serial.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: Serial Build - -on: - push: - paths-ignore: - - '**.md' - pull_request: - paths-ignore: - - '**.md' - -jobs: - make-build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Install deps - run: sudo apt-get -y install gfortran - - name: Configure serial - run: ./configure --serial --enablef --prefix $PWD/install gnu - - name: Build serial - run: make - - name: Install serial - run: make install - - name: Set environment variables - run: echo "QUICK_HOME=$PWD/install" >> $GITHUB_ENV - - name: Test serial - run: make fulltest - - name: Archive test results - if: always() - uses: actions/upload-artifact@v2 - with: - name: serial-tests - path: /home/runner/work/QUICK/QUICK/install/test/runs/serial - retention-days: 3 - - uses: actions/download-artifact@v2 - with: - name: serial-tests - - name: Display structure of artifacts - run: ls -R - cmake-build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Install deps - run: | - sudo apt-get update - sudo apt-get -y install gfortran cmake - - name: Configure serial - run: | - mkdir build - cd build - cmake .. -DCOMPILER=GNU -DENABLEF=TRUE -DCMAKE_INSTALL_PREFIX=$(pwd)/../install - - name: Build serial - run: | - cd build - make -j2 install - - name: Set environment variables - run: echo "QUICK_HOME=$PWD/install" >> $GITHUB_ENV - - name: Test serial - run: | - cd install - ./runtest --serial --full - - name: Archive test results - if: always() - uses: actions/upload-artifact@v2 - with: - name: serial-tests - path: /home/runner/work/QUICK/QUICK/install/test/runs/serial - retention-days: 3 diff --git a/README.md b/README.md index 77102a49..6fbf56b2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@
-
-
-
+
+
+
diff --git a/tools/runtest b/tools/runtest
index f0cb1f8e..ff660282 100755
--- a/tools/runtest
+++ b/tools/runtest
@@ -469,7 +469,7 @@ run_test(){
# Run the test case
if [ $buildtype = 'mpi' ] || [ $buildtype = 'cudampi' ] || [ $buildtype = 'hipmpi' ] && [ $ismpirun = 'yes' ]; then
- $DO_PARALLEL "$qbindir/$qexe" "$t.in" > /dev/null 2>&1
+ eval "$DO_PARALLEL $qbindir/$qexe $t.in" > /dev/null 2>&1
else
"$qbindir/$qexe" "$t.in" > /dev/null 2>&1
fi
@@ -495,7 +495,7 @@ run_api_test(){
#Run test
if [ $buildtype = 'mpi' ] || [ $buildtype = 'cudampi' ] || [ $buildtype = 'hipmpi' ] && [ $ismpirun = 'yes' ]; then
- $DO_PARALLEL "$apipath/$apiexe" > /dev/null 2>&1
+ eval "$DO_PARALLEL $apipath/$apiexe" > /dev/null 2>&1
else
"$apipath/$apiexe" > /dev/null 2>&1
fi
@@ -855,7 +855,7 @@ fi
if [ "$mpi" = 'yes' -o "$cudampi" = 'yes' -o "$hipmpi" = 'yes' ]; then
mpimsg=""
if [ -z "$DO_PARALLEL" ]; then
- echo "Error: MPI/CUDAMPI tests are requested but DO_PARALLEL variable is not set."
+ echo "Error: MPI/MPI+X tests are requested but DO_PARALLEL variable is not set."
exit 1
else
ismpirun='yes'