Biowulf at the NIH
RSS Feed
CNS on Biowulf

Crystallography and NMR System provides a flexible multi-level hierachical approach for the most commonly used algorithms in macromolecular structure determination. Highlights include heavy atom searching, experimental phasing (including MAD and MIR), density modification, crystallographic refinement with maximum likelihood targets, and NMR structure calculation using NOEs, J-coupling, chemical shift, and dipolar coupling data.

CNS was developed as a collaboration between several groups of researchers at different institutions. CNS website.

Version: 1.21

The advantage of using CNS on Biowulf is to utilize the parallel computations (multiple threads on a single node) or to run large numbers of independent jobs. A single job is most easily run on Helix.

Running a CNS batch job on Biowulf

Set up a batch script along the following lines:

#!/bin/csh
#PBS -N CNS
#PBS -m be

source /usr/local/cns/cns_solve_env
cd /data/user/myruns
cns_solve < refine.inp > refine.out

Submit this job with

qsub -I -l nodes=1 myjobscript

This parallelized version of CNS v1.21 enables parallel computations for some steps (especially FFTs) in the crystallographic refinement process. By default, the cns_solve_env script is set to utilize all processors on a node by setting the variable OMP_NUM_THREADS to the appropriate value. Benchmark runs indicate that CNS runs with the best efficiency on a 2p or 4p node.

All benchmarks were run on a 2.8 GHz Intel EMT 64((E5462) with 8 GB of memory and 12 MB secondary cache. CNS was built with the Intel compiler and OpenMP. The programs in the benchmark runs were the standard input suite from CNS.

Bottom line: The efficiency of parallelization drops rapidly after 2p. For long jobs, it may be worth using 4p on a dual-core node.

Program 1p2p4p6p8p
Time in seconds (efficiency)
nmr_calc/run/pmrefine_1 113 (100) 81 ( 69) 73 ( 38) 68 ( 27) 73 ( 19)
xtal_refine/run/ncs_average_map_2 72 (100) 55 ( 65) 46 ( 39) 44 ( 27) 43 ( 20)
xtal_mr/run/translation_1 208 (100) 136 ( 76) 94 ( 55) 75 ( 46) 75 ( 34)
xtal_phase/run/density_modify_1 98 (100) 98 ( 50) 98 ( 25) 98 ( 16) 98 ( 12)
xtal_twin/run/bgroup_twin 30 (100) 21 ( 71) 17 ( 44) 15 ( 33) 15 ( 25)
xtal_refine/run/optimize_wa 336 (100) 196 ( 85) 124 ( 67) 106 ( 52) 95 ( 44)
xtal_twin/run/model_map_twin 21 (100) 18 ( 58) 17 ( 30) 16 ( 21) 16 ( 16)
xtal_util/run/fourier_map_1 11 (100) 9 ( 61) 9 ( 30) 9 ( 20) 8 ( 17)
xtal_twin/run/detwin_perfect 14 (100) 12 ( 58) 10 ( 35) 10 ( 23) 10 ( 17)
xtal_mr/run/translation 43 (100) 30 ( 71) 22 ( 48) 19 ( 37) 18 ( 29)
xtal_twin/run/water_pick_twin 73 (100) 53 ( 68) 44 ( 41) 41 ( 29) 40 ( 22)
xtal_refine/run/ncs_average_map_1 67 (100) 54 ( 62) 48 ( 34) 47 ( 23) 45 ( 18)
xtal_twin/run/anneal_twin 507 (100) 342 ( 74) 272 ( 46) 248 ( 34) 245 ( 25)
xtal_twin/run/model_stats_twin 24 (100) 21 ( 57) 19 ( 31) 18 ( 22) 18 ( 16)
xtal_mr/run/translation_2 37 (100) 26 ( 71) 20 ( 46) 17 ( 36) 17 ( 27)
xtal_twin/run/bindividual_twin 30 (100) 21 ( 71) 16 ( 46) 15 ( 33) 14 ( 26)
xtal_twin/run/minimize_twin 150 (100) 101 ( 74) 79 ( 47) 69 ( 36) 66 ( 28)
xtal_phase/run/ir_phase_3 79 (100) 52 ( 75) 37 ( 53) 34 ( 38) 35 ( 28)
xtal_mr/run/cross_rotation 386 (100) 259 ( 74) 187 ( 51) 157 ( 40) 165 ( 29)
nmr_calc/run/pmrefine 185 (100) 132 ( 70) 95 ( 48) 92 ( 33) 86 ( 26)
xtal_twin/run/bdomain_twin 29 (100) 18 ( 80) 16 ( 45) 12 ( 40) 14 ( 25)
xtal_refine/run/sa_omit_map 11 (100) 7 ( 78) 5 ( 55) 5 ( 36) 5 ( 27)
xtal_refine/run/composite_omit_map 340 (100) 214 ( 79) 147 ( 57) 135 ( 41) 126 ( 33)
xtal_refine/run/anneal 41 (100) 25 ( 82) 17 ( 60) 15 ( 45) 13 ( 39)

Documentation

All at the CNS website.