next up previous contents
Next: Instrumentation Up: Carnival: a Framework for Previous: Working Scenario

Implementation

 

In this section we describe a first implementation of Carnival , which is targeted to data-parallel applications running on distributed memory machines that communicate via message passing. The implementation runs on IBM SP2 [Agerwala et al. 1995] machines and supports parallel code generated by the Forge APR HPF compiler [Forge1995].

The compilation of HPF programs in this environment is a two-step process. Initially, the HPF code is translated by the Forge xhpf pre-processor into SPMD Fortran 77 code augmented with calls to a run-time library, which performs data exchanges and synchronization operations. This F77 code is compiled by the IBM Fortran Compiler - xlf - generating executable code that runs in parallel. Carnival exploits this two-step compilation process to insert instrumentation into the code gif. During its execution, the instrumented executable utilizes the UTE trace facility [Wu and Franke1995] (which is implemented on top of IBM's AIX trace facility [AIX1994]) to generate a trace file containing information about the execution.

   figure195
Figure 3.1: Overview of Carnival

Figure 3.1 presents the various steps and files involved when using Carnival . Rectangles represent files; arrows represent the steps that process files. There are two main tasks that are performed by Carnival tools: instrumentation and analysis. Each of these tasks is described in the sections that follow.





Wagner Meira
Wed Feb 28 15:37:47 EST 1996