Summary
In this chapter we argue that an intelligent program development environment that proactively supports the user helps a mainstream programmer to overcome the difficulties of programming multicore computing systems. We propose a programming environment based on intelligent software agents that enables users to work at a high level of abstraction while automating low-level implementation activities. The programming environment supports program composition in a model-driven development fashion using parallel building blocks and proactively assists the user during major phases of program development and performance tuning. We highlight the potential benefits of using such a programming environment with usage scenarios. An experiment with a parallel building block on a Sun UltraSPARC T2 Plus processor shows how the system may assist the programmer in achieving performance improvements.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
AGEIA Technologies (now a subsidiary of NVIDIA): The PhysX processor, http://www.ageia.com, accessed November 2009.
E. Alba, F. Almeida, M. Blesa, J. Cabeza, C. Cotta, M. Diaz, I. Dorta, J. Gabarro, C. Leon, J. Luna, L. Moreno, C. Pablos, J. Petit, A. Rojas, and F. Xhafa. MALLBA: A library of skeletons for combinatorial optimisation (research note). In Euro-Par 2002. Springer, Berlin, 2002.
M. Alind, M. Eriksson, and C. Kessler. BlockLib: a skeleton library for cell broadband engine. In International Workshop on Multicore Software Engineering (IWMSE-2008) at ICSE-2008. Leipzig, Germany, May 2008. ACM, New York, 2008.
E. Allen, D. Chase, J. Hallett, V. Luchangco, J. Maessen, S. Ryu, G. Steele Jr., and S. Tobin-Hochstadt. The Fortress language specification, version 1.0 (available at http://research.sun.com/projects/plrg/Publications/fortress.1.0.pdf), March 2008.
J. Ansel, C. Chan, Y. Wong, M. Olszewski, A. Edelman, and S. Amarasinghe. PetaBricks: a language and compiler for algorithmic choice. In ACM SIGPLAN Conference on Programming Language Design and Implementation, June 2009.
K. Asanovic, R. Bodik, B. Catanzaro, J. Gebis, P. Husbands, K. Keutzer, D. Patterson, W. Plishker, J. Shalf, S. Williams, and K. Yelick. The landscape of parallel computing research: a view from Berkeley. EECS Department, University of California, Berkeley, Technical Report No. UCB/EECS-2006-183, December 18, 2006.
AURORA: a priority research program on advanced models, applications and software systems for high performance computing (1997–2007). http://www.vcpc.univie.ac.at/aurora/, accessed November 2009.
D. Bader, V. Kanade, and K. Madduri. SWARM: A parallel programming framework for multi-core processors. First Workshop on Multithreaded Architectures and Applications (MTAAP) at IPDPS 2007. Long Beach, CA, USA, March 2007. IEEE, New York, 2007.
S. Benkner. VFC: The Vienna Fortran compiler. Scientific Programming, 7(1):67–81, 1999.
S. Benkner, S. Andel, R. Blasko, P. Brezany, A. Celic, B. Chapman, M. Egg, T. Fahringer, J. Hulman, E. Kelc, E. Mehofer, H. Moritsch, M. Paul, K. Sanjari, V. Sipkova, B. Velkov, B. Wender, and H. Zima. Vienna Fortran compilation system, Version 1.2, user’s guide. Technical report, Institute for Software Technology and Parallel Systems, University of Vienna, February 1996.
F. Bodin, S. Bihan. Heterogeneous multicore parallel programming for graphics processing units. Scientific Programming, 17(4):283–348, 2009.
R. Chandra, L. Dagum, D. Kohr, D. Maydan, J. McDonald, and R. Menon. Parallel Programming in OpenMP. Morgan Kaufmann, San Francisco, 2000.
P. Charles et al.: X10: An object-oriented approach to non-uniform cluster computing. In Proc. ACM OOPSLA’05, Oct. 2005. See also: Report on the Experimental Language X10, Draft 0.41 (available at http://www.research.ibm.com/x10), Feb. 2006.
M. Cole. Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming. Parallel Computing 30(3):389–406, 2004.
Cray Inc., Seattle, WA. Chapel specification, version 0.780, February 2008. (http://chapel.cs.washington.edu).
A. Donaldson, C. Riley, A. Lokhmotov, and A. Cook. Autoparallelisation of sieve C++ programs. In Proceedings of the 1st Euro-Par Workshop on Highly Parallel Processing on a Chip (HPPC), volume 4854 of Lecture Notes in Computer Science, pages 18–27. Springer, Berlin, 2007.
H. Dybdahl, P. Stenström, and L. Natvig. A cache-partitioning aware replacement policy for chip multiprocessors. In 13th Intern. Conf. of High Perform. Comput., HiPC 2006. Springer, Berlin, 2006.
A. Eichenberger et al.. Using advanced compiler technology to exploit the performance of the cell broadband engineTM architecture. IBM Systems Journal, 45(1):59–84, 2006.
K. Fatahalian, T. Knight, M. Houston, M. Erez, D. Horn, L. Leem, J. Park, M. Ren, A. Aiken, W. Dally, and P. Hanrahan. Sequoia: programming the memory hierarchy. In Proceedings of the ACM/IEEE SC2006 Conference on High Performance Networking and Computing, November 11–17, 2006, Tampa, FL, USA. ACM, New York, 2006.
I. Foster and C. Kesselman (Editors). The Grid 2: Blueprint for a New Computing Infrastructure. The Elsevier Series in Grid Computing, 2 edition. Morgan Kaufmann, San Mateo, 2003.
R. Gupta, E. Mehofer, and Y. Zhang. Profile guided code optimizations. In Y.N. Srikant, and P. Shankar, editors, The Compiler Design Handbook: Optimizations & Machine Code Generation. CRC Press, Boca Raton, 2002.
Habanero Multicore Software Project. http://www.cs.rice.edu/~vs3/habanero/, accessed November 2009.
M. Hall, Y. Gil, and R. Lucas. Self-configuring applications for heterogeneous systems: program composition and optimization using cognitive techniques. In Proceedings of the IEEE, Special Issue on Cutting-Edge Computing: Using New Commodity Architectures, Volume 96, Issue 5, 2008.
High Performance Fortran Forum. High performance Fortran language specification, version 2.0. Technical report, January 1997.
L. Howes, A. Lokhmotov, A. Donaldson, and P. Kelly. Deriving efficient data movement from decoupled access/execute specifications. In Proceedings of the 4th International Conference on High Performance and Embedded Architectures and Compilers (HiPEAC), volume 5409 of Lecture Notes in Computer Science, pages 168–182. Springer, Berlin, 2009.
IBM Cell/B.E. SDK for multicore acceleration version 3.1, available at http://www.ibm.com/developerworks/power/cell/, 2008.
IBM XL C/C++ for Multicore Acceleration for Linux. http://www.alphaworks.ibm.com/tech/cellcompiler, accessed November 2009.
Intel Corp.: Intel Threading Building Blocks 2.1, Reference Manual, 2009 (available at http://www.threadingbuildingblocks.org).
Khronos OpenCL Working Group. The OpenCL specification, version 1.0. Updated, May 16, 2009. http://www.khronos.org/registry/cl/specs/opencl-1.0.43.pdf
T. Knight, J. Park, M. Ren, M. Houston, M. Erez, K. Fatahalian, A. Aiken, W. Dally, and P. Hanrahan. Compilation for explicitly managed memory hierarchies. In Proceedings of the 12th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming, San Jose, California, USA, pages 226–236, ACM Press, New York, 2009.
S. Lindley. Implementing deterministic declarative concurrency using sieves. In Proceedings of the ACM SIGPLAN Workshop on Declarative Aspects of Multicore Programming (DAMP), ACM, New York, 2007.
Model Driven Architecture. http://www.omg.org/mda/, accessed November 2009.
R.W. Numerich and J. Reid. Co-array FORTRAN for parallel programming. SIGPLAN Fortran Forum, 17(2):1–31, 1998.
NVIDIA Corp. CUDA Zone: http://developer.nvidia.com/object/cuda.html, accessed November 2009.
J. Owens, D. Luebke, N. Govindaraju, M. Harris, J. Kruger, A. Lefohn, and T. Purcell. A survey of general-purpose computation on graphics hardware. Computer Graphics Forum, 26(1):80–113, 2007.
J. Perez, P. Bellens, R. Badia, and J. Labarta. CellSs: Making it easier to program the cell broadband engine processor. IBM Journal of Research and Development 51(5): 593–604, 2007.
Performance Portability and Programmability for Heterogeneous Many-core Architectures (PEPPHER). The Seventh Framework Programme of the European Commission. Project Reference: 248481. http://www.peppher.eu/, accessed November 2009.
Pervasive Parallelism Laboratory. http://ppl.stanford.edu/wiki/index.php/Pervasive_Parallelism_Laboratory, accessed November 2009.
S. Pllana et al.. On customizing the UML for modeling performance-oriented applications. In Proceedings of <<UML>> 2002, Model Engineering, Concepts and Tools, LNCS 2460, Springer, Dresden, 2002.
S. Pllana et al.. Teuta: tool support for performance modeling of distributed and parallel applications. In International Conference on Computational Science, Tools for Program Development and Analysis in Computational Science. Krakow, Poland, June 2004. Springer, Dresden, 2004.
S. Pllana, S. Benkner, F. Xhafa, and L. Barolli. Hybrid performance modeling and prediction of large-scale computing systems. In 2008 International Conference on Complex, Intelligent and Software Intensive Systems (CISIS 2008). Barcelona, Spain, March 2008. IEEE CS, Los Alamitos, 2008.
L. Pouchet, C. Bastoul, A. Cohen, and N. Vasilache. Iterative optimization in the polyhedral model: Part I, one-dimensional time. IEEE/ACM Fifth International Symposium on Code Generation and Optimization (CGO’07), San Jose, California, pages 144–156. IEEE Computer Society Press, Los Alamitos, 2007.
Programming Environments Laboratory (PELAB). http://www.ida.liu.se/labs/pelab/, accessed November 2009.
RapidMind corp. home page: http://www.rapidmind.net/, accessed November 2009.
L. Seiler, D. Carmean, E. Sprangle, T. Forsyth, M. Abrash, P. Dubey, S. Junkins, A. Lake, J. Sugerman, R. Cavin, R. Espasa, E. Grochowski, T. Juan, and P. Hanrahan. Larrabee: a many-core x86 architecture for visual computing. ACM Transactions on Graphics 27, 3 (2008), 1–15.
Service Aggregated Linked Sequential Activities (SALSA). http://www.infomall.org/multicore/, accessed November 2009.
D. Shreiner, M. Woo, J. Neider, and T. Davis. OpenGL Programming Guide: The Official Guide to Learning OpenGL. Addison-Wesley Professional, Reading, 2005.
I.J. Taylor, E. Deelman, D.B. Gannon, M. Shields (Editors). Workflows for E-science: Scientific Workflows for Grids. Springer, Berlin, 2006.
The UPC Consortium. UPC Language Specification (v 1.2), June 2005. available at http://upc.gwu.edu.
J. Wagner, A. Jahanpanah, and J. Träff. User-land work stealing schedulers: Towards a standard. 2008 International Workshop on Multi-Core Computing Systems (MuCoCoS’08) at CISIS 2008. Barcelona, Spain, March 2008. IEEE CS, Los Alamitos, 2008.
M. Wooldridge. An Introduction to MultiAgent Systems. Wiley, New York, 2002.
K. Yelick, L. Semenzato, G. Pike, C. Miyamato, B. Liblit, A. Krishnamurthy, P. Hilfinger, S. Graham, D. Gay, P. Colella, and A. Aiken. Titanium: a high-performance Java dialect. Concurrency: Practice and Experience, 10(11–13):825–836, 1998.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer Science+Business Media, LLC
About this chapter
Cite this chapter
Pllana, S., Benkner, S., Mehofer, E., Natvig, L., Xhafa, F. (2010). Agent-Supported Programming of Multicore Computing Systems. In: Xhafa, F., Barolli, L., Papajorgji, P. (eds) Complex Intelligent Systems and Their Applications. Springer Optimization and Its Applications, vol 41. Springer, New York, NY. https://doi.org/10.1007/978-1-4419-1636-5_10
Download citation
DOI: https://doi.org/10.1007/978-1-4419-1636-5_10
Publisher Name: Springer, New York, NY
Print ISBN: 978-1-4419-1635-8
Online ISBN: 978-1-4419-1636-5
eBook Packages: Mathematics and StatisticsMathematics and Statistics (R0)