2017/10/31 by Zahra Khatami, Lukas Troska, Hartmut Kaiser +2 · 9 citations
Computer Science · #Advanced Data Storage Technologies #Cloud Computing and Resource Management #Computational science #Computer science #Loop (graph theory) #Parallel Computing and Optimization Techniques #Parallel computing #Parallelism (grammar) #Process (computing) #Programming language #Stencil #cs.AI #cs.DC #cs.LG
paper · pdf · doi:10.1145/3152041.3152084
In Proceedings of ESPM2'17: Third International Workshop on Extreme Scale Programming Models and Middleware, Denver, CO, USA, November 12-17,,2017 (ESPM2'17), 8 pages
openalex publication_date 2017/10/31 · arxiv created 2017/11/05 · arxiv updated 2017/11/07 · openalex created_date 2020/11/23 · openalex updated_date 2026/08/05
The performance of many parallel applications depends on loop-level parallelism. However, manually parallelizing all loops may result in degrading parallel performance, as some of them cannot scale desirably to a large number of threads. In addition, the overheads of manually tuning loop parameters might prevent an application from reaching its maximum parallel performance. We illustrate how machine learning techniques can be applied to address these challenges. In this research, we develop a framework that is able to automatically capture the static and dynamic information of a loop. Moreover, we advocate a novel method by introducing HPX smart executors for determining the execution policy, chunk size, and prefetching distance of an HPX loop to achieve higher possible performance by feeding static information captured during compilation and runtime-based dynamic information to our learning model. Our evaluated execution results show that using these smart executors can speed up the HPX execution process by around 12% -- 35% for the Matrix Multiplication, Stream and 2D Stencil benchmarks compared to setting their HPX loop's execution policy/parameters manually or using HPX auto-parallelization techniques.