Comments (5)
normal_join
is just a function that waits for a thread to complete its assigned reduction. So, as long as it terminates, normal_join
will eventually return too. Note that once normal_join
is called, the thread that called it doesn't have any more work to do.
from hvm.
Yes, that's exactly how I understood it. Sorry I wasn't specific enough in my description.
What I meant is that there is a fixed number of threads (workers) and they get some work "over the time" (but maybe this is another misunderstanding on my side of the source code and all the work is scheduled up-front in a fixed manner without any dependency on "time" unlike e.g. in work stealing scenarios) whether each thread gets to normal_join
there is a guarantee there is no more work to schedule.
from hvm.
The scheduler is very primitive see here. Each thread is only assigned a redex, and then it just waits. A task scheduler is one of the improvements we'd like to make if we manage to scale this project.
from hvm.
Then I'd recommend a work-stealing scheduler. Ideally one optimized for micro tasks (the state of the art is still Weave - you can easily skip the binary generation and use only the generated C code as Nim is just a clever transpiler).
from hvm.
Yep, something like that is very high on my dream wishlist!
from hvm.
Related Issues (20)
- Confused by testing infrastructure HOT 2
- Why distinguish FUN and CTR? HOT 2
- How far should `reduce` reduce? HOT 1
- Feedback on reqwest dependency HOT 5
- Rule flattening produces incorrect results on rules with nums
- Useless `let` produced by rule sanitization HOT 2
- Error building with Nix HOT 4
- HVM doesn't use normal order reduction. HOT 3
- [Question] Kubernetes deployment? HOT 5
- Automatic deforestation. HOT 2
- Wrong behaviour of the `str_sugar` function
- Guide is outdated HOT 10
- On the performance of radix sort. HOT 6
- [Regression] Incorrect result on `nqueens` program HOT 5
- Questions about Lambda operator and parallel evaluation. HOT 1
- Performance regression on HVM v1.0 HOT 8
- Crash on thread spawning HOT 3
- Programs with a lot of dups get stuck HOT 5
- Multithreaded sequential programs spend most their active time waiting HOT 4
- Attempting to `cargo install --path .` for the Summation.hvm example from the HVM guide readme fails HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hvm.