Instruments of Productivity for High Performance Computing
Instruments de productivité pour le calcul haute performance
Résumé
High performance computing (HPC) is now well established as the cornerstone for building and conducting software simulations in numerous scientific and industrial fields. The hardware complexity of supercomputers is steadily increasing, however, to deliver ever improved computing performance, causing the complexity of HPC application development to increase as well. As a result, the need for tools and methodologies to compensate the development complexity by reducing the costs it induces —that is, the need for instruments to improve productivity in HPC development— has never been so pressing. This manuscript builds on the experience I have gathered while being involved in the design of several of such instruments of productivity for HPC, over the course of my academic career in computer science research, to study the technical choices made, the lessons learnt, and to discuss upcoming challenges and priorities.
Le calcul intensif (HPC) est désormais bien établi comme la pierre d'angle pour construire et mener des simulations logicielles dans d'innombrables domaines scientifiques et industriels. Cependant, la complexité des supercalculateurs croît de façon soutenue, pour fournir des performances de calcul sans cesse améliorées, provoquant par là même la complexification du développement d'applications HPC. En conséquence, le besoin d'outils et de méthodologies pour compenser la complexité du développement en réduisant les coûts qu'elle induit — c'est-à-dire le besoin d'instruments de productivité pour le développement HPC — n'a jamais été aussi pressant. Ce manuscrit s'appuie sur l'expérience que j'ai acquise durant ma carrière académique dans la recherche en informatique à travers la conception de plusieurs de ces instruments de productivité pour le HPC, afin d'étudier les choix techniques effectués, les enseignements, et de discuter des défis et priorités à venir.