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

test on mvapich #700

Merged
merged 12 commits into from
Jan 3, 2023
Merged

test on mvapich #700

merged 12 commits into from
Jan 3, 2023

Conversation

simonbyrne
Copy link
Member

No description provided.

.github/workflows/UnitTests.yml Outdated Show resolved Hide resolved
.github/workflows/UnitTests.yml Outdated Show resolved Hide resolved
@@ -626,3 +626,48 @@ jobs:
run: |
source ${HOME}/intel/compilers_and_libraries/linux/mpi/intel64/bin/mpivars.sh release
julia --color=yes --project -e 'using Pkg; Pkg.test()'

test-spack-mvapich:
timeout-minutes: 20
Copy link
Member

@giordano giordano Jan 2, 2023

Choose a reason for hiding this comment

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

Probably need to increase the timeout, 20 minutes isn't even enough for building the package in spack. This spack environment for Ubuntu 22.04 (you should change the runs-on below, this also requires installing the Ubuntu package rdma-core):

# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
  # add package specs to the `specs` list
  specs: [mvapich2]
  view: true
  concretizer:
    unify: true
  'compilers:':
  - compiler:
      spec: clang@12.0.1
      paths:
        cc: /usr/bin/clang-12
        cxx: /usr/bin/clang++-12
        f77: null
        fc: null
      flags: {}
      operating_system: ubuntu22.04
      target: x86_64
      modules: []
      environment: {}
      extra_rpaths: []
  - compiler:
      spec: clang@13.0.1
      paths:
        cc: /usr/bin/clang-13
        cxx: /usr/bin/clang++-13
        f77: null
        fc: null
      flags: {}
      operating_system: ubuntu22.04
      target: x86_64
      modules: []
      environment: {}
      extra_rpaths: []
  - compiler:
      spec: clang@14.0.0
      paths:
        cc: /usr/bin/clang
        cxx: /usr/bin/clang++
        f77: null
        fc: null
      flags: {}
      operating_system: ubuntu22.04
      target: x86_64
      modules: []
      environment: {}
      extra_rpaths: []
  - compiler:
      spec: gcc@9.5.0
      paths:
        cc: /usr/bin/gcc-9
        cxx: /usr/bin/g++-9
        f77: /usr/bin/gfortran-9
        fc: /usr/bin/gfortran-9
      flags: {}
      operating_system: ubuntu22.04
      target: x86_64
      modules: []
      environment: {}
      extra_rpaths: []
  - compiler:
      spec: gcc@10.4.0
      paths:
        cc: /usr/bin/gcc-10
        cxx: /usr/bin/g++-10
        f77: /usr/bin/gfortran-10
        fc: /usr/bin/gfortran-10
      flags: {}
      operating_system: ubuntu22.04
      target: x86_64
      modules: []
      environment: {}
      extra_rpaths: []
  - compiler:
      spec: gcc@11.3.0
      paths:
        cc: /usr/bin/gcc
        cxx: /usr/bin/g++
        f77: /usr/bin/gfortran
        fc: /usr/bin/gfortran
      flags: {}
      operating_system: ubuntu22.04
      target: x86_64
      modules: []
      environment: {}
      extra_rpaths: []
  - compiler:
      spec: gcc@12.1.0
      paths:
        cc: /usr/bin/gcc-12
        cxx: /usr/bin/g++-12
        f77: /usr/bin/gfortran-12
        fc: /usr/bin/gfortran-12
      flags: {}
      operating_system: ubuntu22.04
      target: x86_64
      modules: []
      environment: {}
      extra_rpaths: []
  'packages:':
    bison:
      externals:
      - spec: bison@3.8.2
        prefix: /usr
    cmake:
      externals:
      - spec: cmake@3.25.1
        prefix: /usr/local
    findutils:
      externals:
      - spec: findutils@4.8.0
        prefix: /usr
    flex:
      externals:
      - spec: flex@2.6.4+lex
        prefix: /usr
    gettext:
      externals:
      - spec: gettext@0.21
        prefix: /usr
    libtool:
      externals:
      - spec: libtool@2.4.6
        prefix: /usr
    m4:
      externals:
      - spec: m4@1.4.18
        prefix: /usr
    perl:
      externals:
      - spec: perl@5.34.0~cpanm+shared+threads
        prefix: /usr
    python:
      externals:
      - spec: python@3.10.6+bz2+crypt+ctypes+dbm+lzma+nis+pyexpat+pythoncmd+readline+sqlite3+ssl~tkinter+uuid+zlib
        prefix: /usr
    rdma-core:
      externals:
      - spec: rdma-core@39.0
        prefix: /usr
    tar:
      externals:
      - spec: tar@1.34
        prefix: /usr
    xz:
      externals:
      - spec: xz@5.2.5
        prefix: /usr

but honestly I'm not sure it's easy to build mvapich on a system without Infiniband.

Copy link
Member

Choose a reason for hiding this comment

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

Uh, you also need the Ubuntu package libibverbs-dev.

Copy link
Member

Choose a reason for hiding this comment

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

With the above spack environment and the Ubuntu packages rdma-core and libibverbs-dev, I was able to build mvapich on GitHub Actions

==> mvapich2: Successfully installed mvapich2-2.3.7-dmysxjspupkgl5giqs4pjkuqdzpwlzpp
  Stage: 0.81s.  Autoreconf: 0.00s.  Configure: 1m 50.69s.  Build: 30m 23.42s.  Install: 22.95s.  Total: 32m 37.95s

It takes about 32-33 minutes just to build it (excluding the other non-external dependencies, but they're pretty quick)

Copy link
Member Author

Choose a reason for hiding this comment

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

might be easier if you just push to this branch?

simonbyrne and others added 2 commits January 2, 2023 21:04
Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>
@giordano giordano force-pushed the sb/spack-mvapich branch 3 times, most recently from d8274ba to 673656e Compare January 3, 2023 17:27
@giordano
Copy link
Member

giordano commented Jan 3, 2023

Small progress: I managed to build and cache MVAPICH. However I didn't manage to make MPIPreferences find it, but with warm cache this should finally be easier to debug.

Edit: it turned out I had typed lib/ as lin/ in LD_LIBRARY_PATH 😣

@giordano
Copy link
Member

giordano commented Jan 3, 2023

Ok, this is finally working as in "MPI.jl tests start", but initialzing MVAPICH crashes immediately.

@giordano
Copy link
Member

giordano commented Jan 3, 2023

Spawn tests are failing as reported in #684 (comment).

@simonbyrne
Copy link
Member Author

Fantastic, thanks @giordano!

@giordano
Copy link
Member

giordano commented Jan 3, 2023

MVAPICH tests (after excluding spawn) are now successful! Most of the other failures on julia nightly are related to JuliaLang/julia#48039

@simonbyrne simonbyrne marked this pull request as ready for review January 3, 2023 23:45
@simonbyrne simonbyrne merged commit 2199564 into master Jan 3, 2023
@simonbyrne simonbyrne deleted the sb/spack-mvapich branch January 3, 2023 23:46
@simonbyrne
Copy link
Member Author

Thanks for your help!

@simonbyrne simonbyrne mentioned this pull request Jan 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants