Sunday, 3 January 2010

High-performance parallelism with HLVM

Our open source HLVM project recently reached a major milestone with new support for high-performance shared-memory parallel programming. This is a major advance because it places HLVM among the world's fastest high-level language implementations.

The previous HLVM implementation had demonstrated the proof of concept using a stop-the-world mark-sweep garbage collector. This new release optimizes that robust foundation by carrying thread-local data in registers in order to provide excellent performance.

The following benchmark results show HLVM beating OCaml on many serial benchmarks on x86 despite the overheads of HLVM's new multicore-capable garbage collector:

HLVM is over 2× faster than OCaml on average over these results and 4× faster on the floating-point Fibonacci function.

4 comments:

phil tomson said...

I've downloaded and built HLVM, where does one find the benchmark code?

Also, when trying to build the calculator example I get:
File "calc.ml", line 2, characters 0-9:
Error: Unbound module Expr

phil tomson said...

Ah, I see the benchmark code is in test.ml

Flying Frog Consultancy Ltd. said...

@Phil

The benchmark code is in "test.ml" and is run simply by running the "./hlvm" program.

I have fixed the calculator example for you (do "svn up").

jay paul said...

Nice post! Can’t wait for the next one. Keep stuff like this coming.

HP - Split 2-in-1 13.3" Touch-Screen Laptop - 4GB Memory - 128GB Solid State Drive - Modern Silver

HP - ENVY Touchsmart 14" Refurbished Touch-Screen Laptop - 8GB Memory - 500GB Hard Drive - Midnight Black