Future Parallel Computers pp 1-34 | Cite as

# Parallelism issues in multi — Style computers

## Abstract

Future parallel computers will be characterized at least by: i) high parallelism and scalability exploiting VLSI technology, and ii) efficient and reliable support to logic / /functional/ object oriented languages. Massive parallelism machines with regular architectures seem to represent the key for such computers. Here we study the features of high level, concurrent machine languages for parallel computers able to support a large variety of languages and applications (multi-style machines). The various concurrency approaches (imperative, logic, functional, data-flow) are analyzed in order to understand their aptitude for multi-style machines. The concurrency issues taken into account are communication and synchronization, nondeterminism, parallelism exploitation, fault tolerance, and programming environment tools.

## Key words and phrases

Multi-style machines massive parallelism architectures high level concurrent languages communicating processes concurrent logic models parallelism in functional languages data-flow## Preview

Unable to display preview. Download preview PDF.

## References

- [Ackerman 79]W. B. Ackerman, "Data Flow Languages". In
*Proc. of AFIPS, NCC 79*, pp. 1087–1095, 1979.Google Scholar - [Ada 83]DOD, "Reference Manual for the Ada Programming Language". ANSI MIL-STD 1815A, 1983Google Scholar
- [Andrews 81]G.R. Andrews, "Synchronizing Resources".
*ACM TOPLAS*, vol. 3, N. 4, PP. 405–430, October 1981.Google Scholar - [Andrews 83]G.R. Andrews and F.B. Schneider, "Concepts and Notations of Concurrent Programming".
*ACM Computing Surveys*, vol. 15, n. 1, pp. 3–43, March 1983.Google Scholar - [Apt 80]K.R. Apt, N. Francez and W.P. de Roever, "A Proof System for Communicating Sequential Processes".
*ACM TOPLAS*, vol. 2, n. 3, pp. 359–385, July 1980.Google Scholar - [Apt 83]K.R. Apt and E-R. Olderog, "Proof Rules and Transformations for Dealing with Fairness",
*Science of Computer Programming*, vol. 3, pp. 65–100, 1983.Google Scholar - [Ashcroft 77]E.A. Ashcroft and W.W. Wadge" "Lucid, a Nonprocedural Language with Iteration".
*CACM*, vol. 7, n. 20, pp. 519–526, July 1977.Google Scholar - [Astesiano 81]E. Astesiano and E. Zucca: "Semantics of CSP Via Translation into CCS", CNET Report n. 22, Institute of Math., Univ. of Genova., 1981.Google Scholar
- [Attardi 86]G. Attardi, Lecture Notes for the ESPRIT Summer School on Future Parallel Computers, Pisa, June 1986Google Scholar
- [Baiardi 81a]F. Baiardi, A. Fantechi, M. Vanneschi, "Language Constructs for a Robust Distributed Environment", Int. Rep., Dept. of Comp. Science S-81-9, Univ. of Pisa, May 1981.Google Scholar
- [Baiardi 81b]F. Baiardi, A. Fantechi, A. Tomasi, M. Vanneschi, "Mechanisms for a Robust Multiprocessing Environment in the MuTEAM Kernel",
*Proc. of 11th Fault Tolerant Computing Symp*, Portland (USA), June 1981, pp. 20–24.Google Scholar - [Baiardi 84a]F. Baiardi, L. Ricci, M. Vanneschi, "Static Checking of Interprocess Communication in ECSP",
*ACM SIGPLAN Symposium on Compiler Construction*, Montreal, June 1984.Google Scholar - [Baiardi 84b]F. Baiardi, A. Fantechi, A. Tomasi, M. Vanneschi, "Distributed Implementation of Nested Communicating Processes and Termination",
*13th Int. Conf. on Parallel Processing*, Aug. 1984.Google Scholar - [Baiardi 84c]F. Baiardi, L. Ricci, A. Tomasi, M. Vanneschi, "Structuring processes for a cooperative approach to fault-tolerant distributed software".
*Proc. of 4th Symp. on Reliability in Distributed Software and Database Systems*, Oct. 1984.Google Scholar - [Baiardi 86]F. Baiardi, N. De Francesco, G. Vaglini, "Development of a Debugger for a Concurrent Language".
*IEEE Trans. on Software Eng.*, April 1986.Google Scholar - [Bernstein 80]A. J. Bernstein, "Output Guards and Nondeterminism in Communicating Sequential Processes",
*ACM TOPLAS*, vol. n. 2, pp. 234–238, April 1980.Google Scholar - [Bjørner 79]D. Bjørner and C. B. Jones (eds.), "The Vienna Development Method: The Meta-Language".
*Lecture Notes in Comp. Sc.*, 61, Springer-Verlag 1979.Google Scholar - [Brauer 80]W. Brauer (ed.), "Net Theory and Applications".
*Lecture Notes in Comp. SC.*, 84, Springer-Verlag, 1980.Google Scholar - [Brookes 84]S.D. Brookes, C.A.R. Hoare and A.W. Roscoe, "A Theory of Communicating Sequential Processes".
*JACM*, vol. 31, n. 3, pp. 560–599, July 1984.Google Scholar - [Broy 82]M. Broy, "A Fixed Point Approach to Applicative Multiprogramming". In M. Broy and G. Schmidt (eds.):
*Theoretical Foundations of Programming Methodology*, pp. 565–623, D. Reidel, 1982.Google Scholar - [Broy 83]M. Broy, "Fixed Point Theory for Communication and Concurrency". In D. Bjørner (ed.):
*IFIP TC2 Working Conference on Formal Description of Programming Concepts*, Garmisch, June 1982, pp. 125–147, North-Holland 1983.Google Scholar - [Broy 85]M. Broy, "Extensional Behaviour of Concurrent, Nondeterministic Communicating Systems". NATO ASI Series, vol. F14,
*Control Flow and Data-Flow: Concepts of Distributed Programming*(M. Broy ed.), Springer Verlag, 1985.Google Scholar - [Bryant 78]R.E. Bryant, J.B. Dennis, "Concurrent Programming", MIT Report, Cambridge, Mass., 1978.Google Scholar
- [Candido 84]G. Candido, R. Di Giovanni, "Communicating processes with data-flow behaviour". Graduation Thesis, Dept. of Comp. Sciences, Univ. of Pisa, 1984 (in Italian).Google Scholar
- [Clark 84]K. Clark, S. Gregory, "Parlog: Parallel Programming in Logic". Res. Rep. DOC/84, Imperial College, London.Google Scholar
- [Denning 76]P. J. Denning, "Fault tolerant operating system",
*ACM Computing Surveys*, vol. 8, n. 4, dicembre 1976, pp. 359–389.Google Scholar - [Dennis 85],J.B. Dennis, "Data-flow computation". Nato ASI Series, vol. F14,
*Control Flow and Data Flow: Concepts of Distributed Programming*(M. Broy ed.), Springer Verlag, 1985.Google Scholar - [Dijkstra 75]E.W. Dijkstra, "Guarded Commands, Nondeterminacy, and Formal Derivations of Programs".
*CACM*, vol. 18, n. 8, pp. 453–457, Aug. 1975.Google Scholar - [Feldmann 79]J.A. Feldmann, "High Level Programming Language for Distributed Computing",
*CACM*, vol.22, n.6, June 1979, pp. 353–368.Google Scholar - [Filman 84]R.E. Filman and D.P. Friedman, "
*Coordinated Computing — Tools and Techniques for Distributed Software*", McGraw-Hill 1984.Google Scholar - [Francez 79]N. Francez, C.A.R. Hoare, D. J. Lehmann, and W.P. de Roever, "Semantics of Nondeterminism, Concurrency, and Communication",
*Jorurnal of Computer and System Sciences*, vol. 19, 1979, pp.290–308.Google Scholar - [Hansen 78]P. Brinch Hansen, "Distributed Processes: A Concurrent Programming Concept".
*CACM*, vol. 21, n. 11, pp. 934–941, Nov. 1978.Google Scholar - [Hehner 83]E.C.R. Hehner and C.A.R. Hoare, "A more Complete Model of Communicating Processes".
*Theor. Computer Science*, 26 vol. 1, pp. 105–120, 1983.Google Scholar - [Henderson 80]Peter Henderson, "
*Functional Programming — Application and Implementation*". Prentice Hall 1980.Google Scholar - [Henderson 82]Peter Henderson, "Purely Functional Operating Systems". In J. Darlington, P. Henderson and D.A. Turner (eds.):
*Functional Programming and its Applications*, pp. 177–192, Cambridge Univ. Press 1982.Google Scholar - [Hoare 78]C.A.R. Hoare, "Communicating Sequential Processes".
*CACM*, vol. 21, n. 8, pp. 666–677, Aug. 1978.Google Scholar - [Hoare 81c]C.A.R. Hoare, "A Calculus for Total Correctness for Communicating Processes".
*Science of Computer Programming*, vol. 1, pp. 49–72, 1981.Google Scholar - [Inmos 84]Inmos Ldt., "
*Occam Reference Manual*". Prentice Hall, Series in Computer Science 1984.Google Scholar - [Kahn 74]G. Kahn, "The Semantics of a Simple Language for Parallel Programming". In
*Proc. of IFIP 74*, pp. 471–475, North Holland 1974.Google Scholar - [Kahn 77]G. Kahn and D.B. MacQueen, "Coroutines of Network of Parallel Processes". In
*Proc. of IFIP 77*, pp. 993–998, North Holland 1977.Google Scholar - [Karia 86]R.Karia, Lecture Notes for ESPRIT Summer School on Future Parallel Computers, Pisa, June 1986.Google Scholar
- [Lamport 78]L. Lamport, "Time, Clocks, and the Ordering of Events in a Distributed Systems".
*CACM*, vol. 21, n. 7, pp. 558–565, July 1978.Google Scholar - [Lamport 83]L. Lamport, "What Good is Temporal Logic". In
*Proc. of IFIP 83*, pp. 657–668, 1983.Google Scholar - [Lamport 84]L. Lamport. "Using Time instead of Timeout for Fault-Tolerant Distributed Systems".
*ACM TOPLAS*, vol. 6, n.2, April 1984Google Scholar - [Lauer 79]H.C. Lauer and R.M. Needham, "On the Duality of Operating System Structures".
*Operating System Review*, vol. 13, n. 2, pp. 3–19, April 1979.Google Scholar - [Liskov 83]B. Liskov and R. Scheifler, "Guardians and Actions: Linguistic Support for Robust, Distributed Programs".
*ACM TOPLAS*, vol. 5, n. 3, pp. 381–404, July 1983.Google Scholar - [Locuratolo 86]L. Locuratolo, "Implementation of concurrent logic languages". Graduation Thesis, Dept. of Comp. Sciences, Univ. of Pisa, 1986 (in Italian).Google Scholar
- [Lovengreen 85]H.H. Lovengreen, "On concurrency formalization". Ph. D. Thesis, Dept. of Computer Science, Technical University of Denmark, 1985.Google Scholar
- [McGraw 82]J.R. McGraw, "The VAL Language: Description and Analysis".
*ACM TOPLAS*, vol. 4, n. 1, pp. 44–82, January 1982.Google Scholar - [Milner 80]Robin Milner, "A Calculus of Communicating Systems".
*Lecture Notes in Computer Science*, 92, Springer-Verlag 1980.Google Scholar - [Nielsen 81]M. Nielsen, G. Plotkin, and G. Winskel, "Petri Nets, Event Structures and Domains, Part I".
*Theoretical Computer Science*, vol. 13, pp. 85–108, 1981.Google Scholar - [Olderog 83]E. R. Olderog and C.A.R. Hoare, "Specification Oriented Semantics for Communicating Processes". Tech. Mon. PRG-37, Oxford Univ., Programming Res. Group, Oxford, 1984.Google Scholar
- [Patterson 86]R.Patterson, Lecture Notes for ESPRIT Summer School on Future Parallel Computers, Pisa, June 1986.Google Scholar
- [Peterson 77]J.L. Peterson, "Petri Nets',
*ACM Computing Surveys*, vol. 9, n. 13, pp. 223–252, September 1977.Google Scholar - [Peterson 81]J. L. Peterson, "
*Petri Nets Theory and The Modeling of Systems*". Prentice-Hall, 1981.Google Scholar - [Plotkin 81]G.D. Plotkin, "A Structural Approach to Operational Semantics". Lecture notes. Aarhus University 1981.Google Scholar
- [Pnueli 77]A. Pnueli, "The Temporal Logic of Programs". In
*Proc. of the 19th FOCS*, pp. 46–57, IEEE, October 1977.Google Scholar - [Rattner 85]J. Rattner, "Concurrent processing: a new direction in scientific computing".
*AFIPS 85, NCC*, 1985.Google Scholar - [Rescher 71]N. Rescher, A. Urquhart, "
*Temporal Logic*", Springer-Verlag, 1971.Google Scholar - [Seitz 84]C.L. Seitz, "Concurrent VLSI architectures".
*IEEE Trans. on Comp.*, Vol. C-33, n. 12, Dec. 1984.Google Scholar - [Shapiro 83]E. Shapiro, "A subset of Concurrent Prolog and its Interpreter". ICOT Techn. Report TR-003, Febr. 1983.Google Scholar
- [Shapiro 84]E. Shapiro, "Systolic programming: a paradigm of parallel processing".
*Proc. of Int. Conf. on Fifth Generation Computer Systems*, ICOT, 1984.Google Scholar - [Strom 83]R.E. Strom, S. Yemini, "NIL: An Integrated Language and System for Distributed Programming".
*ACM SIGPLAN Notices*, vol.18, n. 6, June 1983.Google Scholar - [Treleaven 82]P.C. Treleaven, D.R. Brownbridge and R.P. Hopkins, "Data Driven and Demand Driven Computer Architecture".
*ACM Computing Surveys*, vol. 14, n.1,March 1982.Google Scholar - [Treleaven 83]P.C. Treleaven, J. E. Lima, "Future computers: Logic, Data Flow,..., Control Flow".
*10th Int. Symp. on Computer Arch.*, 1983.Google Scholar - [Uchida 86]K.Uchida, Lecture Notes for ESPRIT Summer School on Future Parallel Computers, Pisa, June 1986.Google Scholar
- [Vegdahl 84]S.R. Vegdahl, "A Survey of Proposed Architectures for the Execution of Functional Languages".
*IEEE Trans on Comp.*, vol. C-33, n. 12, December 1984.Google Scholar