skip to main content
10.1145/1248648.1248654acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article

SAC: off-the-shelf support for data-parallelism on multicores

Published:16 January 2007Publication History

ABSTRACT

The advent of multicore processors has raised new demand for harnessing concurrency in the software mass market. We summarise our previous work on the data parallel, functional array processing language SaC. Its compiler technology is geared towards highly runtime-efficient support for shared memory multiprocessors and, thus, is readily applicable to today's off-the-shelf multicore systems.

References

  1. Scholz, S. B.: Single Assignment C --- Efficient Support for High-Level Array Operations in a Functional Setting. Journal of Functional Programming 13 (2003) 1005--1059 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Grelck, C., Scholz, S. B.: S<sc>a</sc>C: A functional array language for efficient multithreaded execution. International Journal of Parallel Programming 34 (2006) 383--427 Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Cann, D.: Retire Fortran? A Debate Rekindled. Communications of the ACM 35 (1992) 81--89 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Blelloch, G. E.: Programming Parallel Algorithms. Communications of the ACM 39 (1996) Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. International Standards Organization: Programming Language APL, Extended. ISO N93.03, ISO (1993)Google ScholarGoogle Scholar
  6. Shafarenko, A., Scholz, S. B., Herhut, S., Grelck, C., Trojahner, K.: Implementing a numerical solution of the KPI equation using Single Assignment C: lessons and experiences. In: Implementation and Application of Functional Languages, 17th International Workshop (IFL'05). Dublin, Ireland, Revised Selected Papers. LNCS 4015, Springer-Verlag (2006) 160--177 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Grelck, C.: Shared memory multiprocessor support for functional array processing in S<sc>a</sc>C. Journal of Functional Programming 15 (2005) 353--401 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Grelck, C.: Implementing the NAS Benchmark MG in S<sc>a</sc>C. In: 16th International Parallel and Distributed Processing Symposium (IPDPS'02), Fort Lauderdale, USA, IEEE Press (2002) Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Grelck, C., Scholz, S. B.: Towards an Efficient Functional Implementation of the NAS Benchmark FT. In: Parallel Computing Technologies, 7th International Conference (PaCT'03), Nizhni Novgorod, Russia. LNCS 2763, Springer-Verlag (2003)Google ScholarGoogle Scholar
  10. Iverson, K.: A Programming Language. John Wiley, New York, USA (1962) Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Falkoff, A., Iverson, K.: The Design of APL. IBM Journal of Research and Development 17 (1973)Google ScholarGoogle Scholar
  12. Iverson, K.: J Introduction and Dictionary. Iverson Software Inc., Toronto, Canada. (1995)Google ScholarGoogle Scholar
  13. Jenkins, M.: Q'Nial: A Portable Interpreter for the Nested Interactive Array Language Nial. Software Practice and Experience 19 (1989) 111--126 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Hammond, K.: Parallel Functional Programming: An Introduction. In: International Symposium on Parallel Symbolic Computation (PASCO'94), Linz, Austria, World Scientific Publishing (1994) 181--193Google ScholarGoogle Scholar
  15. Trinder, P., Hammond, K., Loidl, H. W., Jones, S. P.: Algorithm + Strategy = Parallelism. Journal of Functional Programming 8 (1998) 23--60 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Hammond, K., Michaelson, G., eds.: Research Directions in Parallel Functional Programming. Springer-Verlag (1999) Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Markatos, E., LeBlanc, T.: Using Processor Affinity in Loop Scheduling on Shared-Memory Multiprocessors. IEEE Transactions on Parallel and Distributed Systems 5 (1994) 379--400 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Yan, Y., Jin, C., Zhang, X.: Adaptively Scheduling Parallel Loops in Distributed Shared-Memory Systems. IEEE Transactions on Parallel and Distributed Systems 8 (1997) 70--81 Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Grelck, C., Kuthe, S., Scholz, S. B.: A Hybrid Shared Memory Execution Model for a Data Parallel Language with I/O. Parallel Processing Letters, to appear.Google ScholarGoogle Scholar
  20. Wadler, P.: Deforestation: Transforming Programs to Eliminate Trees. Theoretical Computer Science 73 (1990) 231--248 Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Gill, A., Launchbury, J., Peyton Jones, S.: A Short Cut to Deforestation. In: Conference on Functional Programming Languages and Computer Architecture (FPCA'93), Copenhagen, Denmark, ACM Press (1993) 223--232 Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. van Arkel, D., van Groningen, J., Smetsers, S.: Fusion in Practice. In: Implementation of Functional Languages, 14th International Workshop (IFL'02), Madrid, Spain, Selected Papers. LNCS 2670, Springer-Verlag (2003) 51--67 Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Scholz, S. B.: With-loop-folding in S<sc>a</sc>C --- Condensing Consecutive Array Operations. In: Implementation of Functional Languages, 9th International Workshop (IFL'97), St. Andrews, UK, Selected Papers. LNCS 1467, Springer-Verlag (1998) 72--92 Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Chin, W.: Towards an Automated Tupling Strategy. In: ACM SIGPLAN Symposium on Partial Evaluation and Semantic-Based Program Manipulation (PEPM'97), Copenhagen, Denmark, ACM Press (1993) 119--132 Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Bacon, D., Graham, S., Sharp, O.: Compiler Transformations for High-Performance Computing. ACM Computing Surveys 26 (1994) 345--420 Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Manjikian, N., Abdelrahman, T.: Fusion of Loops for Parallelism and Locality. IEEE Transactions on Parallel and Distributed Systems 8 (1997) 193--209 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Grelck, C., Hinckfuf, K., Scholz, S. B.: With-Loop Fusion for Data Locality and Parallelism. In: Implementation and Application of Functional Languages, 17th International Workshop (IFL'05), Dublin, Ireland, Revised Selected Papers. LNCS 4015, Springer-Verlag (2006) 178--195 Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Grelck, C., Scholz, S. B., Trojahner, K.: With-Loop Scalarization: Merging Nested Array Operations. In: Implementation of Functional Languages, 15th International Workshop (IFL'03), Edinburgh, UK, Revised Selected Papers. LNCS 3145, Springer-Verlag (2004) Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Jones, R.: Garbage Collection: Algorithms for Automatic Dynamic Memory Management. John Wiley & Sons (1999) Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Hudak, P., Bloss, A.: The Aggregate Update Problem in Functional Programming Systems. In: 12th ACM Symposium on Principles of Programming Languages (POPL'85), New Orleans, USA, ACM Press (1985) Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Jones, S. P., Wadler, P.: Imperative Functional Programming. In: 20th ACM Symposium on Principles of Programming Languages (POPL'93), Charleston, USA, ACM Press (1993) 71--84 Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Barendsen, E., Smetsers, S.: Conventional and Uniqueness Typing in Graph Rewrite Systems. In: 13th Conference on Foundations of Software Technology and Theoretical Computer Science (FSTTCS'93), Bombay, India. LNCS 761, Springer-Verlag (1993) 41--51 Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Collins, G. E.: A Method for Overlapping and Erasure of Lists. Communications of the ACM 3 (1960) Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Grelck, C., Trojahner, K.: Implicit Memory Management for S<sc>a</sc>C. In: Implementation and Application of Functional Languages, 16th International Workshop (IFL'04). University of Kiel, Institute of Computer Science, Technical Report 0408 (2004) 335--348Google ScholarGoogle Scholar
  35. Torellas, J., Lam, M., Hennessy, J.: False Sharing and Spatial Locality in Multiprocessor Caches. IEEE Transactions on Computers 43 (1994) 651--663 Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Grelck, C.: Implicit Shared Memory Multiprocessor Support for the Functional Programming Language S<sc>a</sc>C. PhD thesis, Institute of Computer Science, University of Kiel, Logos Verlag (2001)Google ScholarGoogle Scholar

Index Terms

  1. SAC: off-the-shelf support for data-parallelism on multicores

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in
                • Published in

                  cover image ACM Conferences
                  DAMP '07: Proceedings of the 2007 workshop on Declarative aspects of multicore programming
                  January 2007
                  49 pages
                  ISBN:9781595936905
                  DOI:10.1145/1248648

                  Copyright © 2007 ACM

                  Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 16 January 2007

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • Article

                  Upcoming Conference

                  POPL '25

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader