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

Spine Toolbox plugin for precompilation #1120

Open
tarskul opened this issue Oct 18, 2024 · 0 comments
Open

Spine Toolbox plugin for precompilation #1120

tarskul opened this issue Oct 18, 2024 · 0 comments

Comments

@tarskul
Copy link
Collaborator

tarskul commented Oct 18, 2024

SpineOpt is written in Julia which is not a compiled language. Compilation of needed functions happens whenever you come across the function. That means that a lot of the time SpineOpt is precompiling which is perceived as slow by users.

There are ways to precompile your package but the current SpineOpt design does not allow us to do this on the developer side. There is a way that users can make a system image that effectively does the same thing. However, this is different for every system and as such the user needs to do this themselves.

@manuelma has written clear instructions for this which is certainly helpful. However, this may be a bit advanced for the average users. Therefore we may consider to make a Spine Toolbox plugin (or extend the spineopt plugin) where they can simply drag and drop the necessary tools. We would then also provide a tutorial on how to use this feature.

I've already experimented with the idea but I have not been able to make it work yet. Though I can show a picture of how it could look like:

precompile

First you would trace the processes that you want to precompile. Then you run a separate precompile tool. Finally, you can use SpineOpt with the compiled image. The first two steps you only need to do once. The third step you can do as many times as you need results. Though you may need to do the first two steps again if you have made significant changes to your database (e.g. you are using different features that have not yet been precompiled).

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

No branches or pull requests

1 participant