Engineering PapersโŒ• Search

NASA NTRS ยท 19910002084

Inflated speedups in parallel simulations via malloc()

Abstract

Discrete-event simulation programs make heavy use of dynamic memory allocation in order to support simulation's very dynamic space requirements. When programming in C one is likely to use the malloc() routine. However, a parallel simulation which uses the standard Unix System V malloc() implementation may achieve an overly optimistic speedup, possibly superlinear. An alternate implementation provided on some (but not all systems) can avoid the speedup anomaly, but at the price of significantly reduced available free space. This is especially severe on most parallel architectures, which tend not to support virtual memory. It is shown how a simply implemented user-constructed interface to malloc() can both avoid artificially inflated speedups, and make efficient use of the dynamic memory space. The interface simply catches blocks on the basis of their size. The problem is demonstrated empirically, and the effectiveness of the solution is shown both empirically and analytically.

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Nicol, David M.. 1990-09-01. Inflated speedups in parallel simulations via malloc(). https://ntrs.nasa.gov/citations/19910002084

Cite the original work for its findings. Save a collection to share your selection of sources.