High-level Languages
Programmers' productivity is of vital importance in computing today, which has wide-ranging economic and scientific consequences. In the domain of high-performance computing the productivity problem is an especially difficult one to solve. A move towards higher-level scientific languages, such as MATLAB and R, has the potential to ameliorate the situation as long as compiler techniques can ensure acceptable performance—something that has remained elusive so far. With the ubiquity of multi-core processors, and the increasing popularity of GPUs as general purpose co-processors, the issue of productivity is no longer limited to the traditional high-performance computing applications. It is time for the lessons learned in high-performance and parallel computing to be applied to a large class of applications and problem domains. This is the primary motivation behing my research on optimizing high-level languages.
Related publications:
-
Arun Chauhan and Pushkar Ratnalikar. Automatic Discovery of Multi-level Parallelism in MATLAB. Presented at the First Workshop on High Performance Scripting Languages, February 2015. Co-located with the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP). No proceedings.
[Extended abstract] -
Pushkar Ratnalikar and Arun Chauhan. Automatic Parallelism through Macro Dataflow in MATLAB. In Proceedings of the 27th International Workshop on Languages and Compilers for Parallel Computing (LCPC), 2014.
[Article DOI] -
Pushkar Ratnalikar and Arun Chauhan. Automatic Parallelism through Macro Dataflow in High-level Array Languages. In Proceedings of the 23rd International Conference on Parallel Architectures and Compilation Techniques (PACT), 2014. Short paper.
[Article DOI] -
Eric Holk, Milinda Pathirage, Arun Chauhan, Andrew Lumsdaine and Nicholas D. Matsakis. GPU Programming in Rust: Implementing High-level Abstractions in a Systems-level Language. In 18th International Workshop on High-level Parallel Programming Models and Supporting Environments (HIPS), 2013. Held in conjunction with the 27th IEEE International Parallel and Distributed Processing Symposium (IPDPS).
[Full text] -
Uday Pitambare, Arun Chauhan and Saurabh Malviya. Just-in-time Acceleration of JavaScript. Technical Report TR706, School of Informatics and Computing, Indiana University, Bloomington, Indiana, USA, February 2013.
[Full text] -
Chun-Yu Shei, Pushkar Ratnalikar and Arun Chauhan. Automating GPU Computing in MATLAB. In Proceedings of the International Conference on Supercomputing (ICS), pages 245–254, 2011.
[Article DOI] -
Chun-Yu Shei, Adarsh Yoga, Madhav Ramesh and Arun Chauhan. MATLAB Parallelization through Scalarization. In Proceedings of the 15th Workshop on the Interaction between Compilers and Computer Architectures (INTERACT), pages 44–53, 2011. Held in conjunction with the 17th IEEE International Symposium on High Performance Computer Architecture (HPCA).
[Article DOI] -
Arun Chauhan and Chun-Yu Shei. Static Reuse Distances for Locality-based Optimizations in MATLAB. In Proceedings of the 24th ACM International Conference on Supercomputing (ICS), 2010.
[Article DOI] -
Chun-Yu Shei, Arun Chauhan and Sidney Shaw. Compile-time Disambiguation of MATLAB Types through Concrete Interpretation with Automatic Run-time Fallback. In Proceedings of the 16th annual IEEE International Conference on High Performance Computing (HiPC), 2009.
[Article DOI] -
Andrew Keep and Arun Chauhan. Concrete Partial Evaluation in Ruby. In Fourth IEEE International Conference on eScience, pages 346–347, 2008.
[Article DOI] - Daniel McFarlin and Arun Chauhan. Library Function Selection in Compiling Octave. In Proceedings of the Workshop on Performance Optimization for High-Level Languages and Libraries (POHLL), held in conjunction with the 21st IEEE Parallel and Distributed Processing Symposium (IPDPS), March 2007. [Article DOI]
-
Ken Kennedy and Bradley Broom and Arun Chauhan and Robert J. Fowler and John Garvin and Charles Koelbel and Cheryl McCosh and John Mellor-Crummey. Telescoping Languages: A System for Automatic Generation of Domain Languages. Proceedings of the IEEE, 93(2), pages 387–408, February 2005.
[Article DOI, Full text] -
Arun Chauhan and Ken Kennedy. Slice-hoisting for Array-size Inference in MATLAB. In Proceedings of the 16th International Workshop on Languages and Compilers for Parallel Computing (LCPC), October 2003.
[Article DOI] -
Arun Chauhan and Ken Kennedy. Reducing and Vectorizing Procedures for Telescoping Languages. International Journal of Parallel Programming, 30(4), pages 291–315, August 2002.
[Article DOI] -
Arun Chauhan and Ken Kennedy. Optimizing Strategies for Telescoping Languages: Procedure Strength Reduction and Procedure Vectorization. In Proceedings of the 15th ACM International Conference on Supercomputing (ICS), pages 92–101, New York, NY, USA, June 2001. ACM Press.
[Article DOI]
Journal | Book chapter |
Related open-source software releases:
- High-level Languages Compiler infrastructure, written in Ruby.
- CUDA-based GPU compression for lossless LZSS compression.
- GPU extension for Mozilla Rust language, using the LLVM PTX backend.
- A JIT compiler for supporting GPU computations in JavaScript for Firefox using LLVM PTX backend; this works with content scripts, but requires installing a Firefox extension.