Compiling X10 to Java

  • Authors:
  • Mikio Takeuchi;Yuki Makino;Kiyokuni Kawachiya;Hiroshi Horii;Toyotaro Suzumura;Toshio Suganuma;Tamiya Onodera

  • Affiliations:
  • IBM Research - Tokyo, Shimo-tsuruma, Yamato, Kanagawa, Japan;IBM Yamato Software Development Laboratory, Shimo-tsuruma, Yamato, Kanagawa, Japan;IBM Research - Tokyo, Shimo-tsuruma, Yamato, Kanagawa, Japan;IBM Research - Tokyo, Shimo-tsuruma, Yamato, Kanagawa, Japan;IBM Research - Tokyo, Shimo-tsuruma, Yamato, Kanagawa, Japan;IBM Research - Tokyo, Shimo-tsuruma, Yamato, Kanagawa, Japan;IBM Research - Tokyo, Shimo-tsuruma, Yamato, Kanagawa, Japan

  • Venue:
  • Proceedings of the 2011 ACM SIGPLAN X10 Workshop
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

X10 is a new programming language for improving the software productivity in the multicore era by making parallel/distributed programming easier. X10 programs are compiled into C++ or Java source code, but X10 supports various features not supported directly in Java. To implement them efficiently in Java, new compilation techniques are needed. This paper discusses problems in translating X10-specific functions to Java and provides our solutions. By using appropriate implementations, sequential execution performance has been improved by about 5 times making it comparable to native Java. The parallel execution performance has also been improved and the gap from Java Fork/Join performance is about 3 times when run at a single place. Initial evaluation of distributed execution shows good scalability. Most of the results in this paper have already been incorporated in X10 release 2.1.2. Many of the compilation techniques described in this paper can be useful for implementing other programming languages targeted for Java or other managed environments.