49 строки
906 B
D
49 строки
906 B
D
|
/*
|
||
|
* Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved.
|
||
|
* $COPYRIGHT$
|
||
|
*
|
||
|
* Additional copyrights may follow
|
||
|
*
|
||
|
* $HEADER$
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* This script will count the number of times MPI APIs are called. It
|
||
|
* will print out its results every 10 seconds and then a final count
|
||
|
* at the end. This script can be used to see that an MPI application
|
||
|
* is progressing as the number of MPI API calls should be increasing
|
||
|
* over time. In addition, it is a good way to see a summary of which
|
||
|
* MPI APIs are used an application.
|
||
|
*/
|
||
|
|
||
|
dtrace:::BEGIN
|
||
|
{
|
||
|
i = 2;
|
||
|
printf("\n\nNumber of times MPI APIs are called in 10 second intervals\n");
|
||
|
}
|
||
|
|
||
|
pid$target:libmpi:MPI_*:entry
|
||
|
{
|
||
|
@api[probefunc] = count();
|
||
|
}
|
||
|
|
||
|
profile:::tick-1sec
|
||
|
/i > 0/
|
||
|
{
|
||
|
i--;
|
||
|
}
|
||
|
|
||
|
profile:::tick-1sec
|
||
|
/i == 0/
|
||
|
{
|
||
|
i = 10;
|
||
|
printa(@api);
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Print out the final results.
|
||
|
*/
|
||
|
dtrace:::END
|
||
|
{
|
||
|
printa(@api);
|
||
|
}
|