示例#1
0
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;
}
示例#2
0
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;
}
示例#3
0
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;
}
示例#5
0
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;
}