ABSTRACT
Programming models should ideally let programmers express their ideas directly and explicitly. No such models are available for expert programmers, authors of machine-specific code optimizations, whose ideas often exploit architectural details invisible even at the assembly language level. In this paper we call for filling this void, and define performance transparency to evaluate the extent to which a programming model accommodates the expert programmer use case. We propose a specific approach to attaining performance transparency: make software harder by exposing the key components of the target architecture. The opportunities and challenges this approach brings are discussed.
- P. Axer, C. Rochange, M. Sebastian, R. Von Hanxleden, R. Wilhelm, W. Yi, R. Ernst, H. Falk, A. Girault, D. Grund, N. Guan, B. Jonsson, P. Marwedel, and J. Reineke. 2014. Building timing predictable embedded systems. ACM Trans. on Embedded Computing Systems 13, 4 (2014), 1--37. Google ScholarDigital Library
- J. Bachrach, H. Vo, B. Richards, Y. Lee, A. Waterman, R. Avižienis, J. Wawrzynek, and K. Asanović. 2012. Chisel: Constructing Hardware in a Scala Embedded Language. In Proc. of the 49th Design Automation Conference (DAC'12). 1212--1221. Google ScholarDigital Library
- B. A. Bjørnseth, J. C. Meyer, and L. Natvig. 2018. Proof-of-Concept Examples of Performance-Transparent Programming Models. Technical Report. arXiv:1803.11179Google Scholar
- W. Gropp and M. Snir. 2013. Programming for exascale computers. Computing in Science and Engineering 15, 6 (2013), 27--35. Google ScholarDigital Library
- H. Guan, X. Shen, and H. Krim. 2017. Egeria: A Framework for Automatic Synthesis of HPC Advising Tools through Multi-Layered Natural Language Processing. In Proc. of the Int'l Conf. for High Performance Computing, Networking, Storage and Analysis (SC'17). 10:1--14. Google ScholarDigital Library
- C. A. R. Hoare. 1973. Hints on Programming Language Design. Technical Report. 29 pages. Google ScholarDigital Library
- P. Karpiński and J. McDonald. 2017. An Embedded Domain Specific Language for General Purpose Vectorization. In ICS High Performance Workshops 2017, LNCS, J.M. Kunkel (Ed.). Vol. 10524. Springer International Publishing, 515--537.Google Scholar
- K. Kennedy, C. Koelbel, and H. Zima. 2011. The rise and fall of high performance Fortran. Commun. ACM 54 (2011), 74. Google ScholarDigital Library
- Donald E. Knuth. 1968. Semantics of context-free languages. Mathematical Systems Theory 2, 2 (1968), 127--145.Google ScholarCross Ref
- Peter Kogge and John Shalf. 2013. Exascale computing trends: Adjusting to the "new normal" for computer architecture. Computing in Science and Engineering 15, 6 (2013), 16--26. Google ScholarDigital Library
- W. R. Mark, R. S. Glanville, K. Akeley, and M. J. Kilgard. 2003. Cg: a system for programming graphics hardware in a C-like language. ACM Trans. on Graphics 22, 3 (2003), 896--907. Google ScholarDigital Library
- M. D. McCool. 2008. Scalable programming models for massively multicore processors. Proc. IEEE 96, 5 (2008), 816--831.Google ScholarCross Ref
- John Nickolls, Ian Buck, Michael Garland, and Kevin Skadron. 2008. Scalable parallel programming with CUDA. ACM Queue 6, April (2008), 40--53. Google ScholarDigital Library
- A. K. Sujeeth, K. J. Brown, H. Lee, T. Rompf, H. Chafi, M. Odersky, and K. Olukotun. 2014. Delite: A Compiler Architecture for Performance-Oriented Embedded Domain-Specific Languages. ACM Trans. on Embedded Computing Sys. 13, 4s (2014), 1--25. Google ScholarDigital Library
- Yuan Tang, Rezaul Chowdhury, Bradley C. Kuszmaul, Chi-keung Luk, and Charles E. Leiserson. 2011. The Pochoir Stencil Compiler. In Proceedings of the twenty-third annual ACM Symposium on Parallelism in Algorithms and Architectures. 117--128. Google ScholarDigital Library
- D. Unat, A. Dubey, T. Hoefler, J. Shalf, M. Abraham, M. Bianco, B. L. Chamberlain, R. Cledat, H. C. Edwards, H. Finkel, K. Fuerlinger, F. Hannig, E. Jeannot, A. Kamil, J. Keasler, P. H J Kelly, V. Leung, H. Ltaief, N. Maruyama, C. J. Newburn, and M. Pericas. 2017. Trends in Data Locality Abstractions for HPC Systems. IEEE TPDS 9219, c (2017), 1--14.Google Scholar
Index Terms
- Make software harder
Recommendations
EnviroSuite: An environmentally immersive programming framework for sensor networks
Sensor networks open a new frontier for embedded-distributed computing. Paradigms for sensor network programming-in-the-large have been identified as a significant challenge toward developing large-scale applications. Classical programming languages are ...
Do Programming Languages Make Software Too Soft?
It's difficult to create simple, correct software with current programming languages. They are unnecessarily complex. This is a plea for less softness and for safer, simpler programming languages.
Introducing and Exploiting Hierarchical Structural Information
CLUSTER '15: Proceedings of the 2015 IEEE International Conference on Cluster ComputingThis paper presents a programming model approach that explicitly addresses the programmability of scientific code by annotating imperative code with its algorithmic structural behavior. This information is used to create hierarchical structures, as ...
Comments