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

gromacs build/runtime issues on LC systems #477

Open
rfhaque opened this issue Dec 8, 2024 · 2 comments
Open

gromacs build/runtime issues on LC systems #477

rfhaque opened this issue Dec 8, 2024 · 2 comments
Assignees

Comments

@rfhaque
Copy link
Collaborator

rfhaque commented Dec 8, 2024

  1. The external blas/lapack libraries available on lassen (cusolver, cublas, essl etc) do not append an underscore in the symbol names. This results in a linker error in gromacs. It would be good to have a configure option in gromacs to account for this behavior
  >> ../../lib/libgromacs_mpi.so.9.0.0: undefined reference to `sscal_'
  >> ../../lib/libgromacs_mpi.so.9.0.0: undefined reference to `dlanst_'
  >> ../../lib/libgromacs_mpi.so.9.0.0: undefined reference to `sswap_'

Moreover, openblas does not build on lassen (clang assembler error)

Error: invalid switch -mpower10
Error: unrecognized option -mpower10
clang: error: assembler command failed with exit code 1 (use -v to see invocation)

As a result, we are forced to use gromacs' internal blas/lapack implementation on lassen (ppc64le)
This is enforced in the spack package.py for gromacs

  1. Using rocblas/rocsolver for blas/lapack on tioga results in a segfault for the rocm experiment (intel mkl library works)

  2. Enabling GPU-aware MPI on tioga (rocm mode) requires setting the CXX_EXE_LINKER_FLAGS in gromacs in package.py. However, this breaks the CUDA build on lassen. It would be desirable to have a config option in gromacs to pass in extra compiler/linker flags

  3. Bonded interactions do not work on the GPU (its possible the input file used for testing does not have any GPU interactions). Is there a different input file/problem available to test bonded interactions?

  4. The mapping of cores, gpus to ranks is not well-understood. Additional performance optimizations need to be investigate

  5. On lassen, v2024 does not build for the CUDA variant (v2023.3 works fine)

@rfhaque rfhaque self-assigned this Dec 8, 2024
@rfhaque rfhaque mentioned this issue Dec 8, 2024
@pearce8
Copy link
Collaborator

pearce8 commented Dec 9, 2024

@rfhaque please split this issue into 2 separate issues:

@rfhaque rfhaque changed the title gromacs issues gromacs build/runtime issues on LC systems Dec 10, 2024
@pszi1ard
Copy link
Collaborator

@rfhaque please split this issue into 2 separate issues:

* [ ]  Spack- and benchpark-specific for [@pearce8](https://github.com/pearce8)[ ]  Gromacs-specific for [@pszi1ard](https://github.com/pszi1ard)

I agree, I can take the GROMACS-related issue, feel free to assign to me.

Concretely related to some of the above:

  • points 1/2: BLAS/LAPACK are not performance critical (only used in some post-simulation analysis tools, not for the MD engine), I'd not focus on those
  • point 3: not sure how to address this, on our 235a machine I indeed pass -DMPI_CXX_LINK_FLAGS="${PE_MPICH_GTL_DIR_amd_gfx90a} -lmpi_gtl_hsa", but the LUMI EB scripts do not seem to need it: https://github.com/Lumi-supercomputer/LUMI-EasyBuild-contrib/blob/main/easybuild/easyconfigs/g/GROMACS/GROMACS-2024.3-cpeAMD-24.03-rocm.eb
  • point 4. indeed, for the "water" case GROMACS won't accept "-bonded gpu" only "-bonded auto"; I will contribute new cases that include bonded workload and are also more modern than those in ramble.
  • point 5. I can clarify / help implement that, we might want a separate issue for that?
  • point 6: please share details, is it a GROMACS build system issue?

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

No branches or pull requests

3 participants