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

improve testing precompilation #309

Closed
laurentheirendt opened this issue Jun 8, 2021 · 10 comments
Closed

improve testing precompilation #309

laurentheirendt opened this issue Jun 8, 2021 · 10 comments
Assignees
Labels
performance reduces time and resource consumption
Milestone

Comments

@laurentheirendt
Copy link
Contributor

This idea could potentially be improved: #303

We could try to warmup/precompile the solvers inside the docker container

@laurentheirendt laurentheirendt added this to the Release - v1.2 milestone Jun 8, 2021
@laurentheirendt laurentheirendt self-assigned this Jun 8, 2021
@exaexa
Copy link
Collaborator

exaexa commented Aug 3, 2021

@exaexa exaexa added the performance reduces time and resource consumption label Aug 4, 2021
@exaexa
Copy link
Collaborator

exaexa commented Oct 13, 2021

Status after much testing:

  • solvers can't be precompiled because Julia can't precompile mixed-package (MOI + JuMP + solver) stuff now
  • sysImages are a solution but not for testing (you spend more time creating the sysImage than precompiling in the test)
  • the "careful precompilation on all workers" already helped a bit

It would make sense to do sysImages in containers, esp for HPC deployment, so I'm moving that idea to #68

@laurentheirendt
Copy link
Contributor Author

the

@laurentheirendt
Copy link
Contributor Author

the containers that we generate from the package are actually for the package and not the testing of it. There must be a way that we can pre-compile in the docker images for testing 😄

@exaexa
Copy link
Collaborator

exaexa commented Oct 13, 2021

But you are technically never testing 2 same versions of COBREXA, so the precompiled material is not going to get re-used anyway right?

@laurentheirendt
Copy link
Contributor Author

as far as I understand, COBREXA is not recompiled with all other packages together, or is it?

@exaexa
Copy link
Collaborator

exaexa commented Oct 13, 2021

not sure.

thinking about it, if we make a julia sysImage with precompiled JuMP + some solver(s), which is 90% of the compilation time anyway, we pretty much solve the problem. Does that sound OK?

@laurentheirendt
Copy link
Contributor Author

that sounds promising 👍🏼

@exaexa
Copy link
Collaborator

exaexa commented Nov 17, 2021

Tests today:

  • without PackageCompiler the tests run in ~3:40
  • with a prepared environment I was able to shrink it to ~2:30
    Precompilation of actual cobrexa is still pretty slow though, making up around 40 seconds there, but we can't do much with that as the code is different at each test.

Making the PackageCompiler image takes around 4 minutes.

@exaexa exaexa removed this from the Release - v1.2 milestone Jan 24, 2022
@exaexa exaexa added this to the Wishlist milestone Sep 2, 2022
@exaexa
Copy link
Collaborator

exaexa commented Dec 9, 2023

not really feasible anymore; there's julia cache (works pretty well) and most of the functionality is getting moved off the package, which will make fixing this basically unnecessary. Closing.

@exaexa exaexa closed this as completed Dec 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance reduces time and resource consumption
Projects
None yet
Development

No branches or pull requests

2 participants