{'fraction_non_alphanumeric': 0.016181229773462782, 'fraction_numerical': 0.0040453074433656954, 'mean_word_length': 5.476439790575916, '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}}
A Study on the Implementation of Tridiagonal Systems Solvers Using a GPU

In recent years the use of secondary hardware to accelerate computation of general-purpose problems has emerged as an alternative to traditional high performance computing (HPC) hardware. Specially, the use of graphics processors (GPUs) in the field of HPC has grown given their inherent parallel architecture and low cost. In a previous work, we have studied a preliminary implementation of the cyclic reduction method to tackle tridiagonal linear systems. In this article, we improve our previous implementation in order to accelerate the tridiagonal solvers on GPU using efficient memory techniques, such as pinned memory and coalesced access. The article also presents the implementation of parallel cyclic reduction method on GPU. We analyze and implement several methods for solving tridiagonal systems on GPUs. These implementations were evaluated on different hardware platforms, obtaining significant accelerations, allowing speedups of 3× on a NVIDIA C1060 GPU. The obtained results demonstrate that this new proposal can achieve significant speedup values when compared to an implementation of Thomas method on CPU and our previous GPU implementation.