816.nab_s
SPEC CPU®2026 Benchmark Description

Benchmark Name

816.nab_s

Benchmark Program General Category

Molecular Modeling

Benchmark Authors

Russ Brown <russ.brown[at] yahoo [dot] com>, et al

Benchmark Description

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.

Input Description

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 details

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

Output Description

The outputs are summaries of the state of the molecular dynamics simulation every 100 iterations and at the end.

Differences from NAB in previous SPEC benchmark suites

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.

Programming Language

C

Threading Model

OpenMP 4.0

Known Portability Issues

None

Sources and Licensing

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.

References

Copyright © 2026 Standard Performance Evaluation Corporation (SPEC®)