Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

 

The Wien2K program is used to perform electronic structural structure calculations of solid materials using Density Functional Theory. More information can be found at at the Wien2K Web  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 users 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 Helium HPC cluster. The first thing that you should do is to load the wien2k module.

No Format
titleNeon
module load wien2k


No Format
titleArgon
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 Advanced Job Submission page 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, both 8 and 12-core, as found in the all.q queue. The mpi version will only work with 12 core whole nodes as it allocates slots in increments of 12the number of cores. That typically works best for MPI jobs. The UI queue contains only 12-core nodes so this is likely where you will run these jobs. The UI queue is the default so you do not have to specify it. 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
languagebash
titleSample Wien2k job script
 
#!/bin/bash

...


#

...


#$ -N w2k_job

...


#

...


#$ -cwd

...


#$ -pe

...

 
module load wien2k
 

...

 wien2k_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