Skip to main content

Shared Memory Multiprocessor Support for SAC

  • Conference paper
  • First Online:
Implementation of Functional Languages (IFL 1998)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1595))

Included in the following conference series:

Abstract

Sac (Single Assignment C) is a strict, purely functional programming language primarily designed with numerical applications in mind. Particular emphasis is on efficient support for arrays both in terms of language expressiveness and in terms of runtime performance. Array operations in Sac are based on elementwise specifications using so-called With-loops. These language constructs are also well-suited for concurrent execution on multiprocessor systems.

This paper outlines an implicit approach to compile Sac programs for multi-threaded execution on shared memory architectures. Besides the basic compilation scheme, a brief overview of the runtime system is given. Finally, preliminary performance figures demonstrate that this approach is well-suited to achieve almost linear speedups.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. J.C. Adams, W.S. Brainerd, J.T. Martin, et al. Fortran90 Handbook-Complete ANSI/ISO Reference. McGraw-Hill, 1992. ISBN 0-07-000406-4.

    Google Scholar 

  2. G.M. Amdahl. Validity of the Single Processor Approach to Achieving Large-Scale Computing Capabilities. In AFIPS Conf. Proc., pages 483–485. AFIPS Press, Reston, Va, 1967.

    Google Scholar 

  3. Arvind, K.P. Gostelow, and W. Plouffe. The ID-Report: An Asynchronous Programming Language and Computing Machine. Technical Report 114, University of California at Irvine, 1978.

    Google Scholar 

  4. C. Aßmann. Coordinating Functional Processes Using Petri Nets. In W. Kluge, editor, Proc. 8th. International Workshop on the Implementation of Functional Languages, Bad Godesberg, Germany, September 1996, volume 1268 of LNCS, pages 162–183. Springer-Verlag, 1997.

    Google Scholar 

  5. D. Bailey, E. Barszcz, J. Barton, et al. The NAS Parallel Benchmarks. RNR 94-007, NASA Ames Research Center, 1994.

    Google Scholar 

  6. G.E. Blelloch. NESL: A Nested Data-Parallel Language (Version 3.1). Technical Report CMU-CS-95-170, Carnegie Mellon University, Pittsburgh, PA, 1995.

    Google Scholar 

  7. G.E. Blelloch, S. Chatterjee, J.C. Hardwick, J. Sipelstein, and M. Zagha. Implementation of a Portable Nested Data-Parallel Language. Journal of Parallel and Distributed Computing, 21(1):4–14, 1994.

    Article  Google Scholar 

  8. D. Braess. Finite Elemente. Springer-Verlag, 1996. ISBN 3-540-61905-4.

    Google Scholar 

  9. S. Breitinger, R. Loogen, and Y. Ortega-Mallen. Towards a Declarative Language for Parallel and Concurrent Programming. In Proc. 1995 Glasgow Workshop on Functional Programming. Springer-Verlag WiCS, 1995.

    Google Scholar 

  10. J.J. Dongarra, H.W. Meuer, and E. Strohmaier. TOP500 Supercomputer Sites, 11th edition. In Supercomputer’ 98 Conference, Mannheim, Germany, 1998.

    Google Scholar 

  11. M. Haines and W. Böhm. Task Management, Virtual Shared Memory, and Multithreading in a Distributed Memory Implementation of SISAL. In A. Bode, M. Reeve, and G. Wolf, editors, Proc. PARLE’ 93 — Parallel Architectures and Languages Europe, volume 694 of LNCS, pages 12–23, Eindhoven, The Netherlands, Spinger-Verlag, June 1991.

    Google Scholar 

  12. K. Hammond, H.-W. Loidl, S.L. Peyton Jones, and P. Trinder. Algorithm + Strategy = Parallelism. Journal of Functional Programming, 8(1), 1998.

    Google Scholar 

  13. J. Hicks, D. Chiou, B.S. Ang, and Arvind. Performance Studies of Id on the Monsoon Dataflow System. Journal of Parallel and Distributed Computing, 18(3):273–300, 1993.

    Article  Google Scholar 

  14. J.M.D. Hill and D.B. Skillicorn. Practical Barrier Synchronisation. Technical Report TR-16-96, Programming Research Group, Oxford University Computing Laboratory, Oxford, England, 1996.

    Google Scholar 

  15. K.E. Iverson. A Programming Language. Wiley, New York, 1962.

    MATH  Google Scholar 

  16. S.L. Peyton Jones, A. Gordon, and S. Finne. Concurrent Haskell. In Proc. 23rd ACM Symposium on Principles of Programming Languages (POPL’96), St. Petersburg Beach, Florida, pages 295–308, 1996.

    Google Scholar 

  17. J.R. McGraw, S.K. Skedzielewski, S.J. Allan, R.R. Oldehoeft, et al. Sisal: Streams and Iteration in a Single Assignment Language: Reference Manual Version 1.2. M 146, Lawrence Livermore National Laboratory, LLNL, Livermore California, 1985.

    Google Scholar 

  18. Institute of Electrical and Inc. Electronic Engineers. Information Technology-Portable Operating Systems Interface (POSIX)-Part: System Application Program Interface (API)-Amendment 2: Threads Extension [C Language]. IEEE Standard 1003.1c-1995, IEEE, New York, NY, 1995.

    Google Scholar 

  19. J.H. Reppy. CML: A higher-order concurrent language. In Proc. 1991 ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI 91), pages 293–305, 1991.

    Google Scholar 

  20. S.B. Scholz. S ingle A ssignment C-Entwurf und Implementierung einer funktionalen C-Variante mit spezieller Unterstützung shape-invarianter Array-Operationen. PhD thesis, Institut für Informatik und Praktische Mathematik, Universität Kiel, 1996.

    Google Scholar 

  21. S.B. Scholz. On Programming Scientific Applications in SAC-A Functional Language Extended by a Subsystem for High-Level Array Operations. In W. Kluge, editor, Proc. 8th. International Workshop on the Implementation of Functional Languages, Bad Godesberg, Germany, September 1996, volume 1268 of LNCS, pages 85–104. Springer-Verlag, 1997.

    Google Scholar 

  22. S.B. Scholz. WITH-loop-folding: Condensing Consecutive Array Operations. In C. Clack, T. Davie, and K. Hammond, editors, Proc. 9th International Workshop on the Implementation of Functional Languages’ 97, St Andrews, Scotland, 1997, volume 1467 of LNCS, pages 72–91. Springer-Verlag, 1998.

    Google Scholar 

  23. S.B. Scholz. A Case Study: Effects of WITH-Loop Folding on the NAS Mgrid Benchmark in SAC. In This Proceedings.

    Google Scholar 

  24. S.B. Scholz. On Defining Application-Specific High-Level Array Operations by Means of Shape-Invariant Programming Facilities. In S. Picchi and M. Micocci, editors, Proc. 1998 Array Processing Language Conference, Rome, Italy, pages 40–45. ACM Press, 1998.

    Google Scholar 

  25. W. Schreiner. Parallel Functional Programming, An Annotated Bibliography (2nd edition). 93–124, Research Institute for Symbolic Computation (RISC), Johannes-Kepler-University, Linz, Austria, 1993.

    Google Scholar 

  26. P.R. Serrarens. Distributed arrays in Clean. In Euro-Par’ 97, LNCS. Springer, 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Grelck, C. (1999). Shared Memory Multiprocessor Support for SAC. In: Hammond, K., Davie, T., Clack, C. (eds) Implementation of Functional Languages. IFL 1998. Lecture Notes in Computer Science, vol 1595. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48515-5_3

Download citation

  • DOI: https://doi.org/10.1007/3-540-48515-5_3

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66229-7

  • Online ISBN: 978-3-540-48515-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics