Open Source Software Releases

In the course of my research, my students and I have developed several pieces of software.

  1. RubyWrite: Tree-writing domain-specific language (DSL) embedded within Ruby, with a special mini-DSL for writing unparsers, and a framework for data-flow analysis.
    RubyWrite git repository
  2. HLLC / ParaM: Ruby-based unified compiler infrastructure for MATLAB and R, including parsing, unparsing, type inference, C++ code generation, data flow analysis, dependence analysis, SSA / out-of-SSA, GPU code generation, auto-parallelization, and more.
    HLLC / ParaM git repository
  3. CUDA-Compression: A GPU-based LZSS compression algorithm, highly tuned for NVIDIA GPGPUs and for streaming data, leveraging the respective strengths of CPUs and GPUs together.
    CUDA-Compression git repository
  4. JSonGPU: An embedded DSL for enabling GPU computing within JavaScript, in content script, with an accompanying LLVM-based just-in-time compiler for PTX code generation.
    JSonGPU git repository
  5. RustGPU: An embedded DSL for GPU computing in Rust, allowing the use of Rust idioms within minimal overheads, with an LLVM-based PTX code generator.
    RustGPU git repository
  6. MPI2ShM: A ROSE-based compiler for automatically transforming MPI code in C/C++ to optimized shared memory code (still using processes, so your thread-unsafe libraries still work!), reducing buffer copies to zero, whenever possible.
    MPI-SharedMem git repository
Arun Chauhan / Computer Science / Indiana University