...
The Wien2K program is used to perform electronic structure calculations of solid materials using Density Functional Theory. More information can be found at the Wien2K Web site. In order to use Wien2K you must be part of a research group that has purchased a license for the program. If you are in such a group then send a message to hpcresearch-sysadmins@iowa.uiowacomputing@uiowa.edu and your HawkID will be added to the wien2k Unix group.
Detailed information on using Wien2K can be found in the user's guide that should be available with the research groups that are licensed to use the software. The goal of this page is simply to describe specific information on running Wien2K on the University of Iowa HPC cluster. The first thing that you should do is to load the wien2k module.
No Format | ||
---|---|---|
| ||
module load wien2k |
No Format | ||
---|---|---|
| ||
module load WIEN2K |
That will set up the appropriate environment including the path to the wien2k program and other needed environment variables. It will also load any dependent environment modules if needed. In addition to running serially, Wien2K can be run in parallel. There are three modes of parallel jobs. For serial jobs and single machine (k-point parallelization) nothing special needs to be done beyond the normal methods of specifying job parameters for SGE. For jobs that span machines, Wien2K can be run as an MPI program or a hybrid OpenMP/MPI program. Those two modes of parallel operation are not uncommon. Please see the Wien2K page for more information. What makes Wien2K a little different is that it needs a specially formatted host file. We provide those special machines/hosts files via wien2k parallel environments for SGE.
There are two SGE parallel environments , wien2k-mpi types, wien2k_mpiX, where X is the number of cores per node, which is a series of PEs that request whole nodes, and wien2k-sm. The 'sm' version would be for running shared memory parallel on a single machine. The One of the 'mpi' version versions would be for either pure MPI or hybrid MPI/k-point parallel calculations. The 'sm' version can be used on any of the hosts. The mpi version will only work with whole nodes as it allocates slots in increments of the number of cores. That typically works best for MPI jobs. Each of these parallel environments creates two machines files, machines.wien2k-mpi and machines.wien2k-hybrid. The mpi version sets up the machines file to calculate a k-point across all processors, whereas the hybrid will calculate k-points per node. According to the documentation, the mpi model should be better on an Infiniband network like we have. Of course, you can manipulate the machines file in your job script if that works better for you. The two machines files are located in the $TMPDIR of the job so you will have to copy them to your local directory to use them. So to use them you could have something like the following in your job script.
Code Block | ||||
---|---|---|---|---|
| ||||
#!/bin/bash # #$ -N w2k_job # #$ -cwd #$ -pe wien2k-mpi_mpi24 24 module load wien2k cd ~/wien2k_job_dir # copy the machines file in cp $TMPDIR/machines.wien2k-mpi .machines # Use -p to specify a parallel calculation runsp_lapw -p |
...