{'fraction_non_alphanumeric': 0.018733850129198967, 'fraction_numerical': 0.0012919896640826874, 'mean_word_length': 5.296747967479675, '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}}
GAS: GPU Assisted Process Scheduling for Multicore Systems

The challenges of process scheduling in multicore systems are more complex compared to those in single-core systems. Parameters such as number of process migrations, individual core component utilization, bus contention, etc., are not considered for making scheduling decisions in the Completely Fair Share (CFS) scheduler present in most Linux kernels. This leads to non-uniform core utilization at the functional unit level. Redesigning schedulers by considering an increased number of parameters for process scheduling is inefficient due to the increased computational complexity and high frequency of calls to the scheduler. Offline profile analysis for scheduling is not advisable as it fails to capture the runtime behaviour of processes if the workload is not periodic. We propose GAS, a GPU assisted scheduling framework for leveraging computational power offered by General-purpose computing on graphics processing units (GPGPU) compute models. Our proposed solution improves the scheduling performance in terms of core component and shared resource utilization. We further extend GAS by using it as a service provided by a GPU cluster. This service can be subscribed by a set of less powerful systems for efficient process scheduling. GAS stabilizes the system at runtime, based on the hardware performance counters. Experiments on the real-world Spark-bench benchmark show that GAS is able to achieve 24% reduction in execution time on average than the default Linux Scheduler.