Parallel Languages/Paradigms:
Charj: Compiler Support for Productive Parallel Programming

Charj is a new programming language which incorporates syntax, semantic analysis, and optimizations targeted at HPC code with its associated compiler.

With Charj, we aim to allow programmers to achieve the performance associated with carefully written, hand-optimized Charm++ applications, but with much less time and effort. In effect, we hope to combine the productivity that programmers experience when writing relatively simple, naive applications while enjoying performance that would normally require a much greater investment of time, effort, and expertise.

Charj compiler takes Charj codes as input and produces Charm++ interface (.ci) and C++ code (.C and .h) as an output.

Productivity benefits of Charj:
  • Enforcement of programming model semantics by the compiler (e.g. assignment of readonly variables)
  • Elimination of redundant program information
  • Improved messages for Charm-specific syntax errors
  • Clear syntactic distinction between remote and local operations
  • Optimizations can be done by compiler instead of by hand
People
Papers/Talks
12-44
2012
[PhD Thesis]
Compiler Support for Productive Message-Driven Parallel Programming [Thesis 2012]