Example #1
0
int 
main(int argc,char *argv[])
{
  gaspi_rank_t rank,tnc;
  gaspi_float vers;
  gaspi_config_t gconf;
  char mtype[16];
  int i;
  mcycles_t t0, t1;
  mcycles_t delta[1024];
  gaspi_float cpu_freq;

  gaspi_config_get(&gconf);
  gconf.mtu = 4096;
  gconf.queue_num = 1;
  gaspi_config_set(gconf);

  GPI2_ASSERT(gaspi_proc_init(GASPI_BLOCK));

  GPI2_ASSERT( gaspi_version(&vers) );
  GPI2_ASSERT( gaspi_proc_rank(&rank) );
  GPI2_ASSERT( gaspi_proc_num(&tnc) );
  GPI2_ASSERT( gaspi_machine_type(mtype) );
  GPI2_ASSERT( gaspi_cpu_frequency(&cpu_freq));

  if ( 0 == rank)
    printf("my rank: %d tnc: %d (vers: %.2f) machine:%s\n",rank,tnc,vers,mtype);
  GPI2_ASSERT(gaspi_barrier(GASPI_GROUP_ALL,GASPI_BLOCK));

  if(0 == rank) 
    printf("cpu freq: %.2f\n",cpu_freq);

  //benchmark
  for(i = 0; i < 1000; i++)
    {
      t0 = get_mcycles();
      GPI2_ASSERT(gaspi_barrier(GASPI_GROUP_ALL,GASPI_BLOCK));
      t1 = get_mcycles();
      
      delta[i] = (t1 - t0);
    }

  if(0 == rank)
    {
      qsort(delta,1000,sizeof *delta,mcycles_compare);

      const double div = 1.0 / cpu_freq;
      const double ts = (double)delta[500] * div;
      printf("time: %f usec\n",ts);
    }

  fflush(stdout);

  GPI2_ASSERT(gaspi_barrier(GASPI_GROUP_ALL, GASPI_BLOCK));
  GPI2_ASSERT(gaspi_proc_term(GASPI_BLOCK));

  return 0;
}
Example #2
0
int main(int argc, char *argv[])
{
  gaspi_config_t default_conf;

  TSUITE_INIT(argc, argv);

  ASSERT (gaspi_config_get(&default_conf));

  //MTU
  default_conf.mtu = 5000;
  EXPECT_FAIL (gaspi_config_set(default_conf));

  default_conf.mtu = 4096;
  ASSERT (gaspi_config_set(default_conf));
  
  default_conf.netdev_id = 2;
  EXPECT_FAIL (gaspi_config_set(default_conf));
 
  //  GASPI_NETWORK_TYPE
  default_conf.netdev_id = 0;
  default_conf.network = GASPI_IB;
  default_conf.mtu = 2048;
  ASSERT (gaspi_config_set(default_conf));


  //############################################//
  ASSERT (gaspi_proc_init(GASPI_BLOCK));

  //Don't allow setup after init
  default_conf.mtu = 2048;
  EXPECT_FAIL (gaspi_config_set(default_conf));
  
  ASSERT (gaspi_proc_term(GASPI_BLOCK));

  return EXIT_SUCCESS;
}
Example #3
0
void tsuite_init(int argc, char *argv[])
{
  int i;

  /* Backtracing for debugging */
  struct sigaction act;

  memset(&act, 0, sizeof(act));
  act.sa_sigaction = tsuite_sighandler;
  act.sa_flags = SA_SIGINFO;

  sigaction(SIGABRT, &act, NULL);
  sigaction(SIGTERM, &act, NULL);
  sigaction(SIGFPE, &act, NULL);
  sigaction(SIGBUS, &act, NULL);
  sigaction(SIGSEGV, &act, NULL);
  sigaction(SIGIO, &act, NULL);
  sigaction(SIGHUP, &act, NULL);

  if(argc > 1)
    {
      for(i = 1; i < argc; i++)
	{
	  if(strcmp(argv[i], "GASPI_ETHERNET") == 0)
	    tsuite_default_config.network = GASPI_ETHERNET;
	  if(strcmp(argv[i], "GASPI_IB") == 0)
	    tsuite_default_config.network = GASPI_IB;
	  if(strcmp(argv[i], "GASPI_ROCE") == 0)
	    tsuite_default_config.network = GASPI_ROCE;
	  if(strcmp(argv[i], "STATIC_TOPO") == 0)
	    tsuite_default_config.build_infrastructure = GASPI_TOPOLOGY_STATIC;
	  if(strcmp(argv[i], "DYNAMIC_TOPO") == 0)
	    tsuite_default_config.build_infrastructure = GASPI_TOPOLOGY_DYNAMIC;

	}
      ASSERT(gaspi_config_set(tsuite_default_config));
    }
}
Example #4
0
int 
main(int argc,char *argv[])
{

  gaspi_rank_t rank,tnc;
  gaspi_return_t ret;
  gaspi_float vers;
  gaspi_config_t gconf;
  char mtype[16];
  int commSize=1,cnt=0;
  gaspi_number_t queueSize;
  void *pret;
  int i,l;
  mcycles_t t0,t1,dt;
  mcycles_t stamp[1024], stamp2[1024], delta[1024];
  int amount_work = 1000;
  gaspi_float cpu_freq;
  
  gaspi_config_get(&gconf);
  gconf.mtu = 4096;
  gconf.queue_num = 1;
  gaspi_config_set(gconf);

  GPI2_ASSERT(gaspi_proc_init(GASPI_BLOCK));

  GPI2_ASSERT( gaspi_version(&vers) );
  GPI2_ASSERT( gaspi_proc_rank(&rank) );
  GPI2_ASSERT( gaspi_proc_num(&tnc) );
  GPI2_ASSERT( gaspi_machine_type(mtype) );
  GPI2_ASSERT( gaspi_cpu_frequency(&cpu_freq));

  if(0 == rank)
    {
      printf("cpu freq: %.2f\n", cpu_freq);
      printf("my rank: %d tnc: %d (vers: %.2f) machine:%s\n",rank, tnc, vers, mtype);
    }

  GPI2_ASSERT(gaspi_barrier(GASPI_GROUP_ALL,GASPI_BLOCK));

  //benchmark
  for(i = 0; i < 1000; i++)
    {
      t0=t1=dt=0;
      do
	{
	  t0 = get_mcycles();
	  ret = gaspi_barrier(GASPI_GROUP_ALL,GASPI_TEST);
	  t1 = get_mcycles();
	  dt += (t1-t0);

	  usleep(amount_work); //useful work here..

	}while(ret!=GASPI_SUCCESS);

      delta[i]=dt;
    }

  if(0 == rank)
    {
      qsort(delta,1000,sizeof *delta,mcycles_compare);

      const double div = 1.0 / cpu_freq;
      const double ts = (double)delta[500] * div;
      printf("time: %f usec\n",ts);
    }

  GPI2_ASSERT(gaspi_barrier(GASPI_GROUP_ALL, GASPI_BLOCK));
  GPI2_ASSERT(gaspi_proc_term(GASPI_BLOCK));

  return 0;
}