A parallel program is intrinsically more complex than its serial counterpart. To write an efficient and scalable parallel program, one must understand the behavior and performance of the program. A powerful technique for this purpose is the visualization of trace files (also called log files). A trace file contains several basic elements. Typically, these are generated during the execution of a program by very short code sequences (so as to minimize the perturbation of the execution caused by the tracing) and are written either to disk (buffered) or to memory as they are generated. Tracefiles typically contain sequences of events; an event has a timestamp and some data. A collection of events for a single process, thread, or processor is sometimes called a timeline. Such postmortem analysis based on trace files has been an important tool for performance analysis for parallel programs. Many performance visualization tools display a trace file as a GANTT chart, with the x-axis representing time and the y-axis representing process or thread number.