Today the computer programmer must face a lot of optimization problems to
achieve one specific goal: To obtain the fastest possible code for one
specific machine.
We think that programming would be much easier if the programmers had only
to generate code that "describe", in a natural and logic way, the desired
algorithm rather than trying, ramdonly, several similar ways to describe
the same algorithm and
using only the one that gives the top performance in the machine that he is
testing his code. That's the Phoenix
Project goal: A set of tools that generate all the necessary program
transformations to a given algorithm description so that the code may
achieve top performance in a given machine without the necessity of
manual optmizations. In other words the programmer will spend his
time programming rather than dealing with machine specific characteristics.
Actually, we are dealing with two optmization problems:
- Achieve the maximum possible parallelism.
- Use the machine memory system in the most efective way.
These two areas are of growing inportance, since the supercomputers today
have a complex cache system; with several levels, each one with his own size
and speed; and, in several cases, more than one processor.
Phoenix Project
The work of all divisions is coordinated by
Edson T. Midorikawa,
the Phoenix Project Head.
Look also the Phoenix Papers avaliable
in this server.
Pedro Vaz Artigas
E-mail: artigas@lsi.usp.br
Laboratory of Integrated Systems
last modified: 09-nov-95