{'fraction_non_alphanumeric': 0.02247191011235955, 'fraction_numerical': 0.0010214504596527069, 'mean_word_length': 4.536723163841808, '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 CPU-GPU Cooperative Sorting Approach

Sorting is a fundamental operation in computer science. Sorting is normally done in CPU. Graphics processing Units (GPU) are basically used to render graphical objects. Nowadays GPUs are also used for high-performance general-purpose computation. Due to the availability of GPUs for general purpose computation sorting can also be done on GPUs. The CPU has fewer cores, but it operates at higher frequency than GPUs. GPUs possess large number of cores and hence provide high throughput. The drawback of CPU-GPU execution model is that when the GPU is executing, the CPU remains idle. Due to this model of execution enormous computation power of CPU cores is wasted. By cooperatively utilizing both CPU and GPU for performing a task, we can reduce the computation time of a task. In this paper we perform merge sort using both CPU and GPU cooperatively. With this method we obtained a speedup of around 3 compared to the GPU-only execution.