{'fraction_non_alphanumeric': 0.02198852772466539, 'fraction_numerical': 0.0038240917782026767, 'mean_word_length': 5.0520231213872835, '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}}
Modeling performance through memory-stalls

We aim at modeling the performance of linear algebra algorithms without executing either them or parts of them. The performance of an algorithm can be expressed in terms of the time spent on CPU execution and on memory-stalls. The main concern of this paper is to build analytical models to accurately predict memory-stalls. The scenario in which data resides in the L2 cache is considered; with this assumption, only L1 cache misses occur. We construct an analytical formula for modeling the L1 cache misses of fundamental linear algebra operations such as those included in the Basic Linear Algebra Subprograms (BLAS) library. The number of cache misses occurring in higher-level algorithms "like a matrix factorization" is then predicted by combining the models for the appropriate BLAS subroutines. As case studies, we consider GER, a BLAS level-2 operation, and the LU factorization. The models are validated on both Intel and AMD processors, attaining remarkably accurate performance predictions.