【24h】

Hoard

机译:

获取原文

摘要

Parallel, multithreaded C and C++ programs such as web servers, database managers, news servers, and scientific applications are becoming increasingly prevalent. For these applications, the memory allocator is often a bottleneck that severely limits program performance and scalability on multiprocessor systems. Previous allocators suffer from problems that include poor performance and scalability, and heap organizations that introduce false sharing. Worse, many allocators exhibit a dramatic increase in memory consumption when confronted with a producer-consumer pattern of object allocation and freeing. This increase in memory consumption can range from a factor of P (the number of processors) to unbounded memory consumption.This paper introduces Hoard, a fast, highly scalable allocator that largely avoids false sharing and is memory efficient. Hoard is the first allocator to simultaneously solve the above problems. Hoard combines one global heap and per-processor heaps with a novel discipline that provably bounds memory consumption and has very low synchronization costs in the common case. Our results on eleven programs demonstrate that Hoard yields low average fragmentation and improves overall program performance over the standard Solaris allocator by up to a factor of 60 on 14 processors, and up to a factor of 18 over the next best allocator we tested.
机译:并行,多线程的C和C ++程序(例如Web服务器,数据库管理器,新闻服务器和科学应用程序)正变得越来越普遍。对于这些应用程序,内存分配器通常是一个瓶颈,严重限制了多处理器系统上的程序性能和可伸缩性。以前的分配器遭受的问题包括性能和可伸缩性较差,以及引入错误共享的堆组织。更糟糕的是,许多分配器在遇到对象分配和释放的生产者-消费者模式时,会显着增加内存消耗。内存消耗的增加范围从 P (处理器数量)到无限制的内存消耗。本文介绍了Hoard,这是一种快速,高度可扩展的分配器,可很大程度上避免错误共享并提高内存效率。 Hoard是第一个同时解决上述问题的分配器。 Hoard将一个全局堆和每个处理器堆与一种新颖的规则结合在一起,该规则可证明限制了内存消耗,并且在通常情况下具有非常低的同步成本。我们在11个程序上的结果表明,与标准Solaris分配器相比,Hoard产生的平均碎片率低,并且在14个处理器上将程序的整体性能提高了60倍,而在我们测试的下一个最佳分配器上,其提高了18倍。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号