Experience Report: Erlang in Acoustic Ray Tracing [pdf]
homepage.cs.uri.edu
homepage.cs.uri.edu
The authors claim that their pthread implementation scales better than Erlang. This is most confusing as I suspect them to have made design errors in their Erlang system. They wrote they "ported" it. Erlang is a SSA based FP lanugage specifically designed for soft real-timeness and scaling out of the box. There are even works currently to get it running under hard realtime constraints [2]. While this is not exactly targeting high performance it is still important to point that out. If performance is so crucial a fortran based implementation might be better probably.
Thirdly, I suspect that the portation of their system doesn't take care of language pitfalls like proper tail recursion etc. which would explain the problem in scaling. (See page 1 section 3)
Other thoughts in bullet version:
- Pseudocode is iterative style, Erlang is a FP
- "variance was negligible" -> Error bars in Graphs would tell us that.
- Point 6.1 actually gives me the impression that a implementation in C++ would be preferrable compared to Erlang due to the emphasis on performance
- I think the memory issue on the last page is the key why erlang performed so badly... "multiple invocations of the GC"
Of course regarding the memory footprint I have to agree this is clearly a disadvantage for Erlang compared to manually tuned memory management.
Comments? :)
References:
[1] High Performance Computing in Erlang, http://portal.acm.org/citation.cfm?id=1411273.1411281
[2] Tworards Hards Realtime Erlang (HARTE) http://www.erlang.se/workshop/2007/proceedings/05nicosi.pdf