Skip to Main Content
Summary form only given. This presentation discusses some key issues based on the objective of finding a viable compromise between the goals of providing an API at a high level of abstraction and meeting the challenges related to target code performance, power consumption, and fault tolerance. We particularly address the question to which degree recent experiences in language design for peta-scale computing systems, such as those developed in the high-productivity-computing-systems (HPCS) program, can contribute to the problem of programming multi-core systems in a productive, efficient, and reliable way. The final part of the paper deals with a new approach for exploiting the massive parallelism provided by the abundance of threads in future multi-core systems. Besides their conventional use for fine-grain parallelism in application programs, threads can be used to support introspection, enabling a software system to become self-aware by monitoring its execution behavior, reasoning about its internal state, and making decisions about appropriate changes of the system or system state when necessary. In addition to supporting graceful degradation in the case of faults, introspection can be also applied to areas such as performance tuning and power management.