Lua jit tests faster than Julia for Stock Prediction Engine
I started testing Julia as a possible alternative because Julia advocates claimed the interpreter loop was nearly as fast a C and it was similar in concept to Python which I love but which was too slow for our application. I recently ran across a blog entry mentioning a new Lua Jit. I found it intriguing because Lua did quite well during our last round of tests.
Performance comparison Julia versus Lua Jit
Relative Execution Time. Lua Jit as baseline – lower is better | ||||
Operation | Lua52 | LuaJit | Julia | Julia Typed Array |
Parse File into Data Frame | 2.42 | 1.0 | 5.64 | 5.64 |
Compute SMA(14) | 2.81 | 1.0 | 6.87 | 0.70 |
Compute SMA(600) | 33.32 | 1.0 | 80.00 | 1.30 |
Compute SMA_slice(14) | 2.42 | 1.0 | 11.87 | 1.83 |
Compute SMA_slice(600) | 33.32 | 1.0 | 15.52 | 5.90 |
Did not implement slice in Lua so re-used the timing from nested loop version. Response times are in seconds. |
Only 1 tested Julia operation was faster than Lua JIT
The only function where Julia out performed Lua Jit was in the SMA(14) all other items tested were slower. I think the reason it did better in this instance is that the SMA function must allocate a new array with 71K rows to store the results. In Julia you can do this as a typed Array of float. In Lua this is done as an append to list so it is allocating memory in little pieces. In the SMA(600) the Lua jit was faster again because it is doing more work compute in a tight loop relative to the memory allocation overhead.
Continue reading “Lua jit tests faster than Julia for Stock Prediction Engine”