2 ms·
Isn't this what Erlang/Elixir BEAM is all about?
by josefrichter 1y ago
Isn't this what Erlang/Elixir BEAM is all about?
- ameliaquining 1y agoHow so? AFAIK BEAM is pretty much agnostic between work-stealing and work-sharding* architectures. * I prefer the term "work-sharding" over "thread-per-core", because work-stealing architectures usually also use one thread per core, so it tends to confuse people.
- toast0 1y agoThe BEAM schedulers are work stealing, and there's no way to bind a process to a scheduler (or at least, there's no publically documented way in upstream OTP). You can adjust some settings for how schedulers work with respect to balancing load, but afaik, work stealing cannot be disabled... when a scheduler has no runnable processes, it will look at the runqueue of another scheduler and steal a runnable process if any are availabke (in priority order). It does default to one 'cpu scheduler' per cpu thread, plus some i/o schedulers and maybe some dirty schedulers.
- rapsey 1y agoNo not at all. Seastar framework and others like it is what this is about.