Hacker News new | ask | show | jobs
by lliamander 1181 days ago
How does the compiler know which parts of the code can be run in parallel?

My understanding is that while parallelism (actually executing instructions simultaneously) is a property of the runtime, it depends upon concurrency (the separation of computations as independent) which is always something that has to be specified in the program source code.

Erlang has a similar property of "scaling with core-count for free" provided you write your program with a prodigious use of processes (which Erlang makes very easy and idiomatic). How is it that HVM is able to identify independent computations?

I admit to being only passingly familiar with Haskell-style FP, so perhaps the answer to my question is obvious.