3 ms·
I don't see the connection between the Halting Problem and automatic parallelization. The Halting Problem itself plays no noteworthy role in practical algorithm
by jonathanstrange 6y ago
I don't see the connection between the Halting Problem and automatic parallelization. The Halting Problem itself plays no noteworthy role in practical algorithm verification anyway because in practice halting is not proved for any input program, but rather for only some very specific inputs.
Theoretically speaking, parallel computation makes proving that a computation halts sometimes unnecessary. For example, a parallel OR boolean comparison may succeed, while the corresponding sequential comparison would lead to an infinite loop.
Is there another connection? Isn't the problem with parallel computation rather that there is no unique description of it? AFAIK, e.g. derivations of the untyped lambda calculus describe any kind of sequential computation, just like a Turing Machine would do. In contrast, the pi calculus does not offer this uniqueness. Or is there such a description for any parallel computation?
Anyway, maybe someone else can explain the connection between the Halting Problem and parallel computation, if there is one, because it's not clear to me from the article.
- ivanbakel 6y agoThe actual Halting-ness of the program (or subsections of the program) seems to be a nice bonus of the language's actual goal: accurate worst-case estimation of running time for all computations. That then feeds into the automatic parallelisation, because it helps the compiler to decide how to parallelise different computations against each other based on their estimated running times. The fact that the language is not Turing-complete is a necessary consequence of being able to accurately determine a worst-case execution time for some code.