徒然なるままに

Mail: topography "AT" mail.goo.ne.jp

Hoard Memory Allocator, Version 3.6.2, May 25 2007

2007-05-27 | SuperComputer
[07/05/30]
TCMalloc : Thread-Caching Malloc, Sanjay Ghemawat, Google
 http://google-perftools.googlecode.com/svn/trunk/doc/tcmalloc.html
Motivation
"TCMalloc is faster than the glibc 2.3 malloc (available as a separate library called ptmalloc2) and other mallocs that I have tested. ptmalloc2 takes approximately 300 nanoseconds to execute a malloc/free pair on a 2.8 GHz P4 (for small objects). The TCMalloc implementation takes approximately 50 nanoseconds for the same operation pair."

"TCMalloc also reduces lock contention for multi-threaded programs."

"Another benefit of TCMalloc is space-efficient representation of small objects."


Sanjay Ghemawat, Google Fellow
 http://labs.google.com/people/sanjay/


google-perftools
Fast, mutli-threaded malloc() and nifty performance analysis tools
 http://code.google.com/p/google-perftools/"These tools are for use by developers so that they can create more robust applications. Especially of use to those developing multi-threaded applications in C++ with templates. Includes TCMalloc, heap-checker, heap-profiler and cpu-profiler."

google-perftools, Google Group
 http://groups.google.com/group/google-perftools
-----
"Using Dmalloc With the Solaris OS and Sun Studio Compilers", April 2007
 http://developers.sun.com/solaris/articles/dmalloc_solaris.html

Dmalloc - Debug Malloc Library
 http://dmalloc.com/
"The debug memory allocation or dmalloc library has been designed as a drop in replacement for the system's malloc, realloc, calloc, free and other memory management routines while providing powerful debugging facilities configurable at runtime. These facilities include such things as memory-leak tracking, fence-post write detection, file/line number reporting, and general logging of statistics."
==========
[07/05/28]
Linux schedulerリンクメモ, 2007-05-28
==========
[07/05/27]
The Hoard Memory Allocator
 http://www.hoard.org/
"The Hoard memory allocator is a fast, scalable, and memory-efficient memory allocator. It runs on a variety of platforms, including Linux, Solaris, and Windows. Hoard is a drop-in replacement for malloc() that can dramatically improve application performance, especially for multithreaded programs running on multiprocessors. No change to your source is necessary. Just link it in or set just one environment variable (see Using Hoard for more information)."

Who's Using Hoard?
"Open source projects using Hoard include the Bayonne GNU telephony server, the Cilk parallel programming language, the Dartmouth Scalable Simulation Framework, and the GNU Common C++ system."

"Hoard is also a part of several major Linux distributions, including Debian and Novell's SuSe."


Emery Berger - Download Hoard
 http://prisms.cs.umass.edu/emery/index.php?page=download-hoard
The Hoard Scalable Memory Allocator 3.6.2, May 25th 2007, freshmeat.net
 http://freshmeat.net/projects/libhoard/?branch_id=4119&release_id=254349
Release focus: Minor feature enhancements
Changes:
"This release has fixes for building on Mac OS X (Darwin) and to support some older versions of the Sun compilers. It adds FreeBSD as a supported target."


開発者:Emery Berger, Assistant Professor
 Department of Computer Science, University of Massachusetts Amherst
 http://prisms.cs.umass.edu/emery/


参考文献等:
"Hoard: A Scalable Memory Allocator for Multithreaded Applications",
 Emery D. Berger, Kathryn S. McKinley, Robert D. Blumofe, and Paul R. Wilson,
 The Ninth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-IX). Cambridge, MA, November 2000.
 http://www.cs.umass.edu/%7Eemery/hoard/asplos2000.pdf


"A Comparison of Memory Allocators in Multiprocessors", June 2003
 http://developers.sun.com/solaris/articles/multiproc/multiproc.html
"Memory allocation performance in single and multithreaded environments is an important aspect of any application. Some allocators, such as malloc in the Solaris Operating System, work best with single-threaded applications. However, a different approach must be taken when designing an allocator optimized for a multithreaded application."

Conclusions
"So, which allocator should you use in your application? malloc on the Solaris OS was shown to be a strong choice for single-threaded code. However, for better performance and scalability, you should try to multithread the application. Multithreaded code can improve performance and scalability on a multiprocessor system using a multithreaded memory allocator. For multithreaded code, you should use Solaris mtmalloc or Hoard. As shown in this document, both options yielded close results. If heap usage is a concern, use Hoard, since mtmalloc wastes some space by using fixed power of two allocation sizes. Otherwise, either of these will perform well for your application."


Hoardは Cray XMTを調べていたとき見つけた
""MAMA!": a memory allocator for multithreaded architectures"
 Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming, Year of Publication: 2006
 Simon Kahan and Petr Konecny, Cray Inc.
 http://portal.acm.org/citation.cfm?id=1122999&coll=Portal&dl=ACM&CFID=7847409&CFTOKEN=71969364
で参照してました。マルチコアが進むとこのような基礎研究がより重要になります。
07/03/14, 15: Cray XMTセミナー、ワークショップ, 2007-02-14


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。