FLUKA

From HPC users
Revision as of 11:24, 7 November 2016 by Harfst (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Introduction

Details about the purpose of FLUKA can be found on the official web page [1] which states:

FLUKA is a fully integrated particle physics MonteCarlo simulation package. It has many applications in high energy experimental physics and engineering, shielding, detector and telescope design, cosmic ray studies, dosimetry, medical physics and radio-biology.

Manuals about the usage of FLUKA can be found there as well, there is also an active mailing list to ask questions (see [2]).

Please note that the FLUKA user license allows the free usage of FLUKA for non-commericial scientific research. By using FLUKA on the cluster you accept the user license.

Currently, FLUKA version 2011.2c-5 (Oct 2016) is installed on the cluster (older versions may be replaced from time to time if a minor release update is available).

Using FLUKA on the cluster

In order to run FLUKA programs on the cluster you need to load the FLUKA module and also the GCC module:

 module load gcc
 module load fluka

As usual the you need to use the SGE Job Management (Queueing) System e.g. by creating a job script as follows:

#!/bin/bash

### the following lines are used by SGE to determine your job requirements
### you may want to modify the requested resources, e.g. h_vmem or h_rt,
### if you need more memory or run time (respectively)
#$ -S /bin/bash
#$ -cwd
#$ -l h_rt=1:00:0
#$ -l h_vmem=1000M
#$ -l h_fsize=100M
#$ -N fluka
#$ -j n

### here the actual job script begins
echo Job started on `date`   # put a time stamp in log file

# load modules
module load gcc
module load fluka

# settings (here you need to make your own modifications)
INPUTFILE=example   # without .inp 
FIRSTCYCLE=1
LASTCYCLE=5

# run code
rfluka -N $(expr $FIRSTCYCLE - 1) -M $LASTCYCLE $INPUTFILE

echo Job finished on `date`   # put a time stamp in log file

exit

If this is stored e.g. as run_fluka.sge you can submit a job with

 qsub run_fluka.sge

Note, that this requires the file example.inp in the directory where the job is submitted from. To copy this file to your current directory excute the commands:

 module load fluka    # if you haven't done so before
 cp $FLUPRO/example.inp .

Once the submitted job is completed you should find a number of new files.

Running FLUKA in parallel

A FLUKA input describes an experiment which typically is repeated several times (cycles) depending on the parameters given to the rfluka-command. Since each cycle is independent of all others a job array can in principle be used to parallelize the cycles of a FLUKA job.

However, in that case you need to prepare different input files for each (group of) cycle(s) with a different seed in the RANDOMIZE input card (see [[3]].