Cluster ComputingMalloc MetadataEngineeringComputer ArchitectureMultithreading (Computer Architecture)Memory Model (Programming)Hardware SecurityShared MemoryParallel ComputingMemory ManagementMalloc PackageLock-free MallocComputer EngineeringComputer ScienceMalloc Replacement PackageProgram AnalysisParallel ProgrammingSystem SoftwareTransactional Memory
Modern multithreaded applications, such as application servers and database engines, can severely stress the performance of user-level memory allocators like the ubiquitous malloc subsystem. Such allocators can prove to be a major scalability impediment for the applications that use them, particularly for applications with large numbers of threads running on high-order multiprocessor systems.This paper introduces Multi-Processor Restartable Critical Sections, or MP-RCS. MP-RCS permits user-level threads to know precisely which processor they are executing on and then to safely manipulate CPU-specific data, such as malloc metadata, without locks or atomic instructions. MP-RCS avoids interference by using upcalls to notify user-level threads when preemption or migration has occurred. The upcall will abort and restart any interrupted critical sections.We use MP-RCS to implement a malloc package, LFMalloc (Lock-Free Malloc). LFMalloc is scalable, has extremely low latency, excellent cache characteristics, and is memory efficient. We present data from some existing benchmarks showing that LFMalloc is often 10 times faster than Hoard, another malloc replacement package.
21
Emery D. Berger, Kathryn S. McKinley, Robert D. Blumofe et al. · ACM SIGPLAN Notices · 2000 · 447 citations · Full text
Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska et al. · ACM Transactions on Computer Systems · 1992 · 429 citations · Full text
Emery D. Berger, Kathryn S. McKinley, Robert D. Blumofe et al. · 2000 · 214 citations · Full text