wiki:2018-01-25

Version 20 (modified by Eric Pettersen, 8 years ago) ( diff )

--

Attendees

  • Elaine, Greg, Eric, TomG, TomF, Scooter (via Zoom)

Agenda

  • ChimeraX registration
  • ChimeraX 0.6 performance
  • Review milestone priorities
  • Wildcard/regex/case matching in commands

Discussion

  • ChimeraX registration code almost works, Conrad will look into it
  • ChimeraX 0.6 performance
    • From last meeting
      • Looking up bfactor (1 million times):
        • ChimeraX:
          • ctypes: 1.38s
          • custom library with property wrapping: 0.5s
          • custom library with no wrapping: 0.185s
          • random floating point attribute in Python: 0.072s
          • Cython with no wrapping: 0.021s
            • loop is in Cython
          • Cython with no wrapping: 0.156s
            • loop is in Python
        • Chimera 1:
          • access bfactor via wrappy2: 0.062s
          • custom library with no wrapping: 0.181s
    • Collect data
      • Cython is really fast
    • New Results
      • Cythonize Atom into Python type? method: 0.098s; property: 0.119s
        • bfactor property
          • straight type 0.080s
          • class inheriting type 0.092s
          • __dict__ enabled 0.082s; doesn't inherit non-builtin class attrs
        • coord property
          • returning numpy 1.48s
          • returning tuple 0.103s
      • Cythonize Atom (2ajq; 14791 atoms; contacts: chain A against others)
        • addh 1.1x faster (22.21s -> 20.14s)
        • hbonds 1.04x faster (3.44s -> 3.30s)
        • contacts 1.3x faster (0.444s -> 0.333s)
      • Cythonize Atom + Element
        • addh 1.4x faster (22.21s -> 15.71s)
        • hbonds 1.2x faster (3.44s -> 2.81s)
        • contacts 1.8x faster (0.444s -> 0.253s)
      • Cythonize Atom + Element and use tinyarray
        • addh 1.8x faster (22.21s -> 12.63s) [C1: 8.68s]
        • hbonds 1.3x faster (3.44s -> 2.64s) [C1: 3.04s]
        • contacts 2.1x faster (0.444s -> 0.211s) [C1: 0.216s]
      • Cythonize Atom methods? function: 0.074s; method: 0.204s; prop: 0.135s
      • Cythonize hydrogen bond code? How hard is this?
    • Approach
      • Cythonize major objects (ctypes)
        • Atom/Atoms
        • Bond/Bonds
        • Residue/Residues
        • Maybe higher level objects
      • Profile code and change data structures/algorithms to improve performance
      • Cythonize as it makes sense

Action Items

  • Eric will convert Atom to Cython
  • Conrad will write bundle code tutorial
  • Conrad will continue working on ribbon tickets
  • Conrad will create ticket to investigate implementing the "like" operator
    • e.g., to specify polymer in atomspec
Note: See TracWiki for help on using the wiki.