Skip to content

Conversation

@tlestang
Copy link

This adds a basic workflow that

  • Builds and caches OpenMPI.
  • Builds x3div with GCC.
  • Runs the default benchmark with a single process.

The workflow is described in .github/workflows/build.yml. See Understanding GitHub actions for an intro to writing workflows. Nothing special about this one, but this lays the groundwork for future infrastructure like unit tests. The workflow is triggered each time commits are pushed to a remote branch, running on Ubuntu 20.04.

AFAIK the only dependency for running the default benchamrk is OpenMPI. Installing it from the Ubuntu repos (apt install libopenmpi-dev or something similar) would simplify the workflow, but I figured we would prefer having control on the OpenMPI version we test against, as well as its compilation. However, we don't want to build OpenMPI each time, so the installed libraries and headers are cached. This is standard GitHub actions practice, see Caching dependencies to speed up workflows.

Limitations, potential improvements or further work

  • Maybe it would desirable to have more control on the OpenMPI build: version(s), compiler, compiler options. We would have to make sure the cache key depends on these, so that whenever one variable changes, so does the cache key and the build is triggered. Building MPI is probably here to stay, so maybe worth having a separate action to build it?
  • For now x3div is built with gcc only.

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.

2 participants