Parallel Tool Support
With our new architecture, it is easier to implement and use layered tools such as parallel debuggers in concert with an RM. The debugger implementation can target Sun CRE services to launch or attach to parallel jobs, and Sun CRE handles the details of interacting with the RMs. Previously, separate implementations were required for each supported RM.
The new architecture supports interactive debugging and tuning sessions using the Prism8 and TotalView parallel debuggers. These tools are as easy to use with an RM as they are in an unmanaged environment. The only difference is the addition of the job submission command. Examples are as follows:
Prism debugger with Sun CRE:
% mprun -np 4 prism myprog.x (The Prism GUI appears...)
Prism debugger with Sun Grid Engine Software:
% qsh -pe cre 4 waiting for interactive job to be scheduled ... Your interactive job 73 has been successfully scheduled. % mprun -np 4 prism myprog.x (The Prism GUI appears...)
TotalView debugger with Sun CRE:
% totalview mprun -a -np 4 myprog.x (The TotalView GUI appears...)
TotalView debugger with Sun Grid Engine Software:
% qsh -pe cre 4 waiting for interactive job to be scheduled ... Your interactive job 122 has been successfully scheduled. % totalview mprun -a -np 4 myprog.x (The TotalView GUI appears...)
Users can run and re-run parallel programs from within the same debugger session. Because we have a tight integration, resources of the target process are properly measured, as shown in FIGURE 3.
FIGURE 3 Resource Accounting Under the Prism Debugger
The Prism debugger is itself a parallel job, but it uses little CPU time, as shown by the first qstat command in the figure. Once the application runs, however, subsequent qstat commands show that PBS accounts for target process CPU time as part of the debugger's parallel job.