AMD Toolchain with SPACK

Micro Benchmarks/Synthetic

SPACK HPC Applications


The NWChem software contains computational chemistry tools that are scalable both in their ability to efficiently treat large scientific problems, and in their use of available computing resources from high-performance parallel supercomputers to conventional workstation clusters.

NWChem can handle:

  • Biomolecules, nanostructures, and solid-state
  • From quantum to classical, and all combinations
  • Ground and excited-states
  • Gaussian basis functions or plane-waves
  • Scaling from one to thousands of processors
  • Properties and relativistic effects

Official website for NWChem:

Build NWChem using Spack

Reference to add external packages to Spack: Build Customization (Adding external packages to Spack)

# Format For Building NWChem with AOCC
$ spack -d install -v nwchem@7.0.2 %aocc@<Version> target=<zen2/zen3> ^amdblis@<Version> threads=<openmp/none> ^amdlibflame@<Version> ^amdfftw@<Version> ^amdscalapack@<Version> ^openmpi@<Version> fabrics=auto
# Example: For Building NWChem with AOCC 3.2 and AOCL 3.1
$ spack -d install -v -j 16 nwchem@7.0.2 +mpipr +openmp %aocc@3.2.0 target=zen3 ^amdblis@3.1 threads=openmp ^amdfftw@3.1 ^amdlibflame@3.1 ^amdscalapack@3.1 ^openmpi@4.1.1 fabrics=auto

Use any combination of the following components/applications and their versions:

Component/Application Versions Applicable
NWChem 7.0.2
AOCC 3.2.0
AOCL 3.1

Specifications and Dependencies

Symbol Meaning
-d To enable debug output
-v To enable verbose
-j 16 To enable parallel build
@ To specify version number
% To specify compiler
target=zen3 Build for AMD “Zen3” architecture
^amdblis threads=openmp To build with amdblis with OpenMP threads variant
^amdfftw To build with amdlfftw
^amdlibflame To build with amdlibflame
^amdscalapack To build with amdscalapack
^open­mpi­ fabri­cs=­auto To build with Open MPI and using fabrics=auto

Running NWChem

Obtaining Benchmarks

To obtain a suite of benchmarks performed with NWChem, visit

For performance testing, AMD recommends using the workload C240 Buckyball:

Note: c240 bulky ball dataset expects a /scratch directory in the input file. Edit the input file as suggested follows.

scratch_dir /scratch ==> scratch_dir $HOME/scratch
Setting Environment
# Format for loading NWChem build with AOCC
$ spack load nwchem@<Version> %aocc@<Version>
# Example: Load NWChem 7.0.2 build with AOCC 3.1.0 module into environment
$ spack load nwchem@7.0.2 %aocc@3.2.0


Run Command
# Locate installation of binaries
$ spack cd -i nwchem@7.0.2 %aocc@3.2.0
$ cd bin/
# For a pure MPI run
$ export RESOURCE=core
$ export PE=1
$ export ITE=1
$ export NP=128
$ mpirun -np $NP --bind-to core --map-by ppr:$ITE:$RESOURCE:pe=$PE -x KMP_WARNINGS=0 -x OMP_NUM_THREADS=$PE -x OMP_STACKSIZE="32M" $PWD/nwchem $PWD/c240_631gs.nw