コード例 #1
0
 void time_algorithm()
 {
     stk::diag::TimeBlockSynchronized timerStartSynchronizedAcrossProcessors(childTimer, communicator);
     double startTime = stk::wall_time();
     run_algorithm_to_time();
     duration += stk::wall_time() - startTime;
 }
コード例 #2
0
ファイル: ImbalanceTimer.hpp プロジェクト: mhoemmen/Trilinos
ImbalanceTimings measure_imbalance(MPI_Comm communicator, FUNCTION do_work)
{
    enum {CHILDMASK1 = 1};
    stk::diag::TimerSet enabledTimerSet(CHILDMASK1);
    stk::diag::Timer rootTimer = createRootTimer("totalTestRuntime", enabledTimerSet);
    rootTimer.start();
    stk::diag::Timer childTimer1("childTimer1", CHILDMASK1, rootTimer);

    {
        stk::diag::TimeBlockSynchronized timerStartSynchronizedAcrossProcessors(childTimer1, communicator);
        do_work();
    }

    float time = childTimer1.getMetric<stk::diag::WallTime>().getAccumulatedLap(false);
    ImbalanceTimings timings(communicator, time);
    stk::diag::deleteRootTimer(rootTimer);

    return timings;
}