{'fraction_non_alphanumeric': 0.013646702047005308, 'fraction_numerical': 0.0, 'mean_word_length': 5.633165829145729, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Identifying the Temporal Structure of Parallel Application Computation Phases

Performance analysis tools are essential to help developers improve the performance of their parallel applications. These tools have widely embraced graphical representations to ease the analyst experience. However, they might mislead the analysis if using questionable aggregation techniques, especially when dealing with much data in timelines. In this paper, we have put efforts to demonstrate the value of information theory topics when applied to performance analysis. To this end, we extend a previously designed tool named folding which focuses on a detailed exploration of computation phases using trace files containing instrumented and sampled information. We design appropriate representations for the folding output by adopting an innovative aggregation technique based on information theory. As we will demonstrate through the paper, the original implementation of this tool may hinder the analysis by the introduction of some artifacts as a result of the chosen aggregation techniques. Additionally, we extend the folding tool to provide a decent analysis overview to start the analysis. Last, but not least, we successfully apply the new flow to two in-production HPC applications and characterize their performance behavior.