Measuring Parallelism in Computation-Intensive Scientific/Engineering Applications
IEEE Transactions on Computers
Dependence graphs and compiler optimizations
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic discovery of parallelism: a tool and an experiment (extended abstract)
PPEALS '88 Proceedings of the ACM/SIGPLAN conference on Parallel programming: experience with applications, languages and systems
On data synchronization for multiprocessors
ISCA '89 Proceedings of the 16th annual international symposium on Computer architecture
Exploiting heterogeneous parallelism on a multithreaded multiprocessor
ICS '92 Proceedings of the 6th international conference on Supercomputing
The impact of synchronization and granularity on parallel systems
ISCA '90 Proceedings of the 17th annual international symposium on Computer Architecture
Hi-index | 0.01 |
The write after read/write synchronizations (the anti- and output-dependence constraints) inhibit the parallelism exhibited by Fortran programs. These constraints can be avoided by allocating storage for the values generated in a program dynamically, so that multiple values associated with the same variable can co-exist. The additional parallelism obtained by dynamically allocating storage for a subset of variables in a program, and the extra storage required for doing so, are scrutinized for a set of scientific/engineering applications.It is shown that on allocating storage dynamically for all scalar variables in the program, several hundred Fortran statements can be executed concurrently per cycle. On allocating storage dynamically for array elements too, the further increase in parallelism is less than a factor of ten. Finally, if storage is allocated statically for all variables, the available parallelism is usually under 10 Fortran-statements/cycle. The storage required for dynamic allocation can be two orders of magnitude above that required for the execution of the program on a conventional machine.