Program Profiling in Cedar,

Abstract

The goal of program profiling is to provide an accurate characterization of a program's behavior and performance. Program profiling can have several different meanings depending on the measurements of interest and the programming environment. Generally, profiling measurements are concerned with collecting information regarding the dynamic execution behavior of the program. The purpose is to help the user evaluate alternative implementations and to guide program optimizations. This paper presents an analysis of parallel program profiling for the Cedar multiprocessor and a preliminary functional specification of a parallel program profiling tool, cprof. The standard UNIX profiling tools serve as a beginning design basis for cprof and their basic functionality is discussed in Section 2. Section 3 describes the problems with parallel program profiling. In particular, profiling in the Cedar program execution environment is analyzed. The initial version of cprof supports routine counting and timing functionality. The proposed cprof implementation is presented in detail in Section 4. Profiling operations other than routine counting and timing are interesting for parallel programs. Section 5 briefly describes possible extensions of cprof.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Mar 17, 1987
Accession Number
ADA190883

Entities

People

  • Allen Malony

Organizations

  • University of Illinois Urbana–Champaign

Tags

Communities of Interest

  • C4I
  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Abstracts
  • Assembly Languages
  • Computer Programming
  • Computer Programs
  • Environment
  • Graphs
  • High Resolution
  • Identities
  • Measurement
  • Monitors
  • Multiprocessors
  • Multithreading
  • Operating Systems
  • Optimization
  • Sampling
  • Standards
  • Statistical Sampling

Readers

  • Computer Science.
  • Ocean-Atmosphere Mesoscale Modeling, Data Assimilation, and Flux Boundary Layers
  • Parallel and Distributed Computing.