Looking Ahead



This final chapter summarizes the experiences of the first decade of multi-core programming and looks at the challenges the research and practitioner community will face in the next decade. We discuss how we can tackle the issue of scaling the performance of single threaded applications, how we can deal with the bottlenecks that emerge as the level of parallelism increases and what higher abstraction level of software design will mean for deployment on many-core hardware; in general, how the hardware and software environment may look like in a few years’ time. Finally we discuss how related fields of computing technology—such as exascale computing, cloud computing and pervasive mobile computing—may influence (and be influenced in the process) by advancements in programming many-core processors.


Cloud Computing Semantic Information Mobile Computing Domain Specific Language Speculative Execution 
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.


  1. 1.
    Ericsson (2010) CEO to shareholders: 50 billion connections 2020. thecompany/press/releases/2010/04/1403231. Accessed 11 January 2010
  2. 2.
    Hung P, Flynn M J (1999) Optimum Instruction-level Parallelism (ILP) for Superscalar and VLIW Processors. Technical report, Stanford UniversityGoogle Scholar
  3. 3.
    Steffan J G, Mowry T C (1998) The Potential for Using Thread Level Data Speculation to Facilitate Automatic Parallelization. Proceedings of the 4th International Symposium on High- Performance Computer Architecture: 2–13Google Scholar
  4. 4.
    Liu S, Gaudiot J-L (2008) The Potential of Fine-Grained Value Prediction in Enhancing the Performance of Modern Parallel Machines. 13th Asia-Pacific Computer Systems Architecture Conference: 1-8Google Scholar
  5. 5.
    Bridges M, Vachharajani N, Zhang Y, Jablin T, August D (2007) Revisiting the Sequential Programming Model for Multi-Core. Proceedings of the 40th Annual IEEE/ACM International Symposium on Microarchitecture: 69-84Google Scholar
  6. 6.
    Prabhu P, Ramalingam G, Vaswani K (2010) Safe Programmable Speculative Parallelism. Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation: 50-61Google Scholar
  7. 7.
    Vajda A, Stenström P (2010) Semantic Information based Speculative Parallel Execution. Proceedings 3rd Workshop on Parallel Execution of Sequential Programs on Multi-Core ArchitecturesGoogle Scholar
  8. 8.
    Axelsson E, Claessen K, Devai G et al (2010) Feldspar: A Domain Specific Language for Digital Signal Processing algorithms. Proceedings of the 8th ACM/IEEE International Conference on Formal Methods and Models for CodesignGoogle Scholar
  9. 9.
    Chafi H, Sujeeth A K, Brown K J, Lee H J, Atreya A R, Olukotun K (2011) A Domain-Specific Approach to Heterogeneous Parallelism. Proceedings of the 16th Annual Symposium on Principles and Practice of Parallel ProgrammingGoogle Scholar
  10. 10.
    Chafi H, DeVito Z, Moors A, Rompf T, Sujeeth A K, Hanrahan P, Odersky M, Olukotun K (2010) Language Virtualization for Heterogeneous Parallel Computing. Onward! ’10: Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and ApplicationsGoogle Scholar
  11. 11.
    Odersky M, Spoon L, Venners B (2008) Programming in Scala: A Comprehensive Step-by-Step Guide. Artima IncGoogle Scholar
  12. 12.
    Cadar C, Pietzuch P, Wolf A L (2010) Multiplicity Computing: A Vision of Software Engineering for Next-Generation Computing Platform Applications. FSE/SDP Workshop on the Future of Software Engineering Research: 81-86Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  1. 1.Oy L M Ericsson AbJorvasFinland

Personalised recommendations