2020-10-09 15:55:37 +02:00
|
|
|
{
|
|
|
|
stdenv
|
|
|
|
}:
|
|
|
|
|
|
|
|
{
|
|
|
|
# MareNostrum 4 configuration
|
|
|
|
mn4 = {
|
|
|
|
config = {
|
2021-01-14 12:25:32 +01:00
|
|
|
clusterName = "mn4";
|
2020-10-13 14:30:03 +02:00
|
|
|
sshHost = "mn1";
|
2020-10-09 15:55:37 +02:00
|
|
|
nixPrefix = "/gpfs/projects/bsc15/nix";
|
|
|
|
march = "skylake-avx512";
|
|
|
|
mtune = "skylake-avx512";
|
2020-10-14 16:24:56 +02:00
|
|
|
hw = {
|
2021-04-01 19:00:46 +02: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-25 20:45:20 +01:00
|
|
|
rev = 1614253003;
|
|
|
|
|
|
|
|
# Node and socket details
|
2020-10-14 16:24:56 +02:00
|
|
|
cpusPerNode = 48;
|
|
|
|
cpusPerSocket = 24;
|
|
|
|
socketsPerNode = 2;
|
|
|
|
cachelineBytes = 64;
|
2021-04-01 19:00:46 +02:00
|
|
|
|
|
|
|
# Cache sizes
|
|
|
|
cacheSizeKB = {
|
|
|
|
L1d = 32;
|
|
|
|
L1i = 32;
|
|
|
|
L2 = 1024;
|
|
|
|
L3 = 33792;
|
|
|
|
};
|
2020-10-14 16:24:56 +02:00
|
|
|
};
|
2020-10-09 15:55:37 +02:00
|
|
|
};
|
2020-11-17 18:33:57 +01:00
|
|
|
|
|
|
|
# Experimental naming convention for the FS
|
2020-11-20 15:29:03 +01: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-17 18:33:57 +01:00
|
|
|
|
2020-10-09 15:55:37 +02:00
|
|
|
# TODO: Add the specific details for SLURM and the interconection here
|
|
|
|
};
|
|
|
|
}
|