SPPARKS is a parallel Monte Carlo code for on-lattice and off-lattice models that includes algorithms for kinetic Monte Carlo (KMC), rejection kinetic Monte Carlo (rKMC), and Metropolis Monte Carlo (MMC). It implements several KMC solvers whose serial computational complexity ranges from O(N) to O(NlogN) to O(1) in the number of events N owned by a processor. In a generic sense the solvers catalog a list of "events", each with an associated probability, choose a single event to perform, and advance time by the correct amount. Events may be chosen individually at random, or by sweeping over sites in a more ordered fashion.
A full description of the package and links to download can be found in SPPARKS webpage.
Untar and unzip the downloaded file in your chosen directory.
tar -xzvf ssparks.tar.gz
Enter in src directory.
cd src
Load modules
module load gcc openmpi
Build the binary executables
make mpi
mv spk_mpi ~/home/bin
Edit the bash_profile file
vi ~/.bash_profile
Add the following code at the end of this file
PATH=$PATH:$HOME/bin
#!/bin/bash
#SBATCH --job-name=<job-name>
#SBATCH --output <Output>
#SBATCH --error <Error-output>
##SBATCH --mail-type=ALL
#SBATCH --qos=<account> ex. phillpot
##SBATCH --mail-user=<email-address>
#SBATCH --ntasks=8 # Number of MPI processes (CPUs)
#SBATCH --mem-per-cpu=2G # Per processor memory request
#SBATCH --time=96:00:00 # Walltime in hh:mm:ss or d-hh:mm:ss
module purge
module load gcc openmpi
mpiexec <spk_mpi file postion> -in in.* > job.log # the position should be like /home/<account>/bin/spk_mpi