The following arrangement of regions results in a division by zero in ipm_parse (see attachment for full test program):
MPI_Pcontrol (1, "outer");
for (i=0; i<1000; i++)
{
c = a*b;
}
MPI_Pcontrol (1, "inner");
MPI_Comm_rank (MPI_COMM_WORLD, &rank);
MPI_Pcontrol (-1, "inner");
MPI_Pcontrol (-1, "outer");
The error message on davinci is:
Illegal division by zero at /usr/common/usg/bin/ipm_parse line 2292.
In the HTML output of ipm_parse, the link to the "outer" region points to a non-existent file.
The problem is probably that there are no function calls logged for the "outer" region.
There are PAPI events in "outer", however. Thus, it might still be valuable for the user to get a HTML page for this region.
This is how the regions look like in the tracefile:
<region label="outer" nexits="1" wtime="2.5696e-06" utime="0.0000e+00" stime="0.0000e+00" mtime="0.0000e+00">
<hpm api="PAPI" ncounter="4" eventset="0" gflop="2.0040e-06">
<counter name="PAPI_FP_OPS"> 2004 </counter>
<counter name="PAPI_TOT_CYC"> 4529 </counter>
<counter name="PAPI_VEC_INS"> 0 </counter>
<counter name="PAPI_TOT_INS"> 6451 </counter>
</hpm>
</region>
<region label="inner" nexits="1" wtime="1.4307e-05" utime="0.0000e+00" stime="0.0000e+00" mtime="1.2446e-06">
<hpm api="PAPI" ncounter="4" eventset="0" gflop="1.5000e-08">
<counter name="PAPI_FP_OPS"> 15 </counter>
<counter name="PAPI_TOT_CYC"> 16608 </counter>
<counter name="PAPI_VEC_INS"> 2 </counter>
<counter name="PAPI_TOT_INS"> 743 </counter>
</hpm>
<func name="MPI_Comm_rank" count="1"> 1.2446e-06 </func>
</region>
C test program provoking a division by 0 in ipm_parse