Optimizing Single-Source Graph Execution on NUMA Machines - Rocha, Hiago Mayk G. de A.; Querol, Vicenç Beltran; Lorenzon, Arthur F.; Beck, Antonio Carlos S. (Anais do Simpósio Brasileiro de Engenharia de Sistemas Computacionais (SBESC); 2023: Anais do XIII Simpósio Brasileiro de Engenharia de Sistemas Computacionais, 2023)
Graphs are data structures capable of representing problems from different domains, such as logistics and social networks. However, these massive graphs stored in high-performance computing (HPC) servers start processing from distinct source vertices (i.e., single-source: such as a different user or message in a social network). Therefore, the amount of vertices and the structure of the sub-graphs to be processed will also change depending on the source, highly influencing the graph algorithm behavior and performance. In this paper, we propose GraphNroll, a framework to extract the full potential of these single-source graph algorithms by exploiting the fact that the majority of the HPC servers are on Non-Uniform Memory Access (NUMA) architectures and, therefore, highly dependent of thread and data mapping. GraphNroll adjusts the thread and data mapping on NUMA machines by using only the embeddings of the source vertices (i.e., vector representations that encode the graph topology) to find the best configuration in terms of thread/data mapping. For that, GraphNroll learns over such embeddings to build a machine learning model capable of predicting the mapping solutions for a new algorithm execution without any profiling. Our results show that GraphNroll is, on average, 8% (up to 18%) faster than the Linux OS Default and Random solutions on three NUMA machines while reducing energy consumption.