MATLAB is a popular dynamic array-based language commonly used by students, scientists and engineers who appreciate the interactive development style, the rich set of array operators, the extensive builtin library, and the fact that they do not have to declare static types. Even though these users like to program in MATLAB, their computations are often very compute-intensive and are better suited for emerging high performance computing systems. This paper reports on MIX10, a source-to-source compiler that automatically translates MATLAB programs to X10, a language designed for “Performance and Productivity at Scale”; thus, helping scientific programmers make better use of high performance computing systems.
There is a large semantic gap between the array-based dynamically-typed nature of MATLAB and the object-oriented, statically-typed, and high-level array abstractions of X10. This paper addresses the major challenges that must be overcome to produce sequential X10 code that is competitive with state-of-the-art static compilers for MATLAB which target more conventional imperative languages such as C and Fortran. Given that efficient basis, the paper then provides a translation for the MATLAB parfor construct that leverages the powerful concurrency constructs in X10.
The MIX10 compiler has been implemented using the McLab compiler tools, is open source, and is available both for compiler researchers and end-user MATLAB programmers. We have used the implementation to perform many empirical measurements on a set of 17 MATLAB benchmarks. We show that our best MIX10- generated code is significantly faster than the de facto Mathworks’ MATLAB system, and that our results are competitive with state-of-the-art static compilers that target C and Fortran. We also show the importance of finding the correct approach to representing the arrays in the generated X10 code, and the necessity of an ‘IntegerOkay’ analysis that determines which double variables can be safely represented as integers. Finally, we show that our X10-based handling of the MATLAB parfor greatly outperforms the de facto MATLAB implementation.
Thu 23 OctDisplayed time zone: Tijuana, Baja California change
15:30 - 17:00 | |||
15:30 22mTalk | Adaptive LL(*) Parsing: The Power of Dynamic Analysis OOPSLA Terence Parr University of San Francisco, Sam Harwell University of Texas at Austin, Kathleen Fisher Tufts University Link to publication File Attached | ||
15:52 22mTalk | Automated Migration of Build Scripts using Dynamic Analysis and Search-Based Refactoring OOPSLA Milos Gligoric University of Illinois at Urbana-Champaign, Wolfram Schulte Microsoft, Chandra Prasad Microsoft, Danny van Velzen Microsoft, Iman Narasamdya Microsoft, Ben Livshits Microsoft Research Link to publication | ||
16:15 22mTalk | Mix10: Compiling MATLAB to X10 for High Performance OOPSLA Link to publication | ||
16:37 22mTalk | Staged Parser Combinators for Efficient Data Processing OOPSLA Manohar Jonnalagedda EPFL, Switzerland, Thierry Coppey EPFL, Switzerland; Google, Sandro Stucki EPFL, Switzerland, Tiark Rompf Purdue & Oracle Labs, Martin Odersky Ecole Polytechnique Federale de Lausanne Link to publication |