int testioparams(PV_Init* initObj, int rank) { PV_Arguments * arguments = initObj->getArguments(); arguments->resetState(); // Ignore -r and -c switches arguments->setRestartFlag(false); arguments->setCheckpointReadDir(NULL); initObj->initialize(); HyPerCol * hc = build(initObj, NULL, 0); if (hc == NULL) { fprintf(stderr, "testioparams error: unable to build HyPerCol.\n"); exit(EXIT_FAILURE); } int status = hc->run(); // Needed to generate pv.params file if (status != PV_SUCCESS) { fprintf(stderr, "testioparams error: run to generate pv.params file failed.\n"); exit(EXIT_FAILURE); } const char * paramsfile = hc->getPrintParamsFilename(); std::string paramsfileString = paramsfile; if (paramsfile[0]!='/') { const char * outputPath = hc->getOutputPath(); paramsfileString.insert(0, "/"); paramsfileString.insert(0, outputPath); } delete hc; arguments->setParamsFile(paramsfileString.c_str()); if (rank==0) { printf("%s --testioparams running PetaVision with arguments\n", arguments->getProgramName()); arguments->printState(); } status = rebuildandrun(initObj, NULL, &assertAllZeroes, NULL, 0); return status; }
int testrun(PV_Init * initObj, int rank) { PV_Arguments * arguments = initObj->getArguments(); arguments->resetState(); // Ignore restart flag and checkpoint directory arguments->setRestartFlag(false); arguments->setCheckpointReadDir(NULL); if (rank==0) { printf("%s --testrun running PetaVision with arguments\n", arguments->getProgramName()); arguments->printState(); } int status = rebuildandrun(initObj, NULL, &assertAllZeroes, NULL, 0); return status; }
int testcheckpoint(PV_Init * initObj, int rank) { PV_Arguments * arguments = initObj->getArguments(); arguments->resetState(); // Make sure either restartFlag or checkpointReadDir are set (both cannot be set or PV_Arguments will error out). bool hasrestart = (arguments->getRestartFlag() || arguments->getCheckpointReadDir()!=NULL); if (!hasrestart) { if (rank==0) { fprintf(stderr, "%s error: --testcheckpoint requires either the -r or the -c option.\n", arguments->getProgramName()); } MPI_Barrier(MPI_COMM_WORLD); exit(EXIT_FAILURE); } if (rank==0) { printf("%s --testcheckpoint running PetaVision with arguments\n", arguments->getProgramName()); arguments->printState(); } int status = rebuildandrun(initObj, NULL, &assertAllZeroes, NULL, 0); return status; }