{'fraction_non_alphanumeric': 0.019471488178025034, 'fraction_numerical': 0.004172461752433936, 'mean_word_length': 5.02092050209205, '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}}
Accelerating scientific algorithms in array databases with GPUs

In data science, interactive data analysis allows to very efficiently interpret what information is in the data. However, with increasing amounts of data available, the data crunching and data presentation becomes a more complex and resource-demanding task. Array databases allow to mitigate this difficulty by distributing the workload on a cluster. But there are two major challenges. Firstly, they rely on CPUs to process the data. Secondly, it is difficult to represent complex scientific algorithms in terms of native database operations. A way to integrate GPU accelerated algorithms is needed. In this paper, we study and test how to run scientific algorithms on GPUs entirely as native array database operators. We present the implementation of a specific scientific algorithm as exemplary use case. The computation of the Differential Emission Measure (DEM) calculates the distribution of plasma density in the solar corona at specific temperatures. DEM uses image series of the NASA spacecraft Solar Dynamic Observatory (SDO). We stack these images in a 3-dimensional array and process the data on GPUs, distributed in an array database cluster. For our algorithm, we measure a decrease of the overall runtime by a factor of 10700. We discuss different strategies used to minimize the overhead of GPUs and parameters used to scale the array database to a cluster.