https://github.com/autopas/autopas-coolmuc-jobs

SLURM job scripts to test AutoPas on the LRZ Linux Cluster

https://github.com/autopas/autopas-coolmuc-jobs

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.4%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

SLURM job scripts to test AutoPas on the LRZ Linux Cluster

Basic Info
  • Host: GitHub
  • Owner: AutoPas
  • License: bsd-2-clause
  • Language: Shell
  • Default Branch: main
  • Size: 26.4 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 2 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License

README.md

AutoPas-CoolMUC-Jobs

SLURM job scripts to test AutoPas on the LRZ Linux Cluster. This Readme is adapted from bachelor thesis Improving OpenMP Loop Scheduling in AutoPas, Appendix B.

[!WARNING] Please edit your valid email into the scripts before submitting them.

Setup

```

Log into the linux cluster.

ssh -Y lxlogin1.lrz.de -l

Clone AutoPas and the Slurm job scripts:

cd $HOME && mkdir -p ba && cd ba \ && git clone https://github.com/AutoPas/AutoPas-CoolMUC-Jobs.git \ && git clone https://github.com/AutoPas/AutoPas.git \ && cd AutoPas && git checkout feature/improving-openmp-loop-scheduling \ && mkdir build && cd build

Build MD-Flexible:

CC=which clang CXX=which clang++ cmake -DMDFLEXIBLEUSEMPI=OFF \ -DAUTOPASLOG_ITERATIONS=ON .. && make -j8 md-flexible && cd ..

Build master-branch-based MD-Flexible for explodingLiquid:

git checkout \ feature/improving-openmp-loop-scheduling-dynamic-vl-unloaded \ && mkdir build-dvl-off && cd build-dvl-off

CC=which clang CXX=which clang++ cmake -DMDFLEXIBLEUSEMPI=OFF \ -DAUTOPASLOG_ITERATIONS=ON .. && make -j8 md-flexible && cd .. ```

Option 1: individual tests with salloc.

```

Allocate a CoolMUC-2 job:

cd build/examples/md-flexible \ && salloc --partition=cm2_inter --time=01:00:00

Prioritize Auto4OMP's libomp.so:

export LDLIBRARYPATH=\ $HOME/ba/AutoPas/build/deps/auto4omp-build/runtime/src\ :$LDLIBRARY_PATH

Make sure Auto4OMP's libomp.so is linked:

ldd md-flexible

Configure OpenMP to use 28 parallel threads:

export OMPNUMTHREADS=28

Get the GPU frequency and pass it to Auto4OMP:

export KMPCPUSPEED=$(lscpu | grep "CPU max MHz" | \ tr -d ' ' | cut -d ":" -f2 | cut -d "." -f1)

Optional: log Auto4OMP’s selection decisions.

Beware, this worsens performance!

export KMPTIMELOOPS=./auto4omp.log

Execute.

The possible inputs are at AutoPas/examples/md-flexible/input.

Pass the input file name without a path, as all inputs

are copied directly under AutoPas/build/examples/md-flexible.

This example tests the homogeneous lc_c08 small input

with Auto4OMP's ExhaustiveSel.

srun ./md-flexible --openmp-kind exhaustiveSel \ --yaml-filename homogeneousLCC08Small.yaml

exit ```

Option 2: submit a job script for a full test.

This takes a few hours per job, depending on the input. Beware, the jobs assume AutoPas is at ~/ba/AutoPas. For custom directories, the scripts have to be adjusted. This example tests the small homogeneous lc_c08 input.

```

Move to the job's subdirectory so the logs are written there:

cd $HOME/ba/AutoPas-CoolMUC-Jobs/auto4omp/homogeneousLCC08Small \ && sbatch homogeneousLCC08Small.sh && cd $HOME

To track a submitted job:

squeue -M cm2_tiny

To cancel a submitted job (replace with the job's ID from sbatch or squeue):

scancel -M cm2_tiny

To summarize job outputs (assuming a single output exists per input):

INPUTDIR=$HOME/ba/AutoPas-CoolMUC-Jobs/auto4omp/homogeneousLCC08Small \ && grep $INPUTDIR/$(ls $INPUT_DIR | grep ".out" -m 1) \ -e == -e LCC -e VCL -e VLP -e Simulate

To summarize Auto4OMP's log (e.g., exhaustiveSel):

(prints the number of times each scheduling technique was used.)

KMPLOG=$INPUTDIR/auto-3.log \ && echo "static:" && grep -o " STATIC " $KMPLOG | wc -l \ && echo "dynamic:" && grep -o " SS " $KMPLOG | wc -l \ && echo "trapezoidal:" && grep -o " TSS " $KMPLOG | wc -l \ && echo "auto:" && grep -o "LLVM" $KMPLOG | wc -l \ && echo "guided:" && grep -o " GSS " $KMPLOG | wc -l \ && echo "steal:" && grep -o " Steal " $KMPLOG | wc -l \ && echo "fac2a:" && grep -o " mFac2 " $KMPLOG | wc -l \ && echo "awfb:" && grep -o " AWF-B " $KMPLOG | wc -l \ && echo "awfc:" && grep -o " AWF-C " $KMPLOG | wc -l \ && echo "awfd:" && grep -o " AWF-D " $KMPLOG | wc -l \ && echo "awfe:" && grep -o " AWF-E " $KMPLOG | wc -l \ && echo "afa:" && grep -o " mAF " $KMP_LOG | wc -l ```

Owner

  • Name: AutoPas
  • Login: AutoPas
  • Kind: organization

GitHub Events

Total
Last Year