Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

The Fork95 parallel programming language: Design, implementation, application

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Fork95 is an imperative parallel programming language intended to express algorithms for synchronous shared memory machines (PRAMs). It is based on ANSI C and offers additional constructs to hierarchically divide processor groups into subgroups and manage shared and private address subspaces. Fork95 makes the assembly-level synchronicity of the underlying hardware available to the programmer at the language level. Nevertheless, it supports locally asynchronous computation where desired by the programmer. We present a one pass compiler, fcc, which compiles Fork95 and C programs to the SB-PRAM machine. The SB-PRAM is a lock-step synchronous, massively parallel multiprocessor currently being built at Saarbrücken University, with a physically shared memory and uniform memory access time. We examine three important types of parallel computation frequently used for the parallel solution of real-world problems. While farming and parallel divide-and-conquer are directly supported by Fork95 language constructs, pipelining can be easily expressed using existing language features; an additional language construct for pipelining is not required.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. F. Abolhassan, J. Keller, and W. J. Paul, On Physical Realizations of the Theoretical PRAM Model. Technical Report 21/1990, Sonderforschungsbereich 124 VLSI Entwurfsmethoden und Parallelität, Universität Saarbrücken, 1990.

  2. Jörg Keller, Wolfgang J. Paul, and Dieter Scheerer, Realization of PRAMs: Processor Design,Proc. WDAG94, 8th Int. Workshop on Distributed Algorithms, Springer Lecture Notes in Computer Science,857:17–27 (1994).

    Google Scholar 

  3. A. Geist, A. Beguelin, J. Dongarra, W. Jiang, R. Manchek, and V. Sunderam, PVM 3 User’s Guide and Reference Manual. Technical Report ORNL/TM-12187, Oak Ridge National Laboratory, Oak Ridge, Tennessee 37831 (September 1994).

  4. R. Butler and E. L. Lusk, User’s Guide to the P4 Parallel Programming System. Technical Report ANL-92/17, Argonne National Laboratory (October 1992).

  5. R. Butler and E. L. Lusk, Monitors, Messages, and Clusters: The P4 Parallel Programming System,Parallel Computing,20(4):547–564 (April 1994).

    Article  MATH  Google Scholar 

  6. Michael Philippsen and Markus U. Mock, Data and Process Alignment in Modual-2*, inAutomatic Parallelization—New Approaches to Code Generation, Data Distribution and Performance Prediction, C. W. Keßler ed., Wiesbaden: Vieweg, pp. 177–191 (1994).

    Google Scholar 

  7. K.-C Li and H. Schwetman, Vector C: A Vector Processing Language.Journal of Parallel and Distributed Computing,2:132–169 (1985).

    Article  Google Scholar 

  8. J. Rose and G. Steele, C*: An Extended C Language for Data Parallel Programming. Technical Report PL87-5, Thinking Machines Inc., Cambridge, Massachusetts (1987).

    Google Scholar 

  9. P. J. Hatcher and M. J. Quinn,Dataparallel Programming on MIMD Computers, MIT-Press (1991).

  10. Judith Schlesinger and Maya Gokhale, DBC Reference Manual. Technical Report TR-92-068, Supercomputing Research Center (1992).

  11. P. C. P. Bhatt, K. Diks, T. Hagerup, V.C. Prasad, S. Saxena, and T. Radzik, Improved Deterministic Parallel Integer Sorting,Information and Computation, Vol. 94 (1991).

  12. M. I. Cole,Algorithmic Sceletons: Structured Management of Parallel Computation. Pitman and MIT Press (1989).

  13. P. de la Torre and C. P. Kruskal, Towards a Single Model of Efficient Computation in Real Parallel Machines,Future Generation Computer Systems,8:395–408 (1992).

    Article  Google Scholar 

  14. T. Heywood and S. Ranka, A Practical Hierarchical Model of Parallel Computation. Part I: The Model,Journal of Parallel and Distributed Computing,16:212–232 (1992).

    Article  MATH  MathSciNet  Google Scholar 

  15. T. Heywood and S. Ranka, A Practical Hierarchical Model of Parallel Computation. Part II: Binary Tree and FFT Algorithms,Journal of Parallel and Distributed Computing,16:233–249 (1992).

    Article  MATH  MathSciNet  Google Scholar 

  16. Y. Ben-Asher, D. G. Feitelson, and L. Rudolph, ParC—An Extension of C for Shared Memory Parallel Processing,Software—Practice and Experience,26(5):581–612 (May 1996).

    Article  Google Scholar 

  17. Robert D. Blumofe, Christopher F. Joerg, Bradley C. Kuszmaul, Charles E. Leiserson, Keith H. Randall, and Yuli Zhou, Cilk: An Efficient Multi-Threaded Run-Time System, inProc. 5th ACM SIGPLAN Symp. on Principles and Practices of Parallel Programming, pp. 207–216 (1995).

  18. T. Hagerup, A. Schmitt, and H. Seidl, FORK: A High-Level Language for PRAMs,Future Generation Computer Systems,8:379–393 (1992).

    Article  Google Scholar 

  19. C. León, F. Sande, C. Rodríguez, and F. García, A PRAM Oriented Language,Euromicro Workshop on Parallel and Distributed Processing, pp. 182–191 (1995).

  20. F. Abolhassan, R. Drefenstedt, J. Keller, W. J. Paul, and D. Scheerer, On the Physical Design of PRAMs,Computer Journal,36(8):756–762 (December 1993).

    Article  Google Scholar 

  21. Jochen Röhrig, Implementierung der P4-Laufzeitbibliothek auf der SB-PRAM. Master Thesis, Universität Saarbrücken (1996).

  22. T. Grün, T. Rauber, and J. Röhrig, The Programming Environment of the SB-PRAM,Proc. ISMM’95 (1995). http://www-wjp. cs.uni-sb.de /SBPRAM/.

  23. Arno Formella, Jörg Keller, and Thomas Walle, HPP: A High-Performance PRAM,Proc. 2nd Int. Euro-Par Conference. Springer LNCS1124, 425–434 (1996).

    Google Scholar 

  24. ANSI American National Standard Institute, Inc., New York, American National Standards for Information Systems, Programming Language C. ANSI X3.159-1989 (1990).

  25. Christoph W. Keßler and Helmut Seidl, Language Support for Synchronous Parallel Critical Sections. Technical Report 95-23, FB IV Informatik der Universität Trier (1995). http://www.informatik.uni-trier.de/~kessler/fork95.html.

  26. A. Gottlieb, B. Lubachevsky, and L. Rudolph, Basic Techniques for the Efficient Coordination of Large Numbers of Cooperating Sequential Processes.ACM Transactions on Programming Languages and Systems,5(2), 164–189 (April 1983).

    Article  MATH  Google Scholar 

  27. Henri Bal,Programming Distributed Systems, Prentice Hall (1990).

  28. Christoph W. Keßler, Automatische Parallelisierung numerischer Programme durch Mustererkennung, Ph.D. Thesis, Universität Saarbrücken (1994).

  29. Peter M. Kogge and Harold S. Stone, A Parallel Algorithm for the Efficient Solution of a General Class of Recurrence Equations,IEEE Transactions on Computers,C-22(8): 786–793 (August 1973).

    Article  MathSciNet  Google Scholar 

  30. Guy E. Blelloch, Scans as Primitive Parallel Operations,IEEE Transactions on Computers,38(11):1526–1538 (November 1989).

    Article  Google Scholar 

  31. C. W. Keßler and J. L. Träff, A Library of Basic PRAM Algorithms and its Implementation in FORK, inProc. 8th Annual ACM Symposium on Parallel Algorithms and Architectures, ACM Press, New York, pp. 193–195 (June 24–26 1996).

    Google Scholar 

  32. Karin Käppner, Analysen zur Übersetzung von FORK, Teil 1. Master Thesis, Universität Saarbrücken, 1992.

  33. Markus Welter, Analysen zur Übersetzung von FORK, Teil 2. Master Thesis, Universität Saarbrücken, 1992.

  34. C. W. Fraser and D. R. Hanson, A Code Generation Interface for ANSI C,Software—Practice and Experience,21(9):963–988 (September 1991).

    Article  Google Scholar 

  35. C. W. Fraser and D. R. Hanson, A Retargetable Compiler for ANSI C,SIGPLAN Notices,26(10):29–43 (October 1991).

    Article  Google Scholar 

  36. C. W. Fraser and D. R. Hanson,A Retargetable C Compiler: Design and Implementation, Benjamin Cummings Publishing Company (1995).

  37. G. Jones and M. Goldsmith,Programming in Occam 2, Prentice Hall (1988).

  38. C. A. R. Hoare,Communicating Sequential Processes, Prentice Hall International Series in Computer Science (1995).

  39. Constantine D. Polychronopoulos,Parallel Programming and Compilers, Kluwer Academic Publishers (1988).

  40. C. W. Keßler, Parallel Fourier-Motzkin Elimination, inProc. 2nd Int. Euro-Par Conference, Springer LNCS 1124, pp. 66–71 (August 27–29, 1996).

  41. Volker Strassen, Gaussian Elimination is Not Optimal,Numerische Mathematik,14(3):354–356 (1969).

    Article  MathSciNet  Google Scholar 

  42. Christoph W. Keßler and Helmut Seidl, Fork95 Language and Compiler for the SB-PRAM. inProc. 5th Workshop on Compilers for Parallel Computers, pp. 409–421. Dept. of Computer Architecture, University of Malaga, Spain. Report No. UMA-DAC-95/09 (June 28–30 1995). http://www.informatik.uni-trier.de/∼kessler/fork95.html.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Keßler, C.W., Seidl, H. The Fork95 parallel programming language: Design, implementation, application. Int J Parallel Prog 25, 17–50 (1997). https://doi.org/10.1007/BF02700045

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF02700045

Key Words