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; }
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; }
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)); } }
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; }