Origins2
Hardware
-
Dell PowerEdge R750
-
Processor:
Intel® Xeon® Gold 5317 3G, 12C/24T, 11.2GT/s, 18M Cache, Turbo, HT (150W) DDR4-2933
x 2 - Memory:
8GB RDIMM, 3200MT/s, Single Rank
x 16 -
Disk:
1.92TB SSD vSAS Read Intensive 12Gbps 512e 2.5in Hot-Plug ,AG Drive SED, 1DWPD
x 4 +2.4TB 10K RPM SAS ISE 12Gbps 512e 2.5in Hot-Plug Hard Drive
x 4-
partition
disk space configuration home 1.7T RAID1 scratch 3.5T RAID0 storage1 2.2T RAID1 storage2 2.2T RAID1
-
-
Graphic Card:
NVIDIA Ampere A30, PCIe, 165W, 24GB Passive, Double Wide, Full Height GPU
x 1
Operating System
- Ubuntu 22.04
User Resources
Directories and Quota
directory | path | soft limit | hard limit |
---|---|---|---|
home | /home/<account> |
8 GB | 10 GB |
scratch | /scratch/users/<account> |
250 GB | 300 GB |
storage | /storage1/users/<account> or /storage2/users/<account> |
150 GB | 200 GB |
- To check your own quota:
quota -s
Connection
- Domain name:
origins2.rss.chalmers.se
Softwares
Modules
Origins2 support using environment module to dynamically load required modules. The basic usage can be found in many documents from other HPC center, e.g. C3SE
To check the available modules, use module avail
or module key <keyword>
search the software you want to use
Containers
Some softwares are installed in containers, e.g. CASA. They can be found in /apps/containers
. There are several ways you can use containers
apptainer run <path/to/container>
: execute the runscript defined in the containerapptainer shell <path/to/container>
: launch a shell with the environment of the containerapptainer exec <path/to/container> <whatever/command/you/would/like/to/execute/with/arguments>
: execute the command with the container
For more information, please check Apptainer document
Others
Running Enzo on origins2
Prerequisite
To build Enzo, you may need load several modules on origins2. Here are some examples assuming using intel compilers
~ $ module purge && module load intel/2022a HDF5/1.12.2-iimpi-2022a
### if you are using grackle
~ $ module purge && module load intel/2022a HDF5/1.12.2-iimpi-2022a Grackle/3.2dev-intel-2022a
### if you are using naunet and grackle
~ $ module purge && module load SUNDIALS/5.7.0-intel-2022a HDF5/1.12.2-iimpi-2022a Grackle/3.2dev-intel-2022a
Makefile configuration
The following is an example Makefile configuration file for Enzo:
Make.mach.origins2
#=======================================================================
#
# FILE: Make.mach.origins2
#
# DESCRIPTION: Makefile settings on origins2
#
# AUTHOR: Chia-Jung Hsu
#
# DATE: 2023-05-24
#
# Revised from Make.mach.linux-gnu
#
#=======================================================================
MACH_VALID = 1
MACH_FILE = Make.mach.origins2
#-----------------------------------------------------------------------
# Install paths (local variables)
#-----------------------------------------------------------------------
LOCAL_MPI_INSTALL =
LOCAL_HDF5_INSTALL =
LOCAL_GRACKLE_INSTALL =
LOCAL_NAUNET_INSTALL = <path/to/any/naunet/library>
LOCAL_SUNDIALS_INSTALL =
LOCAL_SUITESPARSE_INSTALL =
LOCAL_HYPRE_INSTALL =
#-----------------------------------------------------------------------
# Compiler settings
#-----------------------------------------------------------------------
MACH_CPP = cpp # C preprocessor command
# With MPI
MACH_CC_MPI = mpiicc # C compiler when using MPI
MACH_CXX_MPI = mpiicpc # C++ compiler when using MPI
MACH_FC_MPI = mpiifort # Fortran 77 compiler when using MPI
MACH_F90_MPI = mpiifort # Fortran 90 compiler when using MPI
MACH_LD_MPI = mpiicpc # Linker when using MPI
# Without MPI
MACH_CC_NOMPI = icc # C compiler when not using MPI
MACH_CXX_NOMPI = icpc # C++ compiler when not using MPI
MACH_FC_NOMPI = ifort # Fortran 77 compiler when not using MPI
MACH_F90_NOMPI = ifort # Fortran 90 compiler when not using MPI
MACH_LD_NOMPI = icpc # Linker when not using MPI
#-----------------------------------------------------------------------
# Machine-dependent defines
#-----------------------------------------------------------------------
MACH_DEFINES = -DLINUX -DH5_USE_16_API
#-----------------------------------------------------------------------
# Compiler flag settings
#-----------------------------------------------------------------------
MACH_CPPFLAGS = -P -traditional
MACH_CFLAGS =
MACH_CXXFLAGS =
MACH_FFLAGS = -132
MACH_F90FLAGS =
MACH_LDFLAGS = -mkl
#-----------------------------------------------------------------------
# Optimization flags
#-----------------------------------------------------------------------
MACH_OPT_WARN = -Wall -g
MACH_OPT_DEBUG = -g
MACH_OPT_HIGH = -O2
MACH_OPT_AGGRESSIVE = -O3 -g
#-----------------------------------------------------------------------
# Includes
#-----------------------------------------------------------------------
LOCAL_INCLUDES_MPI =
LOCAL_INCLUDES_HDF5 =
LOCAL_INCLUDES_HYPRE =
LOCAL_INCLUDES_PAPI = # PAPI includes
LOCAL_INCLUDES_GRACKLE =
LOCAL_INCLUDES_NAUNET = -I$(LOCAL_NAUNET_INSTALL)/include
LOCAL_INCLUDES_SUNDIALS =
LOCAL_INCLUDES_SUITESPARSE =
MACH_INCLUDES = $(LOCAL_INCLUDES_HDF5)
MACH_INCLUDES_MPI = $(LOCAL_INCLUDES_MPI)
MACH_INCLUDES_HYPRE = $(LOCAL_INCLUDES_HYPRE)
MACH_INCLUDES_PAPI = $(LOCAL_INCLUDES_PAPI)
MACH_INCLUDES_GRACKLE = $(LOCAL_INCLUDES_GRACKLE)
MACH_INCLUDES_NAUNET = $(LOCAL_INCLUDES_NAUNET)
MACH_INCLUDES_SUNDIALS = $(LOCAL_INCLUDES_SUNDIALS)
MACH_INCLUDES_SUITESPARSE = $(LOCAL_INCLUDES_SUITESPARSE)
#-----------------------------------------------------------------------
# Libraries
#-----------------------------------------------------------------------
LOCAL_LIBS_MACH = -lifcore -lifport # Machine-dependent libraries
LOCAL_LIBS_MPI =
LOCAL_LIBS_HDF5 = -lhdf5 -lz
LOCAL_LIBS_HYPRE =
LOCAL_LIBS_PAPI = # PAPI libraries
LOCAL_LIBS_GRACKLE = -lgrackle
LOCAL_LIBS_NAUNET = -L$(LOCAL_NAUNET_INSTALL)/lib -lnaunet
MACH_LIBS = $(LOCAL_LIBS_HDF5) $(LOCAL_LIBS_MACH)
MACH_LIBS_MPI = $(LOCAL_LIBS_MPI)
MACH_LIBS_HYPRE = $(LOCAL_LIBS_HYPRE)
MACH_LIBS_PAPI = $(LOCAL_LIBS_PAPI)
MACH_LIBS_GRACKLE = $(LOCAL_LIBS_GRACKLE)
MACH_LIBS_NAUNET = $(LOCAL_LIBS_NAUNET)
MACH_LIBS_SUNDIALS = $(LOCAL_LIBS_SUNDIALS)
MACH_LIBS_SUITESPARSE = $(LOCAL_LIBS_SUITESPARSE)
If you are building Enzo with naunet, you may need to override some parameters
Make.config.override
PARAMETER_MAX_BARYONS = 145
CONFIG_GRACKLE = yes
CONFIG_NAUNET = yes
CONFIG_OPT = high
CONFIG_FFTW = no
A complete example of building Enzo with naunet lib and grackle on origins2
~ $ module purge && module load SUNDIALS/5.7.0-intel-2022a \
HDF5/1.12.2-iimpi-2022a \
CMake/3.23.1-GCCcore-11.3.0 \
Grackle/3.2dev-intel-2022a
~ $ git clone https://github.com/appolloford/naunet_klu_cloud_custom.git # if you are using the chemical network from GMC Collision IX.
~ $ cd naunet_klu_cloud_custom
(naunet_cloud_custom) $ cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DMAKE_PYTHON=ON -DCMAKE_INSTALL_PREFIX=.
(naunet_cloud_custom) $ cmake --build build -j4
(naunet_cloud_custom) $ cd build && ctest
(build) $ make install
(build) $ cd
~ $ git clone https://github.com/appolloford/enzo-dev.git
~ $ cd enzo-dev
(enzo-dev) $ ./configure
(enzo-dev) $ cd src/enzo && git checkout klu_cloud
### Copy the make.mach.origins2 and Make.config.override here
### Replace the value of LOCAL_NAUNET_INSTALL by `$HOME/naunet_klu_cloud_custom`
(enzo) $ make machine-origins2
(enzo) $ make -j8
### You should get an executale: enzo.exe here