ARCHER logo ARCHER banner

The ARCHER Service is now closed and has been superseded by ARCHER2.

  • ARCHER homepage
  • About ARCHER
    • About ARCHER
    • News & Events
    • Calendar
    • Blog Articles
    • Hardware
    • Software
    • Service Policies
    • Service Reports
    • Partners
    • People
    • Media Gallery
  • Get Access
    • Getting Access
    • TA Form and Notes
    • kAU Calculator
    • Cost of Access
  • User Support
    • User Support
    • Helpdesk
    • Frequently Asked Questions
    • ARCHER App
  • Documentation
    • User Guides & Documentation
    • Essential Skills
    • Quick Start Guide
    • ARCHER User Guide
    • ARCHER Best Practice Guide
    • Scientific Software Packages
    • UK Research Data Facility Guide
    • Knights Landing Guide
    • Data Management Guide
    • SAFE User Guide
    • ARCHER Troubleshooting Guide
    • ARCHER White Papers
    • Screencast Videos
  • Service Status
    • Detailed Service Status
    • Maintenance
  • Training
    • Upcoming Courses
    • Online Training
    • Driving Test
    • Course Registration
    • Course Descriptions
    • Virtual Tutorials and Webinars
    • Locations
    • Training personnel
    • Past Course Materials Repository
    • Feedback
  • Community
    • ARCHER Community
    • ARCHER Benchmarks
    • ARCHER KNL Performance Reports
    • Cray CoE for ARCHER
    • Embedded CSE
    • ARCHER Champions
    • ARCHER Scientific Consortia
    • HPC Scientific Advisory Committee
    • ARCHER for Early Career Researchers
  • Industry
    • Information for Industry
  • Outreach
    • Outreach (on EPCC Website)

You are here:

  • ARCHER
  • User Guides & Documentation
  • Essential Skills
  • Quick Start Guide
  • ARCHER User Guide
  • ARCHER Best Practice Guide
  • Scientific Software Packages
  • UK Research Data Facility Guide
  • Knights Landing Guide
  • Data Management Guide
  • SAFE User Guide
  • ARCHER Troubleshooting Guide
  • ARCHER White Papers
  • Screencast Videos

Contact Us

support@archer.ac.uk

Twitter Feed

Tweets by @ARCHER_HPC

ISO 9001 Certified

ISO 27001 Certified

ONETEP

ONETEP Version 4.3.0 is installed and available on ARCHER. An earlier version (3.4.0) can be accessed by loading the appropriate module.

Useful links

  • ONETEP web page
  • ONETEP Tutorials
  • ONETEP Frequently Asked Questions

Licensing and Access

ONETEP is licensed software. Please see the ONETEP web page for details. Users who wish to access the ONETEP package should submit a request via SAFE.

Running ONETEP

To run ONETEP you need to load the correct module:

module load onetep

The current default ONETEP module will load ONETEP 4.3.0, but there is a module available for ONETEP 3.4.0:

module load onetep/3.4

Once the module has been loaded the main ONETEP executable is available as onetep.

An example ONETEP job submission script is shown below.

#!/bin/bash
#PBS -N ONETEP_job
#PBS -l select=4
#PBS -l walltime=01:00:00
#PBS -j oe
#PBS -A budget

# Make sure any symbolic links are resolved to absolute path
export PBS_O_WORKDIR=$(readlink -f $PBS_O_WORKDIR)

# Change to the directory that the job was submitted from
cd $PBS_O_WORKDIR

# Load the ONETEP module
module load onetep

# Set the seed name for the calculation (controls what .dat file is loaded)
SEED="seedname"

# Set parameters for OpenMP
export MKL_NUM_THREADS=1
export MKL_DYNAMIC=false
export OMP_NESTED=true
export MKL_NESTED=true

# Set number of threads per MPI process (must be a divisor of 24)
export OMP_NUM_THREADS=3

# Set number of MPI processes per node 
# (NUM_PPM is the number of processor cores per node)
export NP=$((NUM_PPN / $OMP_NUM_THREADS))

# Set total number of MPI processes 
# (NODE_COUNT is the number of nodes allocated to your job)
export NMPI=$((NP * NODE_COUNT))

# Gather aprun arguments
export APRUN_ARGS="-n $NMPI -N $NP -d $OMP_NUM_THREADS -S $((NP / 2)) -cc numa_node"

# Set output filename
export OUT=$SEED".out_"$NMPI"mpi_"$OMP_NUM_THREADS"thr"

# Run the job
aprun $APRUN_ARGS onetep $SEED >> $OUT
echo "Executing aprun $APRUN_ARGS onetep $SEED >> $OUT"

Hints and Tips

ONETEP supports hybrid OpenMP / MPI parallelism. It is not necessary to use OpenMP for a very small calculation, but for anything over a few hundred atoms it is highly advisable. The above example script uses 4 nodes and thus a total of 96 cores, and it runs with 3 OpenMP threads per MPI process, so there are 8 MPI processes per node and 32 MPI processes in total.

The script chooses the number of processes per node based on the user-supplied number of threads such that each thread runs on a single core, and chooses the total number of MPI processes based on the number of nodes. Therefore the two parameters to adjust to control the parallelisation are total number of nodes (#PBS -l select=N) and number of threads per process (OMP_NUM_THREADS).

It is very rarely necessary to under-populate the nodes: if you find yourself running out of memory simply up the number of OpenMP threads per MPI process. Efficient results are obtainable with OMP_NUM_THREADS=2,3,4 and 6. OMP_NUM_THREADS=12 can be used but the efficiency will be less than ideal. You should not go beyond OMP_NUM_THREADS=12 as this would mean splitting MPI processes between NUMA regions, which incurs a considerable performance hit.

You will also need to set the budget, and set the seed name to match the name of your input file (e.g. "silane" for the 1st tutorial on the ONETEP website).

Compiling

ONETEP should be compiled with the Intel compiler and using the supplied configuration file (config/conf.archer) that contains compilation settings appropriate to ARCHER, as follows (from a fresh login):

module swap PrgEnv-cray PrgEnv-intel
gmake onetep ARCH=archer

Copyright © Design and Content 2013-2019 EPCC. All rights reserved.

EPSRC NERC EPCC