Font Size: a A A

Performance Fault Detection And Avoidance For Parallel Programs

Posted on:2020-07-02Degree:DoctorType:Dissertation
Country:ChinaCandidate:X C TangFull Text:PDF
GTID:1368330626964406Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
Parallel programs have been widely used nowadays,and their performance becomes a critical issue.Unfortunately,system hardware or software failures and shared resource contention can lead to performance faults in parallel programs,resulting in a waste of resources and even incalculable losses.Therefore,the detection and avoidance of perfor-mance fault for parallel programs is of crucial importance.Although researchers have made great efforts,state-of-the-art solutions still have several drawbacks.For detection,they introduce too much overhead or fail to generate easy-to-understand results.For avoidance,they do not adequately consider the characteristics of systems and programsIn this work,we investigate how to detect performance fault with low overhead and generate easy-to-understand results,and how to use the characteristics of programs and systems to avoid performance fault better.More particularly,the contributions of this work are as follows:(1)We propose vSENSOR,a performance fault detection approach that leverages programs' source code for light-weight online detection.Many parallel programs contain code snippets that are repeatedly executed with a fixed workload.Those code snippets can be used as benchmarks to detect performance variance.vSENSOR identifies such snippets via compiler techniques and is able to detect performance fault with the source code of programs,instead of relying on external test programs.vSENSOR introduces less than 4%of runtime performance overhead(average in 1.99%)in our experiments(2)We propose VAPRO,a lightweight performance variance detection approach for production-run parallel programs.VAPRO intercepts external function invocations to split the running progress of a parallel program into slices,and then leverages runtime infor-mation like PMU and invocation arguments to analyze the workload and performance for each slice.Compared with vSENSOR,VAPRO does not require any analysis or modification on the source code and binary of programs;thus it is more portable,more practical,and suitable for production-run programs like CESM.The runtime performance overhead of VAPRO is less than 10%in our experiments,and the average is 2.38%(3)We propose UBERUN for performance fault avoidance.UBERUN analyzes the diversity of resource(especially LLC and memory bandwidth)requirements for parallel programs.With the resource requirement profile,UBERUN uses a "spread-and-share"strategy to distribute processes to avoid inter-and intra-program resource competition As a result,UBERUN improves the performance of parallel programs by 16.2%on average,and also improves system throughput by 5.4%on average(4)We propose PLOCK to avoid performance fault related to mutex lock.Explicit inter-core message passing is an emerging feature introduced by recent architectures.We design PLOCK on top of this architectural feature to avoid the cache or memory competi-tion occurs in traditional shared-memory based mutex lock.Compared with a traditional shared-memory based lock design,PLOCK improves the throughput to 27.37×.Addition-ally,PLOCK is optimized for inter-core message passing.It reduces the competition of inter-core network and thus improves the performance of mutex lock.Compared with the basic design with inter-core message passing,PLOCK reduces two third of messages,improves the throughput by 284%,and reduces 95%of latency.
Keywords/Search Tags:parallel program, performance fault detection, performance fault avoidance, shared resource allocation, mutex lock
PDF Full Text Request
Related items