Ikra: a Ruby dialect for GPGPU

Ikra is a Russian word that means roe of the salmon, which is also known as

Ikra is a Russian word that means roe of the salmon, which is also known as “rubies of the sea” in Japan. (Picture is by baron valium, CC BY-SA 2.0)

Ikra is an implementation of Ruby for GPGPU and other massively parallel processors. In Ikra, the programmers can write parallel programs by exploiting higher-order operations over an array compatible class in Ruby. The Ikra pre-processor then compiles those operations into back-end languages (e.g., CUDA), and executes on parallel processors such as GPU. Our research focus is to provide a quick prototyping platform for highly-parallel programs and for experimenting various application- and hardware-specific optimization techniques.

 

People

Publications

  • Matthias Springer and Hidehiko Masuhara, Object Support in an Array-based GPGPU Extension for Ruby
    Proceedings of the 3rd ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming (ARRAY’16), co-located with PLDI’16, June 2016
  • Matthias Springer and Hidehiko Masuhara, Ikra: Leveraging Object-oriented Abstractions in a Ruby-to-CUDA JIT Translator
    18th JSSST Workshop on Programming and Programming Languages, poster presentation, March 2016
  • Hidehiko Masuhara, and Yusuke Nishiguchi, A Data-Parallel Extension to Ruby for GPGPU
    9th Workshop on Reflection, AOP and Meta-Data for Software Evolution(RAM-SE’12), June 2012

Download