Compiling code uses a lot of input/output, and so is much better performed using a disk that is local to the machine on which you are running. On the LIGO Data Grid, the ~
home directory is mounted from a shared RAID array, and so isn't local, but all users have a directory on all machines that is.
In particular, if you are compiling the LALSuite stack from the git repository, it is advised to clone the repository into one of these local directories, and compile everything in there before installing back into your ~
home directory.
On the atlas
system, the local directory is
/local/user/${USER}
On the nemo
system at UWM, the local directory is
/people/${USER}
On the LIGO systems at CIT, LHO and LLO, and the sugar
system at Syracuse the local directory is
/usr1/${USER}
The following bash
code block will detect the system and set the LOCALDIR
variable appropriately, if and only if it is not already set:
HOSTNAME2=$(hostname -f 2>/dev/null || hostname) if [[ -z "${LOCALDIR}" ]]; then if [[ "${HOSTNAME2}" == *phys.uwm* ]]; then LOCALDIR=/people/${USER} elif [[ "${HOSTNAME2}" == *astro.cf* ||\ "${HOSTNAME2}" == *atlas.aei* ]]; then LOCALDIR=/local/user/${USER} elif [[ "${HOSTNAME2}" == *phy.syr* ||\ "${HOSTNAME2}" == *ligo*caltech* ]]; then LOCALDIR=/usr1/${USER} elif [[ "${HOSTNAME2}" == *arcca* ]]; then LOCALDIR=/scratch/${USER} else LOCALDIR=${HOME} fi fi unset HOSTNAME2 export LOCALDIR