Why the name "Fx"?

There are two explanations for the name "Fx": On one hand, the "x" emphasizes that the language and directives may still undergo further development, and the "F" emphasizes how irrelevant details of the base language (Fortran) are. On the other hand, efficient translation of programs for parallel machines often brings to mind the use of special effects.

Why Fortran?

There are two reasons: The first reason is acceptance by the user community. A main goal of the project is to write a tool that other people can use. Fortran is still the main language of scientist and engineers. Coupled with the growing interest in the emerging High Performance Fortran (HPF) standard, a Fortran interface allows us to interest the widest group of users.

The second reason is performance. Because Fortran array references are explicit (i.e., no pointers), there is a great deal of information available at compile time. We can use this information to generate surprisingly efficient parallel code. For example, an Fx matrix multiply program running on iWarp spends less than 10% of its time doing communication. Similarly, an Fx 2D fast Fourier transform, a traditionally hard problem to parallelize because it requires two complete exchange steps, spends less than 20% of its time doing communication.