Search papers, labs, and topics across Lattice.
This study evaluates the performance of process-based and thread-based scheduling strategies in many-core shared-memory systems using a memory-intensive row-wise quick-sort workload on large three-dimensional tensors. It finds that thread schedulers, particularly dynamic and guided scheduling, outperform process schedulers in overall performance, while pipe-based process schedulers excel in scalability for varying workload sizes. The results highlight the effectiveness of lightweight thread scheduling for shared-memory tasks and the potential of AIMD/adaptive scheduling for managing contention and coordination in distributed workloads.
Thread-based scheduling outperforms process-based methods in many-core systems, revealing critical insights for optimizing performance in memory-intensive tasks.
This study assesses the scalability of process-based and thread-based schedulers for many-core shared-memory systems using a memory-intensive row-wise quick-sort workload on large three-dimensional tensors. The process-based evaluation considers bounded prolific, bounded collective, and three pipe-based producer-consumer schedulers: one-to-one, one-to-many, and many-to-many. These pipe schedulers dynamically stream task identifiers to worker processes, exchanging increased inter-process communication overhead for enhanced runtime load balancing and flexible chunk-based task dispatching. The thread-based evaluation examines static, dynamic, guided, chunk-based, chunk-stealing, adaptive chunk, and AIMD adaptive scheduling strategies. The AIMD scheduler employs an additive-increase multiplicative-decrease policy inspired by TCP congestion control, utilizing an exponentially weighted moving average (EWMA) of CPU utilization to regulate a contention window that limits the number of concurrently active chunks. The adaptive chunk scheduler further modifies chunk size based on observed per-thread execution speed. Experimental results on a 24-core x86-64 platform indicate that thread schedulers deliver the highest overall performance, with dynamic and guided scheduling yielding the most favorable practical outcomes. Among process schedulers, pipe-based designs demonstrate the strongest scalability, with one-to-one pipes excelling for smaller workloads and many-to-many pipes preferred for larger workloads. In summary, lightweight thread scheduling is optimal for shared-memory row sorting, while AIMD/adaptive scheduling and pipe-based process scheduling remain valuable for contention-aware execution, explicit inter-process coordination, and distributed-style heterogeneous workload management.