MISO: An intermediate language to express parallel and dependable programs
Alcides Fonseca, Raul Barbosa

TL;DR
MISO is an intermediate language designed to explicitly represent parallelism and fault tolerance in programs, enabling better optimization and reliability on multi-core processors.
Contribution
The paper introduces MISO, a novel intermediate language that captures parallelism and fault tolerance, facilitating compiler optimizations and automatic redundancy addition.
Findings
MISO effectively expresses parallel and sequential programs.
It enables backend compilers to optimize parallel execution.
MISO supports automatic redundancy for fault tolerance.
Abstract
One way to write fast programs is to explore the potential parallelism and take advantage of the high number of cores available in microprocessors. This can be achieved by manually specifying which code executes on which thread, by using compiler parallelization hints (such as OpenMP or Cilk), or by using a parallel programming language (such as X10, Chapel or Aeminium. Regardless of the approach, all of these programs are compiled to an intermediate lower-level language that is sequential, thus preventing the backend compiler from optimizing the program and observing its parallel nature. This paper presents MISO, an intermediate language that expresses the parallel nature of programs and that can be targeted by front-end compilers. The language defines 'cells', which are composed by a state and a transition function from one state to the next. This language can express both sequential…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Embedded Systems Design Techniques · Distributed and Parallel Computing Systems
