CRYSTAL

Licensing and Access

CRYSTAL is licensed software. Please see the CRYSTAL web page for details. Users who wish to access the CRYSTAL package should submit a request via SAFE with their CRYSTAL license details.

Running CRYSTAL

To run CRYSTAL you need to load the correct module inside your job submission script. For CRYSTAL 14:

module load crystal

and for CRYSTAL 17:

module load crystal/crystal17.2

Once the module has been added the CRYSTAL executables are available as:

  • MPPcrystal
  • Pcrystal
  • crystal (CRYSTAL 17.2)

and the properties executables as:

  • Pproperties
  • properties

For CRYSTAL 14, the input file must be named as INPUT.

An example CRYSTAL job submission script is shown below.

#!/bin/bash --login
#PBS -N crystal_job

# Select 128 nodes (maximum of 3072 cores)
#PBS -l select=128
#PBS -l walltime=03:00:00

# Make sure you change this to your budget code
#PBS -A budget

# Make sure any symbolic links are resolved to absolute path
export PBS_O_WORKDIR=$(readlink -f $PBS_O_WORKDIR)

# Change to the directory that the job was submitted from
cd $PBS_O_WORKDIR

# Load the CRYSTAL module
module add crystal

# Important: set TMPDIR to point to /work
export TMPDIR=$PBS_O_WORKDIR

# Please note the input file must be called INPUT.
aprun -n 3072 MPPcrystal

Running the properties code

An example script to run the parallel properties program would be:

#!/bin/bash --login
#PBS -N crystal_job

# Select 8 nodes (maximum of 192 cores)
#PBS -l select=8
#PBS -l walltime=03:00:00

# Make sure you change this to your budget code
#PBS -A budget

# Make sure any symbolic links are resolved to absolute path
export PBS_O_WORKDIR=$(readlink -f $PBS_O_WORKDIR)

# Change to the directory that the job was submitted from
cd $PBS_O_WORKDIR

# Load the CRYSTAL module
module add crystal

# Important: set TMPDIR to point to /work
export TMPDIR=$PBS_O_WORKDIR

# Please note the input file must be called INPUT.
aprun -n 192 Pproperties

Using the qcry and runcry scripts (CRYSTAL 17)

CRYSTAL 17 provides a script (qcry) to generate a job script, and run scripts (runcry, runcryP, and runcryMPP). qcry does not generate a correct job script for Archer, but the runcry scripts can be used. For example, for runcryP:

#!/bin/bash --login
#PBS -N runcryP_example
#PBS -l select=1
#PBS -l walltime=00:20:00
#PBS -A budget

# Make sure any symbolic links are resolved to absolute path.
export PBS_O_WORKDIR=$(readlink -f $PBS_O_WORKDIR)

# Change to the directory that the job was submitted from.
cd $PBS_O_WORKDIR

# Set the number of threads to 1.  This prevents any system libraries
# from automatically using threading.
export OMP_NUM_THREADS=1

module load crystal/crystal17.2

# Number of cores per node used.
export NCORES=24
# Number of processes (NPROCESSES=1 for runcry).
export NPROCESSES=24

# Call runcry/runcryP/runcryMPP with the input filename without the .d12
# extension.
runcryP input_name

# Run CRYSTAL.
chmod u=rwx,g=rx,o=rx ./input_name.run
./input_name.run