Lock-Free and Wait-Free Slot Scheduling Algorithms

In this paper, we consider the design space of parallel non-blocking slot scheduling algorithms. Slot schedulers divide time into discrete quanta called slots , and schedule resources at the granularity of slots. They are typically used in high throughput I/O systems, data centers, video servers, and network drivers. We propose a family of parallel slot scheduling problems of increasing complexity, and then propose parallel lock-free and wait-free algorithms to solve them. In specific, we propose problems that can reserve, as well as free a set of contiguous slots in a non-blocking manner. We show that in a system with 64 threads, it is possible to get speedups of 10X by using lock-free algorithms as compared to a baseline implementation that uses locks. We additionally propose wait-free algorithms, whose mean performance is roughly the same as the version with locks. However, they suffer from significantly lower jitter and ensure a high degree of fairness among threads.

[1]  Smruti R. Sarangi,et al.  RADIR: Lock-free and wait-free bandwidth allocation models for solid state drives , 2014, 2014 21st International Conference on High Performance Computing (HiPC).

[2]  Liana L. Fong,et al.  An Infrastructure for Efficient Parallel Job Execution in Terascale Computing Environments , 1998, Proceedings of the IEEE/ACM SC98 Conference.

[3]  Gadi Taubenfeld,et al.  Disentangling Multi-object Operations , 1997 .

[4]  Mark Moir,et al.  Wait-free synchronization in multiprogrammed systems: integrating priority-based and quantum-based scheduling , 1999, PODC '99.

[5]  Smruti R. Sarangi,et al.  Software Transactional Memory Friendly Slot Schedulers , 2014, ICDCIT.

[6]  Maurice Herlihy,et al.  The Art of Multiprocessor Programming, Revised Reprint , 2012 .

[7]  Erez Petrank,et al.  Wait-free queues with multiple enqueuers and dequeuers , 2011, PPoPP '11.

[8]  Keir Fraser,et al.  A Practical Multi-word Compare-and-Swap Operation , 2002, DISC.

[9]  Jordi Torres,et al.  GreenSlot: Scheduling energy consumption in green datacenters , 2011, 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[10]  Yu-Chee Tseng,et al.  Simple and Regular Mini-Slot Scheduling for IEEE 802.16d Grid-Based Mesh Networks , 2010, 2010 IEEE 71st Vehicular Technology Conference.

[11]  Håkan Sundell Wait-Free Multi-Word Compare-and-Swap Using Greedy Helping and Grabbing , 2011, International Journal of Parallel Programming.

[12]  Christos Faloutsos,et al.  On multidimensional data and modern disks , 2005, FAST'05.

[13]  Robert Tappan Morris,et al.  An Analysis of Linux Scalability to Many Cores , 2010, OSDI.

[14]  Christopher J. Hughes,et al.  Carbon: architectural support for fine-grained parallelism on chip multiprocessors , 2007, ISCA '07.

[15]  Kai Shen,et al.  FIOS: a fair, efficient flash I/O scheduler , 2012, FAST.

[16]  Min-You Wu,et al.  On Runtime Parallel Scheduling for Processor Load Balancing , 1997, IEEE Trans. Parallel Distributed Syst..

[17]  John K. Ousterhout Scheduling Techniques for Concurrebt Systems. , 1982, ICDCS 1982.

[18]  Sartaj Sahni,et al.  Parallel Scheduling Algorithms , 1983, Oper. Res..

[19]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[20]  Smruti R. Sarangi,et al.  Lock-Free and Wait-Free Slot Scheduling Algorithms , 2016, IEEE Transactions on Parallel and Distributed Systems.

[21]  Gregory R. Ganger,et al.  Argon: Performance Insulation for Shared Storage Servers , 2007, FAST.