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.