Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Address recent performance regression #90

Merged
merged 1 commit into from
Apr 9, 2021

Conversation

d-b-w
Copy link
Collaborator

@d-b-w d-b-w commented Apr 8, 2021

Reported in the schrödinger bug tracker as SHARED-7789

Our performance monitoring tests noticed that coordgen got about
10x slower after PR #81. I guess the inner loop of minimization
must be hitting the max pretty frequently! We should address
that too.

(this doubles the max iterations from before #81, but that's ok
because #81 included a tidy refactor that halved the calls to this
function)

Before this commit:

slowest:  1.442s
average: 0.044s
# above 0.1s: 566
# above 1s: 9

After this commit:

slowest: 0.151s
average: 0.006s
molecules above 0.1s: 12
molecules above 1s: 0

Reported in the schrodigner bug tracker as SHARED-7789

Our performance monitoring tests noticed that coordgen got about
10x slower after PR schrodinger#81. I guess the inner loop of minimization
must be hitting the max pretty frequently! We should address
that too.

(this doubles the max iterations from before schrodinger#81, but that's ok
because schrodinger#81 halved the calls to this function)

Before this change:

    slowest:  1.442s
    average: 0.044s
    molecules above 0.1s: 566
    molecules above 1s: 9

after this change:

    slowest: 0.151s
    average: 0.006s
    molecules above 0.1s: 12
    molecules above 1s: 0
Copy link
Contributor

@cdvonbargen cdvonbargen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dropping this back to the previous number of iterations makes sense to me

Copy link
Collaborator

@rachelnwalker rachelnwalker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This makes sense!

@@ -37,7 +37,7 @@ static const unsigned int MAXIMUM_NUMBER_OF_SCORED_SOLUTIONS = 10000;
static const float REJECTED_SOLUTION_SCORE = 99999999.f;
CoordgenMinimizer::CoordgenMinimizer()
{
m_maxIterations = 10000;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was this just a typo? Or were the previous changes expected to make the minimizer converge much sooner than 10000 iterations?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was both! Nic didn't expect that so many structures hit the max, so thought that this change wouldn't matter.

And I, in reviewing it, read it as 1,000 instead of 10,000. (a "read-o", I guess)

@d-b-w d-b-w merged commit 6fd6bb4 into schrodinger:master Apr 9, 2021
@d-b-w d-b-w deleted the performance_regression branch April 9, 2021 21:29
d-b-w added a commit to d-b-w/rdkit that referenced this pull request Apr 9, 2021
This is pretty urgent, because it includes a fix for a 10X
performance regression in coordgen
(schrodinger/coordgenlibs#90).

It also fixes coordinate generation for 2.2.2 bicyclic systems.
greglandrum pushed a commit to rdkit/rdkit that referenced this pull request Apr 10, 2021
This is pretty urgent, because it includes a fix for a 10X
performance regression in coordgen
(schrodinger/coordgenlibs#90).

It also fixes coordinate generation for 2.2.2 bicyclic systems.
greglandrum pushed a commit to rdkit/rdkit that referenced this pull request May 12, 2021
This is pretty urgent, because it includes a fix for a 10X
performance regression in coordgen
(schrodinger/coordgenlibs#90).

It also fixes coordinate generation for 2.2.2 bicyclic systems.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants