The Fx Project

The Fx project at Carnegie Mellon investigates the issues involved in building tools for parallel computer systems. The goal is to eventually make parallel computer systems as easy to program as today's workstations.

The cornerstone of the project is Fx, a parallelizing Fortran compiler that runs on a number of parallel systems, including the Intel Paragon, Alpha workstation clusters, the IBM SP/2, the Cray T3D, and the Intel iWarp system.

The basic research approach is to work with real applications from scientific, signal, and image processing, learn what it takes to run these applications efficiently on parallel systems, and then incorporate these ideas into tools. For example, experience with real-time image processing applications revealed that, because of the relatively small image sizes, purely data parallel mappings would not be efficient. This led to the development of the first parallelizing compiler that integrates both task and data parallelism in a uniform framework.

General information Example Fx programs Distributed code
Fx overview fftc1.fx (1D complex FFT) CMU task parallel program suite
Fx papers fftc2.fx (2D complex FFT) Fast T3D array transpose library
Fx user guide fftc3.fx (3D complex FFT) Pipelined phase-rotation FFT
Fx people radar.fx (tracking radar)
hist.fx (image histogram)