Parallel programming is becoming an important cornerstone of general computing. In addition, type systems have significant impact on program analysis. In this paper, we demonstrate an automated type-based system that soundly detects parallelizability of sequential functional programs. Our type inference system discovers the parallelizability property of a sequential program in a modular fashion, by exploring a ring structure among the program's operators. It handles self-recursive functions with accumulating parameters, as well as a class of non-linear mutual-recursive functions. Programs whose types are inferred to be parallelizable can be automatically transformed to parallel code in a mutumorphic form - a succint model for parallel computation. Transforming into such a form is an important step towards constructing efficient data parallel programs.
Xu, D. N., Khoo, S. C., & Hu, Z. (2004). PType system: A featherweight parallelizability detector. Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 3302, 197–212. https://doi.org/10.1007/978-3-540-30477-7_14