Dynamic Profiling of Parallel Programs Using Dtrace on Solaris Based Cluster of Workstations
Through this project, it is intended to devise a method that would help parallel programmers profile their programs dynamically during run time and detect the bottlenecks in the program. The aim is to give the programmer a much better idea of how his program actually executes on a parallel system than is possible with current offline profiling tools. Following are some of the basic issues which the project aims to address in context of parallel programs:
1. Devising, implementing and streamlining methodologies for dynamic tracing of parallel programs.
2. Incorporating strategies to address frequent problems encountered in parallel programs like deadlock detection, identification of bottlenecks etc.
3. Exploring the possibilities of detection of concurrency inconsistencies, which are notoriously difficult to detect in parallel programs.
The basic tools intended for use include Dtrace, a run-time profiling and dynamic tracing tool and a cluster computer running Sun Solaris operating system. Dtrace allows one to enable probes within the kernel of the operating system to events such as system calls, memory accesses, CPU scheduling etc. It also includes the ability to define operations based on the probes being fired by the executing program. Currently it is proposed to implement this project for MPI based parallel programs but this can be extended to other parallel systems and architectures in future.
This project is envisioned to become a major methodology to profile parallel applications during run time. It is proposed to develop this system as an open sourced project once the design and architecture aspects of the proposed method are finalized and proven to be robust enough for production environment.
Department of Computer Engineering