Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
en:services:application_services:high_performance_computing:performance_engineering_and_analysis:scalasca [2022/10/27 15:14] – jogaja | en:services:application_services:high_performance_computing:performance_engineering_and_analysis:scalasca [2022/10/27 15:19] (current) – [Architecture] jogaja | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ==== Scalasca ==== | ||
+ | Scalasca is a software tool that supports the performance optimization of parallel programs by measuring and analyzing their runtime behavior. The analysis identifies potential performance bottlenecks – in particular those concerning communication and synchronization – and offers guidance in exploring their causes. | ||
+ | |||
+ | === Architecture === | ||
+ | Scalasca supports a basic performance analysis workflow where, the instrumentation of the application of interest is done before any performance data can be collected, i.e. probes must be inserted into the code that carry out the measurements. The figure below shows the performance analysis workflow supported by Scalasca (from www.scalasca.org). | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Application Instrumentation ==== | ||
+ | Before using Scalasca Trace Tools, applications of interest first need to be instrumented. The instrumentation is done using the community | ||
+ | instrumentation and measurement infrastructure [[en: | ||
+ | |||
+ | Depending on the size of the code or library being instrumented, | ||
+ | |||
+ | Besides the summary, Scalasca also generates wait-state reports. During the analysis, Scalasca searches for wait states, classifies detected instances by category, and quantifies their significance. The result is a wait-state report similar in structure to the summary report but enriched with higher-level communication and synchronization inefficiency metrics. Both summary and wait-state reports contain performance metrics for every combination of function call path and process/ | ||
+ | |||
+ | Additionally, | ||
+ | |||
+ | === Functionality === | ||
+ | Scalasca takes performance measurements at runtime to be analyzed postmortem (i.e., after program termination) and can be used in two different analysis modes: | ||
+ | * Profile mode: Performance overview on the call-path level via runtime summarization | ||
+ | * Trace mode: In-depth study of application behavior via event tracing | ||
+ | |||
+ | In profiling mode, Scalasca generates aggregate performance metrics for individual function call paths, which are useful to identify the most resource-intensive parts of the program and to analyze process-local metrics such as those derived from hardware counters. While, In tracing mode, Scalasca goes one step further and records individual performance-relevant events, allowing the automatic identification of call paths that exhibit wait states. In both cases, the resulting reports can be interactively explored in a graphical browser as shown in the figure below (from www.scalasca.org).. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | === Quick Start in SCC === | ||
+ | * Scalasca Trace Tools are available in SCC together with the necessary instrumentation tool [[en: | ||
+ | |||
+ | < | ||
+ | (base) gwdu101:25 17:17:18 ~ > module show scalasca | ||
+ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ||
+ | / | ||
+ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ||
+ | ... | ||
+ | |||
+ | (base) gwdu101:25 17:17:24 ~ > | ||
+ | (base) gwdu101:25 17:18:33 ~ > module load scalasca | ||
+ | (base) gwdu101:25 17:18:43 ~ > | ||
+ | </ | ||
+ | |||
+ | ==== Additional information ==== | ||
+ | For additional information, | ||
+ | * [Scalasca](https:// | ||
+ | |||
+ | |||