Invoking HP Caliper with the compiler to optimize your program
The simplest way to use HP Caliper is to use the PBO mode to create a
Step 1. | Compile your program with the +Oprofile=collectoption. |
| /opt/ansic/bin/cc |
| program.c |
| The loader sets a |
| HP Caliper supports programs compiled with any compiler option. When you |
| use the +Oprofile=collectoption, however, the compiler forces |
| +01optimization to fully measure the program performance. |
|
|
Step 2. | Run your program to generate the |
| program[program_arguments] |
| HP Caliper automatically runs to generate the |
| namedflow.data in the current directory. |
| You can repeat this step multiple times with different program_arguments to create |
| aggregated profile information in the flow.datafile to improve your program’s |
| optimization. |
| If the flow.datafile already exists in the current directory when you run your |
| program, then HP Caliper merges the results into the file. If you run your program |
| multiple times in different directories, then HP Caliper creates a separate flow.data |
| file in each directory. You can combine the files using the fdm(1)utility program, |
| which is bundled with the HP C, HP aC++, and Fortran 90 compilers. |
| When collecting PBO data, the more your program use scenarios resemble the |
| ways in which your program will actually be used, the more the compiler can |
| optimize your program specifically for how it is actually used. |
| When you make changes to your source files, you should delete the flow.data |
| file before collecting more PBO data on your program. |
|
|
Step 3. | Use the flow.datafile as input to the compiler when you specify the |
| +Oprofile=use option on subsequent |
| /opt/ansic/bin/cc |
| The compiler uses the HP Caliper information to help optimize your program. |
| Note that the benefit of |
| programs may not improve while others may improve significantly. |
|
|
Comparing Program Performance
You can use HP Caliper’s other measurement features to explicitly see the results of using PBO.
An example process for comparing performance would be:
1.Compile your program with +Oprofile=collectto generate the executable to optimize.
2.Run your program to generate the profile data file. Use as many use scenarios as possible to collect representative profile data.
3.Compile your program with +O3to generate the baseline executable to compare against the fully optimized executable.
4.Run HP Caliper on your +O3executable with a configuration file such as total_cputo measure performance.
5.Recompile your program with +O3optimization and +Oprofile=useto use the profile data collected in Step 2 as input.
6.Run HP Caliper on your fully optimized executable from Step 5 with the same configuration file from Step 4 and compare the report results with the report from Step 4.
88 Performance and optimization