STACS 1986: STACS 86 pp 73-86

# Input sensitive, optimal parallel randomized algorithms for addition and identification

• Paul G. Spirakis
Contributed Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 210)

## Abstract

Although many sophisticated parallel algorithms now exist, it is not at all clear if any of them is sensitive to properties of the input which can be determined only at run-time. For example, in the case of parallel addition in shared memory models, we intuitively understand that we should not add those inputs whose value is zero. A technique which exploits this idea, may beat the general lower bound for addition if the count of nonzero operants is much smaller than the numbers to be added. In this paper, we device such algorithms for two fundamental problems of parallel computation. Our model of computation is the CRCW PRAM. We first provide a randomized algorithm for parallel addition which never errs and computes the result in 0 (logm) expected parallel time, where m is the count of nonzero entries among the n numbersto be added. This algorithm uses 0 (m) shared space. We then use this result to solve the following problem of processor identification : n processors are given, each keeping either a 0 or an 1. We want each processor at the end, to know which are the processors with the 1's. Our solution is randomized and sensitive to the number 10 of the 1's. It takes 0 (min { m, n logm/logn}) expected parallel time and only 0 (m) shared memory, capable of holding only 0(n) size numbers. Combinatorial techniques of Erdos and Renyi were helpful to a part of this second result.

All our techniques enjoy the following properties : (1) They never produce an erroneous answer (2) if T is the actual parallel time and E (T) its expected value, then Prob {T>k.E (T)}⩽n−C where k is arbitrary and c>1 is linear on k and can be specified by the algorithm implementer. (3) m is initially unknown to our algorithms. They produce an accurate estimate of it.

## References

1. (CLC, 83).
Chin, F., J. Lam and I. Chen, "Oprtimal Parallel Algorithms for the Connected Components Problem,"CACM83.Google Scholar
2. (C, 80).
Cook, S., "Towards a Complexity Theory of Synchronous Parallel Computations", Specker Symp. on Logic and Algorithms, Zurich, Feb.5–11, 1980.Google Scholar
3. (DNS, 81).
Dekel, E., D. Nassimi and S. Sahni, "Parallel Matrix and Graph Algorithms, "SIAM J. Comp. 10 (4) 1981.Google Scholar
4. (ER, 60).
Erdos, P. and A. Renyi, "On the Evolution of Random Graphs," The Art of Counting, J. Spencer Editor, MIT Press, 1973.Google Scholar
5. (ER, 63).
Erdos, P. and A. Renyi, "On two problems of information theory"Mayar Tud. Akad. Mat. Kut. Int. Kozl. 8 (1963); also in The Art of Counting, J. Spencer, Editor, MIT Press, 1973.Google Scholar
6. (G, 78).
Goldschlager, L., "A Unified Approach to Models of Synchronous Parallel Machines", Proc. 11 th sub STOC, May 1978Google Scholar
7. (G, 77).
Goldshlager, L., "Synchronous Parallel Computation", Ph. D. thesis, Univ. of Toronto, C.S Dept., 1977.Google Scholar
8. (GLR, 80).
Gottlieb, A., B Lubachevsky and L. Rudolph, "Basic Techniques for the efficient coordination of very large numbers of cooperating sequential processors, "Courant Inst. TR No. 028, Dec. 1980.Google Scholar
9. (HCS, 79).
Hirschberg, D., A. Chandra, D. Sarwate, "Computing Connected Components on Parallel Computers, "CACM 22(8) Aug.1979.Google Scholar
10. (K, 82).
Kucera L., "Parallel Computation and Conflicts in Memory Access", Info. Processing Letters Vol. 14, April 1982.Google Scholar
11. (MV, 83).
Melhorn, K., and U. Vishkin, "Randomized and deterministic simulation of PRAMs by parallel machines with restricted granularity of parallel memories," 9th Workshop on Graph Theoretic Concepts in Computer Science, Univ. Usnabruck, June 1983.Google Scholar
12. (R, 82).
Reif, J., "Symmetric Complementation," 14th STOC, San Francisco, CA, May 1982.Google Scholar
13. (R, 82b).
Reif, J., "On the Power of Probabilistic Choice in synchronous Parallel Computations," 9th ICALP, Aarchus, Denmark, July 1982.Google Scholar
14. (Ru, 79).
Ruzzo, W., "On Uniform Circuit Complexity", Proc. 20th FOCS, Oct. 1979.Google Scholar
15. (SJ, 81).
Savage, C. and J. Ja'ja', "Fast, Efficient Parallel Algorithms for Some Graph Problems", SIAM J. Comp. 10 (4), Nov. 1981.Google Scholar
16. (SV, 80).
Shiloach, Y. and U. Vishkin, "Finding the Maximum Merging and Sorting in a Parallel Computation Model", Tech. Rep. Technion Israel, Comp. Sci., March 1980.Google Scholar
17. (SV, 82).
Shiloah, Y. and U. Vishkin. "An 0 (logn) Parallel Connectivity Algorithm", J. of Algorithms, 1982.Google Scholar
18. (S, 80).
Schwartz, J.T., "Ultracomputers", ACM TOPLAS 1980, pp. 484–521.Google Scholar
19. (UW, 84).
Upfal, E. and A. Wigderson, "How to share memory in a distributed system", 25th FOCS, Proceedings, October 1984.Google Scholar
20. (V. 83a)
Vishkin, U., "A parallel-design, distributed-implementation general purpose parallel computer", to appear, J. TCS.Google Scholar
21. (V, 83b).
Vishkin, U., "Randomized speeds-ups in parallel computation", 16th STOC, April 1984, Proceedings.Google Scholar
22. (U. 84)
Upfal, E., "A probabilistic relation between desirable and feasible models of parallel computation", 16th ACM STOC 1984, Proceedings.Google Scholar
23. (W, 79).
Wyllie, J., "The Complexity of Parallel Computation", Ph. D. Thesis, Cornell University, 1979.Google Scholar