Project Goals: This research project will explore technologies required for translating Ruby, a scripting language well known for its high productivity, to X10, a parallel programming language. Especially, we will study the following two topics: (1) a method to translate a Ruby script to an X10 program, and (2) extending X10 with Ruby's high-level features. The goal of this research is to develop a highly consumable parallel language for the Multicore era.
Design and Implementation of a DSL based on Ruby for Parallel Programming. by Tetsu Soh.
Master Thesis, Graduate School of Information Science and Technology, The University of Tokyo, January 2011.
Finding a high productivity and high efficient(HPHP) parallel programming language is a key to achieve popular parallel programming and it has been an active field of research for over 3 decades.
To achieve HPHP parallel programming language, we proposed to design a DSL based on Ruby, which is a popular sequential langauge among mainstream developers for its high productivity, and then translate the DSL to X10 language, which is a high performance parallel language, to perform parallel execution. Our proposed DSL can express concurrent and distributed programming with syntax that is consistent with Ruby. The DSL code is converted to X10 program by our code translator and is executed in parallel with some runtime libraries developed by us. The code translator and runtime libraries that we developed implement most of Ruby’s features and bridge the large gap between the Ruby and X10 language. Therefore, the DSL can keep the productivity of Ruby and achieve high performance. We employ HPC and Ruby benchmarks to evaluate the productivity and scalability of the DSL. The results show that our DSL has better or equal productivity than the X10 language and similar scalability to the X10 language.