Command Line Arguments

Command Line Arguments

qbics should be run from Windows command prompt or Linux terminal.

Run qbics on a Single Node

To run qbics on a single node, you just need to give an input file name. You can redirect output to an arbitrary file.

$ qbics water.inp > water.out

Some additional arguments can be given:

-n

Default: 1.

Define the number of OpenMP threads for each MPI process. This should be less than the number of physical CPU cores of the node it is run on.

-s

Default: ./

Define the scratch path. qbics will use this path to write some computational temporary files. It should be on a local, fast, and large disk instead of remote ones, like NFS shared paths.

For Windows users, the scratch path should be given in Linux format. For example, if the scratch path is D:\Jobs\Scratch, then you should give -d D:/Jobs/Scratch.

-m

Default: unlimited.

Define the maximum memory size in GB that a MPI process can use. For example, -m 5.5 means that each MPI process will use up to 5.5 GB of memory, no matter how many OpenMP threads there are. Of course, it should not exceed the total memory size of the node.

-d

Default: unlimited.

Define the maximum disk size in GB that a MPI process can use in the scratch path. For example, -d 900 means that each MPI process will use up to 900 GB of disk, no matter how many OpenMP threads there are. Of course, it should not exceed the total disk size in the scratch path.

For example, the following command will run qbics with an input file water.inp, the number of OpenMP threads is 8, maximum memory and disk size is 30 GB and 500 GB, respectively, and the scratch path is /scratch/zhang:

$ qbics water.inp -n 8 -m 30 -d 500 -s /scratch/zhang > water.out

Run qbics on Multiple Nodes

Although it is possible to run qbics directly with OpenMPI, we strongly recommend that you run it with a job scheduling system like Slurm or PBS.

When qbics is run on multiple nodes, it should be guaranteed that there is only 1 MPI process on each node, and the parallelization on each node should be done with OpenMP threads.

Slurm

The following Slurm script will run qbics on 8 nodes, each node having 24 OpenMP threads. The scratch path is set to /scratch.

#!/bin/bash
#SBATCH -N 8
#SBATCH --cpus-per-task=24
#SBATCH --job-name=water

fn=water
mpirun qbics ${fn}.inp -n $SLURM_CPUS_PER_TASK -s /scratch/ > ${fn}.out

PBS

The following PBS script will run qbics on 8 nodes, each node having 24 OpenMP threads. The scratch path is set to /scratch.

#!/bin/bash
TODOTODOTODOTODO