CSC 591C - Cluster Computing Project Home page Jaydeep Marathe (jpmarath@unity.ncsu.edu) HW4 - Initial Proposal Address Trace Generation for OpenMP programs using Dynamic Instrumentation Introduction ------------ In recent years, shared memory multiprocessors (SMP) have become commerically viable and several computer vendors have introduced competing architectures. Compiler generated shared memory parallelism has been a natural fit for exploiting this SMP architecture. In the initial years, computer vendors provided proprietary compiler directives to achieve parallelism. In 1997, the OpenMP (Open Multi-Processing) group was formed to standardize these compiler directives, which would enable portability of programs across compilers and computer architectures. OpenMP is an elegant concept, however a hurdle in its wider acceptance has been the difficult of debugging OpenMP programs, due to race conditions which might exist in incorrectly written OpenMP programs, but may not show up in the debugger due to timing anomalies. Another important concern is the performance characterization of OpenMP programs. Uni-processor program optimization is a mature field, while characterizing optimizations applicable to parallel programs is an ongoing effort. Problem Statement ----------------- This project is part of a larger effort under the direction of Dr. Frank Mueller of the Computer Science Deparment, NCSU, to develop tools to characterize and understand the bottelnecks in parallel program development, especially a mix of OpenMP + MPI programs. In this project, I propose to write a dynamic instrumentation framework to extract traces from OpenMP test programs. These traces are to be used by an incremental memory hierarchy simulator to assess the coherency traffic between the processors of the shared memory architecture. Outline ------- - Design the framework, understand the OpenMP standard, and the dynamic instrumentatio tool - Build the instrumentation tool. - Present OpenMP test cases, and generated address traces from these programs. References ---------- OpenMP: a standard for shared memory parallelism http://www.openmp.org DynInst: a library for dynamic instrumentation. http://www.dyninst.org METRIC: a framework for extracting uni-processor address traces. http://moss.csc.ncsu.edu/~mueller/ftp/pub/mueller/papers/cgo03.ps.gz Project Web Page ---------------- http://www4.ncsu.edu/~jpmarath/index.html