int main(int argc, char** argv) { int i; for (i =1; i < argc; i++) { if(process_command_line_option(argc, argv, &i) == 0) { continue; } if( strcmp(argv[i], "--tol") == 0) { float tmpf; if (i+1 >= argc) { usage(argv); } sscanf(argv[i+1], "%f", &tmpf); if (tmpf <= 0) { printf("ERROR: invalid tol(%f)\n", tmpf); usage(argv); } tol = tmpf; i++; continue; } if( strcmp(argv[i], "--cpu_prec") == 0) { if (i+1 >= argc) { usage(argv); } cpu_prec= get_prec(argv[i+1]); i++; continue; } printf("ERROR: Invalid option:%s\n", argv[i]); usage(argv); } if (prec_sloppy == QUDA_INVALID_PRECISION) { prec_sloppy = prec; } if (link_recon_sloppy == QUDA_RECONSTRUCT_INVALID) { link_recon_sloppy = link_recon; } initCommsQuda(argc, argv, gridsize_from_cmdline, 4); display_test_info(); int ret = invert_test(); endCommsQuda(); return ret; }
int main(int argc, char** argv) { for (int i = 1; i < argc; i++) { if(process_command_line_option(argc, argv, &i) == 0){ continue; } if( strcmp(argv[i], "--cpu_prec") == 0){ if (i+1 >= argc){ usage(argv); } cpu_prec= get_prec(argv[i+1]); i++; continue; } printf("ERROR: Invalid option:%s\n", argv[i]); usage(argv); } if (prec_sloppy == QUDA_INVALID_PRECISION){ prec_sloppy = prec; } if (link_recon_sloppy == QUDA_RECONSTRUCT_INVALID){ link_recon_sloppy = link_recon; } if(inv_type != QUDA_CG_INVERTER){ if(test_type != 0 && test_type != 1) errorQuda("Preconditioning is currently not supported in multi-shift solver solvers"); } // initialize QMP/MPI, QUDA comms grid and RNG (test_util.cpp) initComms(argc, argv, gridsize_from_cmdline); display_test_info(); printfQuda("dslash_type = %d\n", dslash_type); int ret = invert_test(); // finalize the communications layer finalizeComms(); return ret; }
int main (int argc, char ** argv) { printf (" VALIDATION TESTS\n"); printf ("====================\n\n"); init (argc, argv); test_lookupre (); test_extended (); word_test (); line_test (); icase_test (); invert_test (); print_result ("testmod_validation"); return nbError; }
int main(int argc, char** argv) { for (int i = 1; i < argc; i++) { if(process_command_line_option(argc, argv, &i) == 0){ continue; } if( strcmp(argv[i], "--tol") == 0){ float tmpf; if (i+1 >= argc){ usage(argv); } sscanf(argv[i+1], "%f", &tmpf); if (tmpf <= 0){ printf("ERROR: invalid tol(%f)\n", tmpf); usage(argv); } tol = tmpf; i++; continue; } if( strcmp(argv[i], "--cpu_prec") == 0){ if (i+1 >= argc){ usage(argv); } cpu_prec= get_prec(argv[i+1]); i++; continue; } printf("ERROR: Invalid option:%s\n", argv[i]); usage(argv); } if (prec_sloppy == QUDA_INVALID_PRECISION){ prec_sloppy = prec; } if (link_recon_sloppy == QUDA_RECONSTRUCT_INVALID){ link_recon_sloppy = link_recon; } // initialize QMP or MPI #if defined(QMP_COMMS) QMP_thread_level_t tl; QMP_init_msg_passing(&argc, &argv, QMP_THREAD_SINGLE, &tl); #elif defined(MPI_COMMS) MPI_Init(&argc, &argv); #endif // call srand() with a rank-dependent seed initRand(); display_test_info(); int ret = invert_test(); display_test_info(); // finalize the communications layer #if defined(QMP_COMMS) QMP_finalize_msg_passing(); #elif defined(MPI_COMMS) MPI_Finalize(); #endif return ret; }
int main(int argc, char** argv) { int xsize=1; int ysize=1; int zsize=1; int tsize=1; int i; for (i =1;i < argc; i++){ if( strcmp(argv[i], "--help")== 0){ usage(argv); } if( strcmp(argv[i], "--prec") == 0){ if (i+1 >= argc){ usage(argv); } prec = get_prec(argv[i+1]); i++; continue; } if( strcmp(argv[i], "--prec_sloppy") == 0){ if (i+1 >= argc){ usage(argv); } prec_sloppy = get_prec(argv[i+1]); i++; continue; } if( strcmp(argv[i], "--recon") == 0){ if (i+1 >= argc){ usage(argv); } link_recon = get_recon(argv[i+1]); i++; continue; } if( strcmp(argv[i], "--tol") == 0){ float tmpf; if (i+1 >= argc){ usage(argv); } sscanf(argv[i+1], "%f", &tmpf); if (tol <= 0){ printf("ERROR: invalid tol(%f)\n", tmpf); usage(argv); } tol = tmpf; i++; continue; } if( strcmp(argv[i], "--recon_sloppy") == 0){ if (i+1 >= argc){ usage(argv); } link_recon_sloppy = get_recon(argv[i+1]); i++; continue; } if( strcmp(argv[i], "--test") == 0){ if (i+1 >= argc){ usage(argv); } testtype = atoi(argv[i+1]); i++; continue; } if( strcmp(argv[i], "--cprec") == 0){ if (i+1 >= argc){ usage(argv); } cpu_prec= get_prec(argv[i+1]); i++; continue; } if( strcmp(argv[i], "--tdim") == 0){ if (i+1 >= argc){ usage(argv); } tdim= atoi(argv[i+1]); if (tdim < 0 || tdim > 128){ printf("ERROR: invalid T dimention (%d)\n", tdim); usage(argv); } i++; continue; } if( strcmp(argv[i], "--sdim") == 0){ if (i+1 >= argc){ usage(argv); } sdim= atoi(argv[i+1]); if (sdim < 0 || sdim > 128){ printf("ERROR: invalid S dimention (%d)\n", sdim); usage(argv); } i++; continue; } if( strcmp(argv[i], "--device") == 0){ if (i+1 >= argc){ usage(argv); } device = atoi(argv[i+1]); if (device < 0){ printf("Error: invalid device number(%d)\n", device); exit(1); } i++; continue; } if( strcmp(argv[i], "--xgridsize") == 0){ if (i+1 >= argc){ usage(argv); } xsize = atoi(argv[i+1]); if (xsize <= 0 ){ errorQuda("Error: invalid X grid size"); } i++; continue; } if( strcmp(argv[i], "--ygridsize") == 0){ if (i+1 >= argc){ usage(argv); } ysize = atoi(argv[i+1]); if (ysize <= 0 ){ errorQuda("Error: invalid Y grid size"); } i++; continue; } if( strcmp(argv[i], "--zgridsize") == 0){ if (i+1 >= argc){ usage(argv); } zsize = atoi(argv[i+1]); if (zsize <= 0 ){ errorQuda("Error: invalid Z grid size"); } i++; continue; } if( strcmp(argv[i], "--tgridsize") == 0){ if (i+1 >= argc){ usage(argv); } tsize = atoi(argv[i+1]); if (tsize <= 0 ){ errorQuda("Error: invalid T grid size"); } i++; continue; } printf("ERROR: Invalid option:%s\n", argv[i]); usage(argv); } if (prec_sloppy == QUDA_INVALID_PRECISION){ prec_sloppy = prec; } if (link_recon_sloppy == QUDA_RECONSTRUCT_INVALID){ link_recon_sloppy = link_recon; } display_test_info(); int X[] = {xsize, ysize, zsize, tsize}; initCommsQuda(argc, argv, X, 4); int ret = invert_test(); endCommsQuda(); return ret; }