← Back to context

Comment by lliamander

2 years 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.