Beispiel #1
0
	void start(CmiUInt8 root) {
		CkCallback startCb(CkIndex_BFSMultiVertex::foo(), g[root / (N / CmiNumPes())]);
		CkCallback endCb(CkIndex_TestDriver::startVerificationPhase(), driverProxy);
		aggregator.init(g.ckGetArrayID(), startCb, endCb, -1, true);
		CkStartQD(CkCallbackResumeThread());
		g[root / (N / CmiNumPes())].make_root(root);
	}
Beispiel #2
0
 void prepare() {
   if (testType == usingTram) {
     CkCallback startCb(CkIndex_Main::start(), thisProxy);
     CkCallback endCb(CkIndex_Main::allDone(), thisProxy);
     aggregator.init(1, startCb, endCb, INT_MIN, false);
   }
   else {
     start();
   }
 }
Beispiel #3
0
  void start() {
    starttime = CkWallTimer();
    CkCallback startCb(CkIndex_Updater::generateUpdates(), updater_array);
    CkCallback endCb(CkIndex_TestDriver::startVerificationPhase(), thisProxy);


		updater_array.generateUpdates();
		CkStartQD(CkIndex_TestDriver::startVerificationPhase(), &thishandle);
    // Initialize the communication library, which, upon readiness,
    //  will initiate the test via startCb
    //aggregator.init(updater_array.ckGetArrayID(), startCb, endCb, -1, false);
  }
Beispiel #4
0
  void startVerificationPhase() {
    double update_walltime = CkWallTimer() - starttime;
    double gups = 1e-9 * tableSize * 4.0/update_walltime;
    CkPrintf("[Final] CPU time used = %.6f seconds, %.9f GUPS\n", update_walltime, gups);
    CkPrintf("%.9f Billion(10^9) Updates    per second [GUP/s]\n", gups);
    CkPrintf("%.9f Billion(10^9) Updates/PE per second [GUP/s]\n",
             gups / CkNumPes());

    // Repeat the update process to verify
    // At the end of the second update phase, check the global table
    //  for errors in Updater::checkErrors()
    CkCallback startCb(CkIndex_Updater::generateUpdates(), updater_array);
    CkCallback endCb(CkIndex_Updater::checkErrors(), updater_array);
    // Initialize the communication library, which, upon readiness,
    //  will initiate the verification via startCb
    //aggregator.init(updater_array.ckGetArrayID(), startCb, endCb, -1, false);
		checkErrors();
  }