Guaranteeing good memory bounds for parallel programs
- 1 January 1996
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 22 (10) , 762-773
- https://doi.org/10.1109/32.544353
Abstract
The amount of memory required by a parallel program may be spectacularly larger then the memory required by an equivalent sequential program, particularly for programs that use recursion extensively. Since most parallel programs are nondeterministic in behavior, even when computing a deterministic result, parallel memory requirements may vary from run to run, even with the same data. Hence, parallel memory requirements may be both large (relative to memory requirements of an equivalent sequential program) and unpredictable.Assume that each parallel program has an underlying sequential execution order that may be used as a basis for predicting parallel memory requirements. We propose a simple restriction that is sufficient to ensure that any program that will run in n units of memory sequentially can run in mn units of memory on m processors, using a scheduling algorithm that is always within a factor of two of being optimal with respect to time.Any program can be transformed into one that satisfies the restriction, but some potential parallelism may be lost in the transformation. Alternatively, it is possible to define a parallel programming language in which only programs satisfying the restriction can be written.Keywords
This publication has 8 references indexed in Scilit:
- Resource requirements of dataflow programsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Scheduling multithreaded computations by work stealingPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Letter to the Editor ‘Parallelism and recursion in message passing libraries: An efficient methodology’, C. Rodríguez, F. de Sande, C. León and L. García, Concurrency: Practice and Experience 1999; 11(7):355–365Concurrency: Practice and Experience, 2000
- Provably efficient scheduling for languages with fine-grained parallelismPublished by Association for Computing Machinery (ACM) ,1995
- Speedup versus efficiency in parallel systemsIEEE Transactions on Computers, 1989
- Storage management in virtual tree machinesIEEE Transactions on Computers, 1988
- MULTILISP: a language for concurrent symbolic computationACM Transactions on Programming Languages and Systems, 1985
- Executing functional programs on a virtual tree of processorsPublished by Association for Computing Machinery (ACM) ,1981