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 instructions for MPCDF clusters #2305

Merged
merged 24 commits into from
Nov 2, 2022
Merged

Add instructions for MPCDF clusters #2305

merged 24 commits into from
Nov 2, 2022

Conversation

dschwoerer
Copy link
Contributor

The instructions are based on the marconi ones.

Would it make sense to put them rather in a bash file (where?) and reference that instead?

@bshanahan bshanahan self-requested a review May 7, 2021 08:18
@bshanahan bshanahan self-assigned this May 7, 2021
ZedThree
ZedThree previously approved these changes May 7, 2021
Copy link
Member

@ZedThree ZedThree left a comment

Choose a reason for hiding this comment

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

Could put the bash script in something like bin/bout-build-on-draco.sh?

We might be able to incorporate a fair bit of this into the CMake build. We already have an option for downloading and building the netCDF C++ API for instance.

manual/sphinx/user_docs/advanced_install.rst Outdated Show resolved Hide resolved
manual/sphinx/user_docs/advanced_install.rst Outdated Show resolved Hide resolved
@dschwoerer
Copy link
Contributor Author

@johnomotani I updated the marconi GNU instructions - I am happy to revert if you prefer your version ...

@dschwoerer dschwoerer closed this May 7, 2021
@dschwoerer dschwoerer reopened this May 7, 2021
@johnomotani
Copy link
Contributor

I updated the marconi GNU instructions - I am happy to revert if you prefer your version ...

Looks good to me, but it'd be nice to add a bit of documentation of bout-build-deps.sh in advanced_install.rst - e.g. the environment flags that should be set, PREFIX, etc. It'd also be nice to add a suggestion to run make check or make test for the libraries - we had some issues with a few tests failing for netcdf depending on versions...

@bshanahan
Copy link
Contributor

As most of the current users of Draco are using FCI, it's probably best to add openmp to the available libraries.

@ZedThree
Copy link
Member

ZedThree commented May 7, 2021

readthedocs is failing because we need #2308 first

@ZedThree
Copy link
Member

ZedThree commented May 7, 2021

A short docstring in bout-build-dep.sh with a --help flag would be lovely too.

@ZedThree
Copy link
Member

An alternative to this is to use spack. There's some spack files already in the GPU branches, e.g. https://github.com/boutproject/BOUT-dev/blob/next-hypre-outerloop-cuda/scripts-config/lassen-examples/spack_env/bout/spack.yaml

It looks like it might also not be very much effort to create a spack package for BOUT++ itself, which might make it even easier to install all the dependencies.

Using spack would require users to learn another tool, but might mean less maintenance for BOUT++ developers.

* Generate environment modules makes it easier to load the dependencies
in HPC environments. It also allows to manage different dependency sets.
* Improve summary
* Add comments to commands in the end to make editing easier.
bshanahan
bshanahan previously approved these changes Jun 14, 2021
Copy link
Contributor

@bshanahan bshanahan left a comment

Choose a reason for hiding this comment

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

Works well for me.

bin/bout-build-deps.sh Outdated Show resolved Hide resolved
@dschwoerer
Copy link
Contributor Author

dschwoerer commented Jun 18, 2021

I haven't tested the openmp flags well, they seem to configure without issues, but I have not checked that it actually uses threads ...

@dschwoerer dschwoerer changed the title Add instructions for draco Add instructions for MPCDF clusters Jun 26, 2021
@dschwoerer
Copy link
Contributor Author

module load gcc/11 openmpi/4 anaconda/3/2021.05 hdf5-serial/1.12.1 fftw-serial/3.3.9 mkl/2021.3 netcdf-serial/4.7.0 petsc-real-double/3.15
might be easier ... (working on raven, didn't test cobra)

For the future, it might be easier to integrate downloading + compiling of dependencies within cmake ...?

@dschwoerer
Copy link
Contributor Author

For intel based tools:
module load intel/21.3.0 impi/2021.3 vtune/2021.5 advisor/2021.3 itac/2021.3 hdf5-serial/1.12.1 fftw-serial/3.3.9 mkl/2021.3 netcdf-serial/4.7.0 petsc-real-double/3.15

@ZedThree
Copy link
Member

For the future, it might be easier to integrate downloading + compiling of dependencies within cmake ...?

Yes, there's a few options for this: Conan, vcpkg, CPM. Or we can have a "superproject" that includes BOUT++ and downloads and compiles all the dependencies.

This looks ok to me. We could move the script into https://github.com/boutproject/BOUT-configs

Copy link
Contributor

@bendudson bendudson left a comment

Choose a reason for hiding this comment

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

This looks good to me. Would it be possible to use bout-build-deps.sh in one of the github tests, so we can make sure that it is updated when needed?

@ZedThree ZedThree added this to the BOUT-5.0 milestone Jul 27, 2022
@ZedThree
Copy link
Member

Let's move this to the BOUT-config repo and remove the machine specific instructions entirely

@ZedThree ZedThree merged commit 4f47aee into next Nov 2, 2022
@ZedThree ZedThree deleted the docs-draco branch November 2, 2022 13:10
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.

None yet

5 participants