ChimeraX Benchmarks for Apple M1 CPU

Here are details of how the timings reported for the Apple M1 CPU were obtained.

Opening atomic structure. Parsing 230 MByte mmCIF text file in C++. 2.4 million atoms. Fastest of 3 tries.

      open 3j3q
      close
      time open 3j3q
      close
      time open 3j3q
      close
      time open 3j3q
      close
    

Nucleotides. Python calculation. 150,000 atom ribosome structure. Fastest of 3 tries.

      open 7n30
      time nuc #1 tube/slab
      nuc #1 atom
      time nuc #1 tube/slab
      nuc #1 atom
      time nuc #1 tube/slab
      close
    

Add hydrogens. Mixed Python and C++ calculation. 150,000 atom ribosome structure. Fastest of 3 tries.

      open 7n30
      time addh
      del H
      time addh
      del H
      time addh
      close
    

Compute molecular surface. C++ calculation. 150,000 atom ribosome structure. Fastest of 3 tries.

      open 7n30
      time surface
      surface close
      time surface
      surface close
      time surface
      close
    

Volume contour surface calculation. C++ calculation on 300 MByte data set. Apoferritin 420x420x420 grid.

      windowsize 512 512
      open 22657 from emdb
      volume #1 level 0.01 step 1
      view
      volume #1 level 0.02
      light simple
      time volume #1 level 0.01
      volume #1 level 0.02
      time volume #1 level 0.01
      volume #1 level 0.02
      time volume #1 level 0.01
      close
    

Atomic structure rendering speed. Showing large molecular surface and atoms. Measures GPU performance in frames per second.

      # For Retina display
      windowsize 512 512
      # For non-retina display
      windowsize 1024 1024
      open 7n30
      surface
      view
      graphics rate true
      roll
      # Observe frame rate in status line for one minute.
      # Take most common frame rate.
      close
    

Rendering speed

The 7n30 surface rendering speed is not a good test for GPU speed at higher frame rates because there are 55 surface models (one for each chain) and ChimeraX Python code bottlenecks the rendering for that many models. An Nvidia GTX 1080 Ti on Windows gives only 38 frames per second versus M1 12 frames/second when GPU speed alone would have the 1080 Ti at about 70 frames/sec, about 6 times faster.

A test that better measures just the GPU is EMDB 22657 surface at step 1, level 0.01 (~10 million triangles) with vsync off renders at about 130 frames/sec versus 23 frames/sec on Apple M1, about 5.6 times faster.