previous next up
Previous: Language front-end Next: Interpretive frame generator Up: C-3.1. Front processor

Program analyzer

Program analyzer can be used to obtain control flow and data flow information from the intermedi ate representation of the source program. The main purpose of it is to identify the parallelism in the source code.

The parallelism may be both task parallelism and data parallelism, possibly, the combination of them. A typical case is that the needed resource for data operation intensive computation is some where on the internet, the local host is most likely to send out a complete data parallel task, while waiting for the results, carrying on other tasks if possible.

Recognization of parallelism can be done by both explicit and implict programming components. For example, the integreted thread construct in Java language provides a simple yet efficent way for expressing task parallelism. The recent progress in HPF/HPC++ project help us understanding more about data parallel processing. Both of the above can be used as a fundation of the explicit parallelism recognation.

In the mean time, technique developed in parallelizing compiler, typically dependence analyse related methods, may be used here to explore implicit parallelism. Aside from this, certain patten matching methods may be used here to recognize some special framewhich will invoke pre-compiled computationial library functions. This will greatly improve the system effecency when interpreting the source code.



Xiaoming Li
Tue Feb 11 08:54:45 EST 1997