OpenCL

For those of you who have never heard of openCL, it stands for Open Computing Language and it’s a new language for programming parallel computing tasks executed on the GPU (graphic card). The goal is to use the very fast vector processing available in graphics card to render 3D scenes to do other (vector based) computations.

Rubyk is based on vector computing (it uses matrices extensively) and could greatly benefit from such a delegation to free the CPU for other tasks (audio and IO processing for example).

OpenCL is announced to be part of the next release of Mac OS X, “Snow Leopard”.

LLVM

Another interesting technology is LLVM (Low Level Virtual Machine), a bytecode compiler and runtime machine which includes very aggressive optimization technologies. Even if we cannot use LLVM directly, we could read some documents on the subject for inspiration.

Lua’s garbage collector

We need a reference counting based garbage collector to handle memory in a thread safe way. It would also help to avoid the problems on shut down. Since Lua is fast and has a built-in garbage collection system, we could get some inspiration from it.