-
Notifications
You must be signed in to change notification settings - Fork 160
Building on the NextGen cluster (Department of Mathematics, Imperial College London)
The NextGen clustor has different specifications on the login and compute nodes, so it is best to build Firedrake on the compute nodes by submitting a job via a pbs script.
On NextGen, it is necessary to build and run Firedrake using the clustor or clustor2 filesystems to avoid quota issues. On the clustor filesystem, the path to your own user space is given by /home/clustor/ma/a/abc12
upon replacing abc12 by your Imperial shortcode and a by the first letter of that shortcode. In these instructions we assume that you want to build in a directory called /home/clustor/ma/a/abc12/work
You will need to amend the scripts below to the appropriate name.
Currently, there is a problem with the standard build relating to hdf5 (used for CheckpointFile) on NextGen. The solution is to build your own Python and build Firedrake's PETSc using a different version of hdf5.
The steps are:
On the login node, to start building Python,
cd /home/clustor/ma/a/abc12/work
git clone https://github.com/python/cpython.git
git checkout 3.11
Then, submit the following pbs script (appropriately edited)
#!/bin/bash
#PBS -N build_p
#PBS -m be
#PBS -q standard
cd /home/clustor/ma/a/abc12/work/cpython
export XDG_CACHE_HOME=/home/clustor/ma/a/abc12/work
./configure --enable-loadable-sqlite-extensions --prefix /home/clustor/ma/a/abc12/work
make
make install
If this was successful, on the login node, to start building Firedrake,
cd /home/clustor/ma/a/abc12/work
curl -O https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.2/src/hdf5-1.12.2.tar.bz2
curl -O https://raw.githubusercontent.com/firedrakeproject/firedrake/master/scripts/firedrake-install
Then, submit the following pbs script (appropriately edited). The "medium" queue is required because building petsc4py requires more memory than available on the "standard" queue.
#!/bin/bash
#PBS -N build_fd
#PBS -m be
#PBS -q medium
cd /home/clustor/ma/a/abc12/work
export XDG_CACHE_HOME=/home/clustor/ma/a/abc12/work
export PETSC_CONFIGURE_OPTIONS="--download-hdf5=/home/clustor/ma/a/abc12/work/hdf5-1.12.2.tar.bz2"
/home/clustor/ma/a/abc12/cpython/python firedrake-install --disable-ssh --no-package-manager &> /home/clustor/ma/a/abc12/work/fdbuild.out
Building locally
Tips
- Running Firedrake tests with different subpackage branches
- Modifying and Rebuilding PETSc and petsc4py
- Vectorisation
- Debugging C kernels with
lldb
on MacOS - Parallel MPI Debugging with
tmux-mpi
,pdb
andgdb
- Parallel MPI Debugging with VSCode and
debugpy
- Modifying generated code
- Kernel profiling with LIKWID
- breakpoint() builtin not working
- Debugging pytest with multiple processing
Developers Notes
- Upcoming meeting 2024-08-21
- 2024-08-07
- 2024-07-24
- 2024-07-17
- 2024-07-10
- 2024-06-26
- 2024-06-19
- 2024-06-05
- 2024-05-29
- 2024-05-15
- 2024-05-08
- 2024-05-01
- 2024-04-28
- 2024-04-17
- 2024-04-10
- 2024-04-03
- 2024-03-27
- 2024-03-20
- 2024-03-06
- 2024-02-28
- 2024-02-28
- 2024-02-21
- 2024-02-14
- 2024-02-07
- 2024-01-31
- 2024-01-24
- 2024-01-17
- 2024-01-10
- 2023-12-13
- 2023-12-06
- 2023-11-29
- 2023-11-22
- 2023-11-15
- 2023-11-08
- 2023-11-01
- 2023-10-25
- 2023-10-18
- 2023-10-11
- 2023-10-04
- 2023-09-27
- 2023-09-20
- 2023-09-06
- 2023-08-30
- 2023-08-23
- 2023-07-12
- 2023-07-05
- 2023-06-21
- 2023-06-14
- 2023-06-07
- 2023-05-17
- 2023-05-10
- 2023-03-08
- 2023-02-22
- 2023-02-15
- 2023-02-08
- 2023-01-18
- 2023-01-11
- 2023-12-14
- 2022-12-07
- 2022-11-23
- 2022-11-16
- 2022-11-09
- 2022-11-02
- 2022-10-26
- 2022-10-12
- 2022-10-05
- 2022-09-28
- 2022-09-21
- 2022-09-14
- 2022-09-07
- 2022-08-25
- 2022-08-11
- 2022-08-04
- 2022-07-28
- 2022-07-21
- 2022-07-07
- 2022-06-30
- 2022-06-23
- 2022-06-16
- 2022-05-26
- 2022-05-19
- 2022-05-12
- 2022-05-05
- 2022-04-21
- 2022-04-07
- 2022-03-17
- 2022-03-03
- 2022-02-24
- 2022-02-10
- 2022-02-03
- 2022-01-27
- 2022-01-20
- 2022-01-13
- 2021-12-15
- 2021-12-09
- 2021-11-25
- 2021-11-18
- 2021-11-11
- 2021-11-04
- 2021-10-28
- 2021-10-21
- 2021-10-14
- 2021-10-07
- 2021-09-30
- 2021-09-23
- 2021-09-09
- 2021-09-02
- 2021-08-26
- 2021-08-18
- 2021-08-11
- 2021-08-04
- 2021-07-28
- 2021-07-21
- 2021-07-14
- 2021-07-07
- 2021-06-30
- 2021-06-23
- 2021-06-16
- 2021-06-09
- 2021-06-02
- 2021-05-19
- 2021-05-12
- 2021-05-05
- 2021-04-28
- 2021-04-21
- 2021-04-14
- 2021-04-07
- 2021-03-17
- 2021-03-10
- 2021-02-24
- 2021-02-17
- 2021-02-10
- 2021-02-03
- 2021-01-27
- 2021-01-20
- 2021-01-13
- 2021-01-06