Code Generation for a Functional Language Targeted to a Parallel Multithreaded Machine

The services of parallel machines are more and more required. This tendency is driven by the high code volume of developed applications as well as the complexity of the tasks to be executed by those applications. Facing this reality, researchers are striving to find new ways and methods to enhance the applications performance. As functional languages are implicitly parallel, a possible strategy is to construct a compiler for a functional language targeted towards parallel machines. An interesting functional language is pH. This language is equipped with a lenient evaluation mechanism which improves the parallelism.

In this thesis, we are going to describe the code generator we implemented for a pH compiler targeted towards the EARTH parallel architecture. The code generator we developed is written in C; however, the generated code is written in the EARTH Threaded-C language.

To validate our code generator, we executed a number of test programs covering most of the constructs used by the source language. In addition, we studied the performance of some of the test programs. This allowed us to analyze the performance gains experimented with different processor configurations and to evaluate the quantity of parallelism found in those programs.