Multiprocessor Real-Time Locking Protocols for Replicated Resources

A real-time multiprocessor synchronization problem is studied herein that has not be extensively studied before, namely, the management of replicated resources where tasks may require multiple replicas to execute. In prior work on replicated resources, k-exclusion locks have been used, but this restricts tasks to lock only one replica at a time. To motivate the need for unrestricted replica sharing, two use cases are discussed that reveal an interesting tradeoff: in one of the use cases, blocking is the dominant lock-related factor impacting schedulability, while in the other, lock/unlock overheads are. Motivated by these use cases, three replica-allocation protocols are presented. In the first two, the lock/unlock logic is very simple, yielding low overheads, but blocking is not optimal. In the third, blocking is optimal (ignoring constant factors), but additional lock/unlock overhead is incurred to properly order lock requests. Experiments are presented that examine the overhead/blocking tradeoff motivated by these protocols in some detail.

[1]  Jens H. Krüger,et al.  A Survey of General‐Purpose Computation on Graphics Hardware , 2007, Eurographics.

[2]  Martin Uecker,et al.  A Multi-GPU Programming Library for Real-Time Applications , 2012, ICA3PP.

[3]  Anthony Lauck,et al.  Hashed and hierarchical timing wheels: data structures for the efficient implementation of a timer facility , 1987, SOSP '87.

[4]  James H. Anderson,et al.  Exploring the Multitude of Real-Time Multi-GPU Configurations , 2014, 2014 IEEE Real-Time Systems Symposium.

[5]  James H. Anderson,et al.  Scheduling and locking in multiprocessor real-time operating systems , 2011 .

[6]  James H. Anderson,et al.  Outstanding Paper Award: Making Shared Caches More Predictable on Multicore Platforms , 2013, 2013 25th Euromicro Conference on Real-Time Systems.

[7]  James H. Anderson,et al.  Real-time resource-sharing under clustered scheduling: mutex, reader-writer, and k-exclusion locks , 2011, 2011 Proceedings of the Ninth ACM International Conference on Embedded Software (EMSOFT).

[8]  Glenn A. Elliott Real-Time Scheduling for GPUs with Applications in Advanced Automotive Systems , 2015 .

[9]  Bryan C. Ward Relaxing Resource-Sharing Constraints for Improved Hardware Management and Schedulability , 2015, 2015 IEEE Real-Time Systems Symposium.

[10]  John D. Owens Towards multi-GPU support for visualization , 2007 .

[11]  James H. Anderson,et al.  An optimal k-exclusion real-time locking protocol motivated by multi-GPU systems , 2012, Real-Time Systems.

[12]  James H. Anderson,et al.  GPUSync: A Framework for Real-Time GPU Management , 2013, 2013 IEEE 34th Real-Time Systems Symposium.

[13]  Allan Borodin,et al.  Resource allocation with immunity to limited process failure , 1979, 20th Annual Symposium on Foundations of Computer Science (sfcs 1979).

[14]  Michael L. Scott,et al.  Algorithms for scalable synchronization on shared-memory multiprocessors , 1991, TOCS.

[15]  James H. Anderson,et al.  A contention-sensitive fine-grained locking protocol for multiprocessor real-time systems , 2015, RTNS.

[16]  Yong Liao,et al.  PK-OMLP: An OMLP Based k-Exclusion Real-Time Locking Protocol for Multi-GPU Sharing under Partitioned Scheduling , 2013, 2013 IEEE 11th International Conference on Dependable, Autonomic and Secure Computing.