发明名称 Systems and methods for adaptive integration of hardware and software lock elision techniques
摘要 Particular techniques for improving the scalability of concurrent programs (e.g., lock-based applications) may be effective in some environments and for some workloads, but not others. The systems described herein may automatically choose appropriate ones of these techniques to apply when executing lock-based applications at runtime, based on observations of the application in the current environment and with the current workload. In one example, two techniques for improving lock scalability (e.g., transactional lock elision using hardware transactional memory, and optimistic software techniques) may be integrated together. A lightweight runtime library built for this purpose may adapt its approach to managing concurrency by dynamically selecting one or more of these techniques (at different times) during execution of a given application. In this Adaptive Lock Elision approach, the techniques may be selected (based on pluggable policies) at runtime to achieve good performance on different platforms and for different workloads.
申请公布号 US9619281(B2) 申请公布日期 2017.04.11
申请号 US201514936619 申请日期 2015.11.09
申请人 Oracle International Corporation 发明人 Dice David;Kogan Alex;Lev Yosef;Merrifield Timothy M.;Moir Mark S.
分类号 G06F9/46;G06F9/48;G06F9/50;G06F9/52 主分类号 G06F9/46
代理机构 Meyertons, Hood, Kivlin, Kowert & Goetzel, P.C. 代理人 Kowert Robert C.;Meyertons, Hood, Kivlin, Kowert & Goetzel, P.C.
主权项 1. A method, comprising: performing by a computer: beginning instrumentation of code of a multithreaded application,wherein the application comprises at least one critical section of code that is associated with a lock, and wherein when the lock is held by a thread, other threads are prevented from accessing resources that are protected by the lock;declaring, for one or more respective locks of the at least one critical section, metadata for use by an adaptive lock elision library, wherein the metadata for a given lock comprises a respective label corresponding to the given lock;selecting one of a plurality of mechanisms for executing the critical section without acquiring the lock; andinstrumenting the critical section for execution using the selected one of the plurality of mechanisms, wherein the instrumenting the critical section comprises replacing a call for the lock with a call to the adaptive lock elision library.
地址 Redwood City CA US