[phenixbb] speeding up effective resolution calculation

Alexandre OURJOUMTSEV sacha at igbmc.fr
Fri Dec 7 00:04:03 PST 2018


Dear Eric, dear Pavel,

Yes, the original code is available, and it does use NumPy.
There is also a similar code in fortran77. If you are interested, I will send you any of them of both. Please, let me know.

The program takes time essentially because it scans a number of directions (in a grid of reciprocal space), and we did not succeed to get this "once for all of them". In fact, if you are not very limited but accuracy, you may increase the step of this grid and thus gain (as a quadratic function) some time.


With best regards,

Sacha Urzhumtsev


-----Message d'origine-----
De : Pavel Afonine [mailto:pafonine at lbl.gov] 
Envoyé : vendredi 7 décembre 2018 05:14
À : Eric Williams <ericwilliams at pobox.com>; phenixbb at phenix-online.org
Cc : Alexandre OURJOUMTSEV <sacha at igbmc.fr>
Objet : Re: [phenixbb] speeding up effective resolution calculation

Hi Eric,

> I'm using phenix.resolution to calculate effective resolution, and I'm 
> looking for ways to speed it up. I've tried a few different machine 
> configurations, and it always takes around 20 minutes per structure.
> This is problematic for me, because I'm trying to collect data from 
> the entire PDB. Does anyone here have experience using NumPy to 
> optimize scripts and helpful suggestions for this case? Alternatively, 
> how much speedup am I likely to get by rewriting the script in C and 
> using it as a module? Thanks. :)

this is an excellent question!

What I have implemented as phenix.resolution is a not very well thought replica of the original code written by Sacha Urzhumtsev (on copy). In fact, I just used the paper and would ask the author questions from time to time. I did not look at the original code at all. My implementation
(phenix.resolution) produces the same results as the original one but works tremendously slower than Sacha's version (even though I moved all heavy calculations into C++ and actually did try my best to make it faster).

You are welcome to improve it to make faster. For this I guess you better talk to Sacha and also look at the original implementation. Also, of course, if you do this please keep me updated so that we can coordinate efforts (rather than doing something silently and then suddenly popping up with a pile of new code!).

 From this point on we can move this discussion off phenixbb list as it becomes too narrow in scope!

All the best,
Pavel




More information about the phenixbb mailing list