2020-10-09 21:55:37 +08:00
|
|
|
{
|
|
|
|
stdenv
|
|
|
|
}:
|
|
|
|
|
|
|
|
{
|
|
|
|
# MareNostrum 4 configuration
|
|
|
|
mn4 = {
|
|
|
|
config = {
|
|
|
|
name = "mn4";
|
2020-10-13 20:30:03 +08:00
|
|
|
sshHost = "mn1";
|
2020-10-09 21:55:37 +08:00
|
|
|
nixPrefix = "/gpfs/projects/bsc15/nix";
|
|
|
|
march = "skylake-avx512";
|
|
|
|
mtune = "skylake-avx512";
|
2020-10-14 22:24:56 +08:00
|
|
|
hw = {
|
2021-04-02 01:00:46 +08:00
|
|
|
# The rev attribute attemps to capture the hardware
|
|
|
|
# configuration of the machine, and will rebuild all experiments
|
|
|
|
# if it changed. It only holds the timestamp at the current
|
|
|
|
# time, representing the HW configuration at that moment.
|
2021-02-26 03:45:20 +08:00
|
|
|
rev = 1614253003;
|
|
|
|
|
|
|
|
# Node and socket details
|
2020-10-14 22:24:56 +08:00
|
|
|
cpusPerNode = 48;
|
|
|
|
cpusPerSocket = 24;
|
|
|
|
socketsPerNode = 2;
|
|
|
|
cachelineBytes = 64;
|
2021-04-02 01:00:46 +08:00
|
|
|
|
|
|
|
# Cache sizes
|
|
|
|
cacheSizeKB = {
|
|
|
|
L1d = 32;
|
|
|
|
L1i = 32;
|
|
|
|
L2 = 1024;
|
|
|
|
L3 = 33792;
|
|
|
|
};
|
2020-10-14 22:24:56 +08:00
|
|
|
};
|
2020-10-09 21:55:37 +08:00
|
|
|
};
|
2020-11-18 01:33:57 +08:00
|
|
|
|
|
|
|
# Experimental naming convention for the FS
|
2020-11-20 22:29:03 +08:00
|
|
|
fs = rec {
|
|
|
|
topology = {
|
|
|
|
gpfs = {
|
|
|
|
projects = "/gpfs/projects/bsc15/garlic";
|
|
|
|
scratch = "/gpfs/scratch/bsc15/bsc15557/garlic";
|
|
|
|
};
|
|
|
|
|
|
|
|
ssd = {
|
|
|
|
# Beware to expand the temp dir at execution time
|
|
|
|
temp = "$TMPDIR";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
shared = with topology; {
|
|
|
|
fast = gpfs.scratch;
|
|
|
|
reliable = gpfs.projects;
|
|
|
|
};
|
|
|
|
|
|
|
|
local = {
|
|
|
|
temp = topology.ssd.temp;
|
|
|
|
};
|
|
|
|
};
|
2020-11-18 01:33:57 +08:00
|
|
|
|
2020-10-09 21:55:37 +08:00
|
|
|
# TODO: Add the specific details for SLURM and the interconection here
|
|
|
|
};
|
|
|
|
}
|