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 specially severe on most parallel architectures, which tend not to support virtual memory. This paper illustrates the problem, then shows 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 caches blocks on the basis of their size. We demonstrate the problem empirically, and show the effectiveness of our solution both empirically and analytically.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Sep 01, 1990
Accession Number
ADA227736

Entities

People

  • David M. Nicol

Tags

Communities of Interest

  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Algorithms
  • Computations
  • Computer Programming
  • Computer Programs
  • Lists (Data Structures)
  • Markov Chains
  • Measurement
  • Network Simulation
  • Probability
  • Random Variables
  • Simulations
  • Simulators
  • Standards
  • Transitions
  • Urban Areas
  • Workload

Fields of Study

  • Computer science

Readers

  • Computational Modeling and Simulation
  • Distributed Systems and Data Platform Development
  • Educational Psychology

Technology Areas

  • Space