Version 20 (modified by 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
- ChimeraX:
- Looking up bfactor (1 million times):
- 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
- bfactor property
- 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?
- Cythonize Atom into Python type? method: 0.098s; property:
- 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
- Cythonize major objects (ctypes)
- From last meeting
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.