Abstract: Supercomputers are becoming increasingly complex due to the prevalence of hierarchy and heterogeneity in emerging node and system architectures. As a result of these trends, users of conventional programming models for scalable high-performance applications increasingly find themselves writing applications using a mix of distinct programming models—such as Fortran90, C, C++, MPI, OpenMP, and CUDA—which are also often becoming more complex and detail-oriented themselves. These trends negatively impact the costs of developing, porting, and maintaining HPC applications.
Meanwhile, new programming models and languages are being developed that strive to improve upon the status quo by unifying the expression of parallelism and locality across the system, raising the level of abstraction, making use of modern language design features, and/or leveraging the respective strengths of programmers, compilers, runtimes, and operating systems. These alternatives may take the form of parallel programming languages (e.g., Chapel, Fortran 2018, Julia, UPC), frameworks for large-scale data processing and analytics (e.g., Spark, Tensorflow, Dask), or libraries and embedded DSLs that extend existing languages (e.g., Legion, COMPSs, SHMEM, HPX, Charm++, UPC++, Coarray C++, Global Arrays).
The PAW-ATM workshop is designed to explore the expression of applications in scalable parallel programming models that serve as an alternative to the status quo. It is designed to bring together applications experts and proponents of high-level programming models to present concrete and practical examples of using such alternative models and to illustrate the benefits of high-level approaches to scalable programming.