3 ms·
That's true, but when I read that sentence I place the emphasis on should. I see it as aspirational. A better way to phrase this would perhaps would be to say
by timClicks 10y ago
That's true, but when I read that sentence I place the emphasis on should. I see it as aspirational.
A better way to phrase this would perhaps would be to say that perfectly preemptive scheduler should be able to keep all cores hot. Blocking of one Erlang process should not halt the program's progress.
As Erlang requires message passing overhead by design, it will never see perfectly linear scaling behaviour. Still, its scheduler, its GC model and M:N threading implementation are extremely robust and can be relied upon to write extremely reliable networked services.
- nextos 10y agoI also interpret it this way. If you recall the famous Wide Finder benchmark for parallel programming by Tim Bray, back in 2007 as well [1], those were essentially the results. Languages like Erlang or JoCaml (Ocaml plus joint calculus), whose models are inherently parallel yield simple and fast solutions. Other languages too, but they require a lot of expert optimization and ugly code. [1] https://www.tbray.org/ongoing/When/200x/2007/09/20/Wide-Finder https://www.tbray.org/ongoing/When/200x/2007/09/20/Wide-Find...
- chrisseaton 10y ago> That's true, but when I read that sentence I place the emphasis on should. I see it as aspirational. Despite all the arguing I'm taking part in, this is probably the true and reasonable explanation. I read 'should' as 'if it doesn't there's a problem'.
- inopinatus 10y agoYes, indeed, don't forget his very next line is "Is this true? Almost. It’s early still, but we’re optimistic (Wildly optimistic; I haven’t seen this kind of optimism for the last 20 years!)."
- amelius 10y ago> As Erlang requires message passing overhead by design That's Erlang's main weakness. For parallel code, structurally shared data is immensely useful for processes running in the same address space. With Erlang, you have to give that up. OTOH, not having this possibility makes distributing processes to other nodes a lot simpler.