Parallelism issues in multi — Style computers

  • F. Baiardi
  • M. Vanneschi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 272)


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 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Ackerman 79]
    W. B. Ackerman, "Data Flow Languages". In Proc. of AFIPS, NCC 79, pp. 1087–1095, 1979.Google Scholar
  2. [Ada 83]
    DOD, "Reference Manual for the Ada Programming Language". ANSI MIL-STD 1815A, 1983Google Scholar
  3. [Andrews 81]
    G.R. Andrews, "Synchronizing Resources". ACM TOPLAS, vol. 3, N. 4, PP. 405–430, October 1981.Google Scholar
  4. [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
  5. [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
  6. [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
  7. [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
  8. [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
  9. [Attardi 86]
    G. Attardi, Lecture Notes for the ESPRIT Summer School on Future Parallel Computers, Pisa, June 1986Google Scholar
  10. [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
  11. [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
  12. [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
  13. [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
  14. [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
  15. [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
  16. [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
  17. [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
  18. [Brauer 80]
    W. Brauer (ed.), "Net Theory and Applications". Lecture Notes in Comp. SC., 84, Springer-Verlag, 1980.Google Scholar
  19. [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
  20. [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
  21. [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
  22. [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
  23. [Bryant 78]
    R.E. Bryant, J.B. Dennis, "Concurrent Programming", MIT Report, Cambridge, Mass., 1978.Google Scholar
  24. [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
  25. [Clark 84]
    K. Clark, S. Gregory, "Parlog: Parallel Programming in Logic". Res. Rep. DOC/84, Imperial College, London.Google Scholar
  26. [Denning 76]
    P. J. Denning, "Fault tolerant operating system", ACM Computing Surveys, vol. 8, n. 4, dicembre 1976, pp. 359–389.Google Scholar
  27. [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
  28. [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
  29. [Feldmann 79]
    J.A. Feldmann, "High Level Programming Language for Distributed Computing", CACM, vol.22, n.6, June 1979, pp. 353–368.Google Scholar
  30. [Filman 84]
    R.E. Filman and D.P. Friedman, "Coordinated Computing — Tools and Techniques for Distributed Software", McGraw-Hill 1984.Google Scholar
  31. [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
  32. [Hansen 78]
    P. Brinch Hansen, "Distributed Processes: A Concurrent Programming Concept". CACM, vol. 21, n. 11, pp. 934–941, Nov. 1978.Google Scholar
  33. [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
  34. [Henderson 80]
    Peter Henderson, "Functional Programming — Application and Implementation". Prentice Hall 1980.Google Scholar
  35. [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
  36. [Hoare 78]
    C.A.R. Hoare, "Communicating Sequential Processes". CACM, vol. 21, n. 8, pp. 666–677, Aug. 1978.Google Scholar
  37. [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
  38. [Inmos 84]
    Inmos Ldt., "Occam Reference Manual". Prentice Hall, Series in Computer Science 1984.Google Scholar
  39. [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
  40. [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
  41. [Karia 86]
    R.Karia, Lecture Notes for ESPRIT Summer School on Future Parallel Computers, Pisa, June 1986.Google Scholar
  42. [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
  43. [Lamport 83]
    L. Lamport, "What Good is Temporal Logic". In Proc. of IFIP 83, pp. 657–668, 1983.Google Scholar
  44. [Lamport 84]
    L. Lamport. "Using Time instead of Timeout for Fault-Tolerant Distributed Systems". ACM TOPLAS, vol. 6, n.2, April 1984Google Scholar
  45. [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
  46. [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
  47. [Locuratolo 86]
    L. Locuratolo, "Implementation of concurrent logic languages". Graduation Thesis, Dept. of Comp. Sciences, Univ. of Pisa, 1986 (in Italian).Google Scholar
  48. [Lovengreen 85]
    H.H. Lovengreen, "On concurrency formalization". Ph. D. Thesis, Dept. of Computer Science, Technical University of Denmark, 1985.Google Scholar
  49. [McGraw 82]
    J.R. McGraw, "The VAL Language: Description and Analysis". ACM TOPLAS, vol. 4, n. 1, pp. 44–82, January 1982.Google Scholar
  50. [Milner 80]
    Robin Milner, "A Calculus of Communicating Systems". Lecture Notes in Computer Science, 92, Springer-Verlag 1980.Google Scholar
  51. [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
  52. [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
  53. [Patterson 86]
    R.Patterson, Lecture Notes for ESPRIT Summer School on Future Parallel Computers, Pisa, June 1986.Google Scholar
  54. [Peterson 77]
    J.L. Peterson, "Petri Nets', ACM Computing Surveys, vol. 9, n. 13, pp. 223–252, September 1977.Google Scholar
  55. [Peterson 81]
    J. L. Peterson, "Petri Nets Theory and The Modeling of Systems". Prentice-Hall, 1981.Google Scholar
  56. [Plotkin 81]
    G.D. Plotkin, "A Structural Approach to Operational Semantics". Lecture notes. Aarhus University 1981.Google Scholar
  57. [Pnueli 77]
    A. Pnueli, "The Temporal Logic of Programs". In Proc. of the 19th FOCS, pp. 46–57, IEEE, October 1977.Google Scholar
  58. [Rattner 85]
    J. Rattner, "Concurrent processing: a new direction in scientific computing". AFIPS 85, NCC, 1985.Google Scholar
  59. [Rescher 71]
    N. Rescher, A. Urquhart, "Temporal Logic", Springer-Verlag, 1971.Google Scholar
  60. [Seitz 84]
    C.L. Seitz, "Concurrent VLSI architectures". IEEE Trans. on Comp., Vol. C-33, n. 12, Dec. 1984.Google Scholar
  61. [Shapiro 83]
    E. Shapiro, "A subset of Concurrent Prolog and its Interpreter". ICOT Techn. Report TR-003, Febr. 1983.Google Scholar
  62. [Shapiro 84]
    E. Shapiro, "Systolic programming: a paradigm of parallel processing". Proc. of Int. Conf. on Fifth Generation Computer Systems, ICOT, 1984.Google Scholar
  63. [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
  64. [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
  65. [Treleaven 83]
    P.C. Treleaven, J. E. Lima, "Future computers: Logic, Data Flow,..., Control Flow". 10th Int. Symp. on Computer Arch., 1983.Google Scholar
  66. [Uchida 86]
    K.Uchida, Lecture Notes for ESPRIT Summer School on Future Parallel Computers, Pisa, June 1986.Google Scholar
  67. [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

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • F. Baiardi
    • 1
  • M. Vanneschi
    • 1
  1. 1.Dipartimento di InformaticaUniversità di PisaItaly

Personalised recommendations