816.nab_s
Molecular Modeling
Russ Brown <russ.brown[at] yahoo [dot] com>, et al
816.nab_s is based on Nucleic Acid Builder (NAB), which is a molecular modeling application that performs the types of floating point intensive calculations that occur commonly in life science computation. The calculations range from relatively unstructured "molecular dynamics" to relatively structured linear algebra.
The input for 816.nab_s consists of molecules with varying numbers of atoms, a random seed, and parameters for the simulation such as number of iterations per epoch and number of epochs to run.
To simulate a molecule, two files are required.
One is a PDB format text file that specifies the atomic (x,y,z) coordinates. These were taken from the Brookhaven Protein Data Bank.
The other is a PRM format text file that specifies, among other characteristics, the "force field" that indicates how the atoms interact with one another. Generating the PRM file involves using the full version of NAB to read the PDB file, add protons to the molecule, and output the PRM file.
A small NAB program is required that reads the PDB file, adds H atoms
if necessary, and outputs new PDB and PRM files. That program, as well
as the steps necessary to run it, have been encapsulated in the shell
script makeprm.sh in the benchmark Docs
directory. The script requires access to a full installation of NAB, as
well as working C and Fortran compilers.
| Workload | Molecule | Atoms | Seed | Epochs | Iterations |
|---|---|---|---|---|---|
| test | hkrdenq | 124 | 1930344093 | 1 | 1000 |
| train | aminos | 327 | 391519156 | 1 | 1000 |
| gcn4dna | 3227 | 1850041461 | 1 | 300 | |
| refspeed | 3j1n | 62072 | 20140317 | 3 | 220 |
| 1am0 | 19030 | 20220406 | 3 | 500 |
The outputs are summaries of the state of the molecular dynamics simulation every 100 iterations and at the end.
NAB appeared in SPEC OMP 2012 as 352.nab and SPEC CPU 2017 as 544.nab_r and 644.nab_s.
Relative to 352.nab, the simulation driver has been rewritten, and the kd-tree code has been updated. There were many small changes to eliminate compiler warnings and get rid of insignficant memory leaks. The test and train workloads use the same molecules and random seeds, though one of the molecules in the train workload runs for 700 fewer iterations. The refspeed workload (corresponding to "ref" in 352.nab) is completely different -- one molecule as opposed to two in 352.nab, and differing numbers of iterations.
Unlike CPU 2017, there is no serial version corresponding to 544.nab_r.
644.nab_s in CPU 2017 used almost exactly the same source code as appeared in OMP 2012, so the differences relative to 816.nab_s are similar. The test and train workloads are identical to 644.nab_s. The refspeed workload has been expanded to two molecules; one is the same and one new.
C
OpenMP 4.0
None
NAB is licensed to SPEC by Russell Brown under a BSD license.
SPEC added a version of the Mersenne-Twister PRNG that is licensed by its authors (Makoto Matsumoto, Takuji Nishimura, and Mutsuo Saito) under a BSD license.
rxspencer is Harry Spencer's regular expression library, obtained via https://github.com/garyhouston/rxspencer with modifications detailed there, and modified by SPEC for compatibility with modern C function definition syntax. It uses its own license.
Input files are taken from the Brookhaven Protein Data Bank and are licensed under a Creative Commons Zero (CC0) license.
Copyright © 2026 Standard Performance Evaluation Corporation (SPEC®)