US 11,768,754 B2
Parallel program scalability bottleneck detection method and computing device
Jidong Zhai, Beijing (CN); Yuyang Jin, Beijing (CN); Wenguang Chen, Beijing (CN); and Weimin Zheng, Beijing (CN)
Assigned to TSINGHUA UNIVERSITY, Beijing (CN)
Appl. No. 18/17,883
Filed by Tsinghua University, Beijing (CN)
PCT Filed Aug. 27, 2020, PCT No. PCT/CN2020/111588
§ 371(c)(1), (2) Date Jan. 25, 2023,
PCT Pub. No. WO2022/041024, PCT Pub. Date Mar. 3, 2022.
Prior Publication US 2023/0244588 A1, Aug. 3, 2023
Int. Cl. G06F 9/44 (2018.01); G06F 11/34 (2006.01); G06F 8/41 (2018.01)
CPC G06F 11/3466 (2013.01) [G06F 8/433 (2013.01)] 16 Claims
OG exemplary drawing
 
1. A computer executed parallel program scalability bottleneck detection method, which is used for detecting scalability bottlenecks of a parallel program, the method comprising:
building, by a processor, a program structure graph for a program source code;
collecting, by the processor, performance data based on a sampling technique during runtime, the performance data comprises performance data of each vertex of the program structure graph and inter-process communication dependence of communication vertices;
building, by the processor, a program performance graph by filling the program structure graph with the collected performance data, the program performance graph recording data and control dependence edges of each process as well as inter-process communication dependence;
detecting, by the processor, problematic vertices from the program performance graph, the detecting problematic vertices from the program performance graph comprises detecting non-scalable vertices and abnormal vertices, wherein a non-scalable vertex refers to a vertex whose performance-process count curve does not reach a pre-defined performance growth standard when a process count increases, and an abnormal vertex refers to a vertex whose difference from other vertices is greater than a pre-defined threshold during comparison of performance data of a same vertex between different processes; and
starting, by the processor, from some or all of the problematic vertices, backtracking through data and control dependence edges within a process and communication dependence edges between different processes, to detect scalability bottleneck vertices.