From High-Level Specification to High-Performance Code

Computer architectures and systems are becoming ever more powerful but increasingly more complex. With the end of frequency scaling (about 2004) and the era of multicores/manycores/accelerators, it is exceedingly hard to extract the promised performance, in particular, at a reasonable energy budget. Only highly trained and educated experts can hope to conquer this barrier that, if not appropriately dealt with, can translate into multiple orders of magnitude of underutilization of computer systems when programmed by less specialized programmers or domain scientists. To overcome this challenge, the last ten years have seen a flurry of activity to automate the design and generation of highly efficient implementations for these multicore/manycore architectures, and to translate high level descriptions of programs into high performance and power efficiency.
The special issue titled From High-Level Specification to High-Performance Code published in Proceedings of the IEEE in November 2018, brings together the leading approaches to tackle this remarkably hard problem. The editors feature articles on program translation, software synthesis, and automatic performance tuning in the context of compilers and library generators, performance engineering, program generation, domain specific languages, and hardware synthesis for multicore/manycore architectures. They cover the range of machines from small scale level to the largest supercomputer installations and show that the underlying problems and techniques are remarkably similar.