BOUT-dev icon indicating copy to clipboard operation
BOUT-dev copied to clipboard

Add instructions for MPCDF clusters

Open dschwoerer opened this issue 4 years ago • 11 comments

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?

dschwoerer avatar May 06 '21 12:05 dschwoerer

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

dschwoerer avatar May 07 '21 11:05 dschwoerer

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...

johnomotani avatar May 07 '21 12:05 johnomotani

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

bshanahan avatar May 07 '21 12:05 bshanahan

readthedocs is failing because we need #2308 first

ZedThree avatar May 07 '21 14:05 ZedThree

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

ZedThree avatar May 07 '21 14:05 ZedThree

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.

ZedThree avatar May 11 '21 10:05 ZedThree

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 avatar Jun 18 '21 11:06 dschwoerer

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 avatar Oct 21 '21 13:10 dschwoerer

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

dschwoerer avatar Nov 25 '21 09:11 dschwoerer

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

ZedThree avatar Nov 25 '21 17:11 ZedThree

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

ZedThree avatar Aug 17 '22 15:08 ZedThree