Title: Guest Editorial: High-Level Parallel Programming and Applications
Abstract: The arrival of the multi-/many-core systems has produced a game-changing event for the computing industry, which today, much more than few years ago, is relying on parallel processing as a means of improving application performance.Although a wide gap still exists between parallel architectures and parallel programming maturity, the only way forward to keep increasing performance and reducing power consumption is through parallelism.Any program must become a parallel program in order to exploit the capabilities of modern computers at any scale.In the industrial practice, parallel programming is still dominated by low-level machine-centric unstructured approaches based on tools and specialized libraries that originate from high performance computing.Parallel programming at this level of abstraction is difficult, error-prone, time-consuming and, hence, economically infeasible in most application domains.Now, more than ever, it is crucial that the research community makes a significant progress toward making the development of parallel code accessible to all programmers, rather than allowing parallel programming to continue to be the domain of specialized expert programmers.Achieving a proper trade-off among performance, programmability and portability issues is becoming a must.Parallel and distributed programming methodologies are currently dominated by low-level techniques such as send/receive message passing or data sharing coordinated by locks.These abstractions are not a good fit for reasoning about parallelism.In this evolution/revolution phase, a fundamental role is played by high-level and portable programming tools as well as application development frameworks.They may offer