GenX

Overview

GenX is a program using the differential evolution algorithm for fitting, primarily, X-ray and neutron reflectivity data, lately also surface x-ray diffraction data. The differential evolution algorithm is a robust optimization method which avoids local minima but at same is a highly effective.

Version 3.0.4 is installed on the CSF.

Restrictions on use

There are no restrictions on accessing the software on the CSF. It is released under the GNU GPL v2 license and all usage must adhere to that license.

Set up procedure

We now recommend loading modulefiles within your jobscript so that you have a full record of how the job was run. See the example jobscript below for how to do this. Alternatively, you may load modulefiles on the login node and let the job inherit these settings.

Load one of the following modulefiles:

module load apps/python/genx/3.0.4          # Serial and multi-process version

module load apps/python/genx/3.0.4-mpi      # MPI parallel version

Running the application

Please do not run GenX on the login node. Jobs should be submitted to the compute nodes via batch. To see the flags / switches accepted by the genx command, you can run the following on the login node:

genx --help

Please note that the graphics user interface has not been enabled in this installation. GenX can only be used in jobscripts without the GUI.

Serial batch job submission

Create a batch submission script (which will load the modulefile in the jobscript), for example:

#!/bin/bash --login
#$ -cwd             # Job will run from the current directory
                    # NO -V line - we load modulefiles in the jobscript

# Load the required version
module load apps/python/genx/3.0.4

# Use flags/switch appropriate to your usage
genx --run --pr $NSLOTS input.gx output.gx

Submit the jobscript using:

qsub scriptname

where scriptname is the name of your jobscript.

Parallel (non-MPI) batch job submission

Create a batch submission script (which will load the modulefile in the jobscript), for example:

#!/bin/bash --login
#$ -cwd             # Job will run from the current directory
#$ -pe smp.pe 4     # Number of cores (can be 2--32)

# Load the required version
module load apps/python/genx/3.0.4

# $NSLOTS is automatically set to the number of cores given above.
genx --run --pr $NSLOTS input.gx output.gx

Submit the jobscript using:

qsub scriptname

where scriptname is the name of your jobscript.

Parallel (MPI) batch job submission

Create a batch submission script (which will load the modulefile in the jobscript), for example:

#!/bin/bash --login
#$ -cwd             # Job will run from the current directory
#$ -pe smp.pe 16    # Number of cores (can be 2--32)

# Load the required version (this is the MPI version)
module load apps/python/genx/3.0.4-mpi

# $NSLOTS is automatically set to the number of cores given above.
mpirun -n $NSLOTS genx --mpi input.gx output.gx

Submit the jobscript using:

qsub scriptname

where scriptname is the name of your jobscript.

Further info

Updates

None.

Last modified on January 18, 2021 at 2:12 pm by George Leaver