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

(improvement) Allow for concurrent multi-threaded building of Runes #320

Closed
Nathan13888 opened this issue Sep 19, 2021 · 2 comments
Closed
Labels
category - performance Something that impacts runtime performance.

Comments

@Nathan13888
Copy link

With some Rune files using models with many labels, the build time seems to almost exponentially increase in time complexity.

Currently rune build seems to be single-threaded. Making the build process multi-threaded would allow leveraging high core count systems (like those found in servers).

Not sure of the exact solution as I can't find much information about multi-threaded builds for wasm, so it may be less trivial than it seems.

If there is a solution for this, perhaps a new flag like -c <threads> or -t <threads> would be intuitive for specifying the number of threads to use.

@f0rodo f0rodo added the category - performance Something that impacts runtime performance. label Sep 19, 2021
@Michael-F-Bryan
Copy link
Contributor

I think you might be running into #177 (comment) here.

The issue isn't that we don't build Runes in parallel (parallelism gives linear speedups while this seems to be quadratic/exponential, anyway) but that the code we generate hits an edge case in the Rust compiler which causes pathological build times.

This should be resolved by #310 because you'll be passing a single (albeit long) string literal to the label proc block.

@Michael-F-Bryan
Copy link
Contributor

Closing as a duplicate of #177.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category - performance Something that impacts runtime performance.
Projects
None yet
Development

No branches or pull requests

3 participants