perses icon indicating copy to clipboard operation
perses copied to clipboard

Profiling setup workflows

Open ijpulidos opened this issue 3 years ago • 3 comments

Identify bottlenecks in the setup steps by profiling.

ijpulidos avatar Sep 07 '21 21:09 ijpulidos

I performed a quick/basic profiling using our current examples and according to the following figures, we might not gain much from optimizing the setup parts of our software. It calls so many things and a real optimization would require optimizing every single one of these things, which is a huge task, as far as I can see. Maybe we could try doing something to the _constraint_repairs in the topology_proposal.py module, but even so, that adds up to ~8% of the walltime, in the "best" cases.

profiling_perses

Highlighted in red is what the "best candidate" could be, which is the one I mentioned before.

ijpulidos avatar Sep 09 '21 18:09 ijpulidos

It looks like we can definitely tune the local energy minimization, though. At one point, we had experimented with the very fast FIRE minimizer that could be "good enough" for our purposes: https://github.com/choderalab/openmmtools/blob/master/openmmtools/integrators.py#L2283-L2457

It wasn't implemented correctly (my fault!) so isn't robust, so we can clean this up. I've heard others have had a great deal of success with it.

jchodera avatar Sep 09 '21 21:09 jchodera

Is there any hint that some methods that are called repeatedly collectively add up to a lot of time?

jchodera avatar Sep 11 '21 00:09 jchodera