EtnusCommand Line InterpreterUser GuideInstallation Guide
  PREVNEXT

   

Debugging Portland Group, Inc. HPF Applications

 
 

TotalView allows the source level debugging of High Performance Fortran (HPF) code compiled with the Portland Group Inc. HPF (PGI HPF) compiler.

Note:   Debugging PGI HPF programs requires a separate TotalView license.

For tips on debugging parallel applications, see Parallel Debugging Tips.

TotalView supports the following platforms:

  • IBM RS/6000 and SP AIX 4.x
     
  • SGI MIPS IRIX 6.x, for programs compiled with -64 only
     
  • Sun Sparc SunOS 5 (Solaris 2.x)

See the TotalView Release Notes for supported PGI HPF runtime configurations.

In addition to normal TotalView features, the TotalView PGI HPF support allows:

  • Source level display of HPF code.
     
  • Source level breakpoints in HPF code.
     
  • You can update replicated scalar variables in all processes by updating the value in any process. If the values were not all the same at the start, TotalView gives you a warning, and you have to explicitly agree to the update before it will take place.
     
  • Display of distributed arrays, with optional display of the owning processor.
     
  • Display of the distribution of distributed arrays, for instance, onto which node a particular element of a distributed array has been mapped.
     
  • Visualization of distributed arrays.
     
  • Automatic update of all copies of replicated scalar variables.

However, there are still a number of limitations:

  • Display of user defined data types is not yet supported.
     
  • Evaluation points and expressions are executed locally and cannot reference distributed arrays. However, you can use the $visualize intrinsic.

If you use the $visualize EVAL intrinsic, remember that EVAL code is executed by every process. Therefore, you probably want to make this an non-shared action point.

  • You can export the distribution of an array to the visualizer to display it graphically.
     
  • You see the HPF source and variables.
     
  • You can set breakpoints in the HPF source code.

In the address display for data windows showing HPF variables, there is an additional field which tells you whether the variable is distributed [Dist] or replicated [Repl]. If you update a replicated variable, it is updated in all processes. A distributed variable is only updated in its home process.

You cannot edit the address of a distributed array. If you edit the address of a replicated scalar, it will be marked as distributed, since it no longer makes sense to update all of the processes, as you do not know what is at that address in the other processes.

When you display an HPF distributed array, TotalView can also display the logical processor on which each element resides. The display of this additional information can be changed for a single data window using the Toggle Node Display option in the menu of the data window. You can set the default for a whole TotalView session by using the command line options -hpf_node or -no_hpf_node; you could also use the X resource totalview*hpfNode. No matter which way you set the default, you can always toggle the behavior in each window.

By default, this display is disabled. If it is enabled, a distributed array will look like the following figure. Otherwise, the Node column is not displayed and a distributed array display looks the same as that of a normal array.

Block Distributed Array on Three Processes

To see the distribution of an array or a section of an array, use the Visualize Distribution command from the data window menu. This command exports the HPF processor number on which each selected element of the array resides to the visualizer. This command differs from the Visualize command in that it exports the values of the array elements, not the ownership information.

This capability is not available with the $visualize command since distributions are normally static.

PREVNEXT

support@etnus.com
Version 4.1 Copyright © 2000, Etnus, LLC. All rights reserved.