课题基金 / 基金详情

Garbage Collection for Multicore Platforms

Garbage Collection for Multicore Platforms
多核平台的垃圾收集
批准号:
EP/H026975/1
负责人:
Richard Jones
金额:
$48.93万
依托单位:
依托单位国家:
英国
项目类别:
Research Grant
财政年份:
2010
资助国家:
英国
项目状态:
已结题
起止时间:
2010 至 --

项目摘要

项目成果

Richard Jones的其他基金

相似基金

相关文献

中文摘要
翻译
点击翻译按钮获取中文摘要
英文摘要
Developers are increasingly turning to languages like Java and C# for their ease of development, deployment and maintenance. Most applications for the foreseeable future will be written in languages supported by managed runtimes, running on multicore hardware. Particular benefits of managed runtimes include support for automatic dynamic memory management, or 'garbage collection' (GC) and threads. GC allows programs to recycle unused memory automatically, without error-prone programmer intervention. Threading allows a program to run different sequences of instructions in parallel; for instance, a web server might employ a separate thread for each incoming request from internet browsers.One of the most significant recent developments for language implementers is the development of multicore processors, with the number of cores deployed in commodity platforms expected to increase significantly over the next 5 years. The complexity of the processor's access to memory has also increased, in terms of levels of memory hierarchy and in the technology interconnecting processors. However, modern runtime technology has not evolved as fast as hardware technology, and how to fully exploit hardware parallelism remains an open question.This research asks, how can we exploit hardware parallelism, in particular by running multiple user program ('mutator') and GC threads? How can we avoid paying penalties for non-local memory access, but still benefit from multiple paths to memory? How can we take proactive advantage of locality properties? How can we minimise synchronisation between mutator and GC threads?Today's concurrent GC techniques avoid relocating live objects, so as to minimise the need for this synchronisation, but this leads to poor use of memory with many small holes but nowhere to accommodate larger objects ('fragmentation'). The standard fragmentation solution - periodic compaction phases - has high overheads, and often lacks portability or leads to throughput slumps before mutator threads can operate at full speed again. Memory management will be a bottleneck for the next generation of increasingly thread parallel software unless the problem of high performance GC for multicore can be solved. This proposal aims to address this key problem, reconciling compaction with concurrency and performance.We believe that the key to exploiting modern multicore architectures is a judicious division of effort between mutator and GC threads, in order not simply to avoid paying the price of accessing non-local memory, but proactively to process data while it is in the cache. It is almost always worth paying the cost of executing a few more instructions in order to avoid accessing non-local data. Thus, if a mutator thread is about to access data (and hence it is or soon will be in the cache), it should perform some GC work on that data immediately. Other data should be left to be handled by separate GC threads. At no time should all mutator threads be halted waiting for the collector. Our aim is therefore to provide high throughput and very low pauses, by utilising parallel copying collector threads, running concurrently and carefully coupled with mutators in order to leverage locality.This research will benefit GC researchers by broadening the design space and devising and evaluating new concurrent GC techniques, and developers in the broad community through enabling them to tune their applications and GCs to modern architectures. A high-performance GC tuned to modern multicore hardware will also lower the barrier to deployment of future software applications that expect to exploit multicore hardware fully. We will make all code developed freely available under an Open Source license. As well as disseminating our results through journals and conferences, we shall organise two workshops in order to build UK research strength in this field.
期刊论文(10)
专著(0)
科研奖励(0)
会议论文
Exploring garbage collection with haswell hardware transactional memory
使用 Haswell 硬件事务内存探索垃圾回收
DOI: 10.1145/2602988.2602992
发表时间: 2014
期刊:
影响因子: --
作者: [Ritson C]
通讯作者: Ritson C
A black-box approach to understanding concurrency in DaCapo
理解 DaCapo 并发性的黑盒方法
DOI: 10.1145/2398857.2384641
发表时间: 2012
期刊: ACM SIGPLAN Notices
影响因子: --
作者: [Kalibera T]
通讯作者: Kalibera T
Quantifying Performance Changes with Effect Size Confidence Intervals
用效应大小置信区间量化性能变化
DOI: --
发表时间: 2012
期刊:
影响因子: --
作者: [Kalibera, T]
通讯作者: Kalibera, T
DOI: 10.1145/1806651.1806666
发表时间: 2010-06
期刊:
影响因子: --
作者: [L. Hellyer;Richard E. Jones;Antony Hosking]
通讯作者: L. Hellyer;Richard E. Jones;Antony Hosking
8
    Research and Education with GlueX
    • 批准号:
      2209480
    • 项目类别:
      Continuing Grant
    • 资助金额:
      $41.7万
    • 财政年份:
      2022
    • 负责人:
      Richard Jones
    • 依托单位:
    Enhancing UK Flood Resilience: Past Floods, Present Threats, Future Responses
    • 批准号:
      AH/T006064/1
    • 项目类别:
      Research Grant
    • 资助金额:
      $4.6万
    • 财政年份:
      2020
    • 负责人:
      Richard Jones
    • 依托单位:
    CC* Compute: Shared Computing Infrastructure for Large-scale Science Problems
    • 批准号:
      1925716
    • 项目类别:
      Standard Grant
    • 资助金额:
      $40.0万
    • 财政年份:
      2019
    • 负责人:
      Richard Jones
    • 依托单位:
    Research and Education with GlueX
    • 批准号:
      1812415
    • 项目类别:
      Continuing Grant
    • 资助金额:
      $36.3万
    • 财政年份:
      2018
    • 负责人:
      Richard Jones
    • 依托单位:
    海外基金