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 Scheduler #72

Open
krestenkrab opened this issue Nov 28, 2013 · 1 comment
Open

Improve Scheduler #72

krestenkrab opened this issue Nov 28, 2013 · 1 comment

Comments

@krestenkrab
Copy link
Contributor

Repeatedly, the scheduler turns out to be a bottleneck in performance tests, and -S 1 (schedule everything on one thread) consistently yields better results than -S 2 (or more). I believe that we need a less greedy work-stealing algorithm, so that tasks will tend to stay on the same thread more often; because otherwise we will end up with too many cache misses between the cores.

There must be some simple way to utilize the excellent work by Doug Lea on efficient fork/join and taskstealing.

Mind you, this is really an issue with Kilim (https://github.com/kilim/kilim), who's scheduler we're using.

@pron
Copy link

pron commented Nov 28, 2013

Hi Kresten.
You might want to take a look at Quasar. It uses fork/join to schedule its fibers (and the actors running in fibers).

When I have some time I'd like to port erjang to use Quasar rather than Kilim to see the effect on performance. It should be promising, as we're constantly working on improving Quasar.

In any case, I can probably help you if you have any questions regarding FJ. For example, in a ring benchmark, FJ also performs best when using only one thread (and for a good reason).

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

2 participants