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.
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Cann, D.: Retire Fortran? A Debate Rekindled. Communications of the ACM 35 (1992) 81--89 Google ScholarDigital Library
- Blelloch, G. E.: Programming Parallel Algorithms. Communications of the ACM 39 (1996) Google ScholarDigital Library
- International Standards Organization: Programming Language APL, Extended. ISO N93.03, ISO (1993)Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- Iverson, K.: A Programming Language. John Wiley, New York, USA (1962) Google ScholarDigital Library
- Falkoff, A., Iverson, K.: The Design of APL. IBM Journal of Research and Development 17 (1973)Google Scholar
- Iverson, K.: J Introduction and Dictionary. Iverson Software Inc., Toronto, Canada. (1995)Google Scholar
- Jenkins, M.: Q'Nial: A Portable Interpreter for the Nested Interactive Array Language Nial. Software Practice and Experience 19 (1989) 111--126 Google ScholarDigital Library
- Hammond, K.: Parallel Functional Programming: An Introduction. In: International Symposium on Parallel Symbolic Computation (PASCO'94), Linz, Austria, World Scientific Publishing (1994) 181--193Google Scholar
- Trinder, P., Hammond, K., Loidl, H. W., Jones, S. P.: Algorithm + Strategy = Parallelism. Journal of Functional Programming 8 (1998) 23--60 Google ScholarDigital Library
- Hammond, K., Michaelson, G., eds.: Research Directions in Parallel Functional Programming. Springer-Verlag (1999) Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- Wadler, P.: Deforestation: Transforming Programs to Eliminate Trees. Theoretical Computer Science 73 (1990) 231--248 Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Bacon, D., Graham, S., Sharp, O.: Compiler Transformations for High-Performance Computing. ACM Computing Surveys 26 (1994) 345--420 Google ScholarDigital Library
- Manjikian, N., Abdelrahman, T.: Fusion of Loops for Parallelism and Locality. IEEE Transactions on Parallel and Distributed Systems 8 (1997) 193--209 Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Jones, R.: Garbage Collection: Algorithms for Automatic Dynamic Memory Management. John Wiley & Sons (1999) Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Collins, G. E.: A Method for Overlapping and Erasure of Lists. Communications of the ACM 3 (1960) Google ScholarDigital Library
- 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 Scholar
- Torellas, J., Lam, M., Hennessy, J.: False Sharing and Spatial Locality in Multiprocessor Caches. IEEE Transactions on Computers 43 (1994) 651--663 Google ScholarDigital Library
- 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 Scholar
Index Terms
- SAC: off-the-shelf support for data-parallelism on multicores
Recommendations
Towards Compiling SAC for the Xeon Phi Knights Corner and Knights Landing Architectures: Strategies and Experiments
IFL '17: Proceedings of the 29th Symposium on the Implementation and Application of Functional Programming LanguagesXeon Phi is the common brand name of Intel's Many Integrated Core (MIC) architecture. The first commercially available generation Knights Corner and the second generation Knights Landing form a middle ground between modestly parallel desktop and ...
SaC/C formulations of the all-pairs N-body problem and their performance on SMPs and GPGPUs
This paper describes our experience in implementing the classical N-body algorithm in SaC and analysing the runtime performance achieved on three different machines: a dual-processor 8-core Dell PowerEdge 2950 a Beowulf cluster node, the reference ...
SAC: a functional array language for efficient multi-threaded execution
We give an in-depth introduction to the design of our functional array programming language SAC, the main aspects of its compilation into host machine code, and its parallelisation based on multi-threading. The language design of SAC aims at combining ...
Comments