int main() { unsigned long t1, t2; //sleep (1); t1 = tsc(); t2 = tsc(); printf("%ld\n",t2 - t1); }
static void benchmark_init(void) { fputs("heap: compat regions\n", stderr); times(&s); start_ticks = tsc(); atexit(print_benchmark); }
int cond::RunInfoUtils::execute(){ std::string connect = getOptionValue<std::string>("connect"); std::string fromConnect = getOptionValue<std::string>("fromConnect"); // this is mandatory std::string tag = getOptionValue<std::string>("tag"); std::cout <<"# Source tag is "<<tag<<std::endl; size_t max_entries = 1000; if(hasOptionValue("max_entries")) max_entries = getOptionValue<size_t>("max_entries"); persistency::ConnectionPool connPool; if( hasOptionValue("authPath") ){ connPool.setAuthenticationPath( getOptionValue<std::string>( "authPath") ); } if(hasDebug()) connPool.setMessageVerbosity( coral::Debug ); connPool.configure(); persistency::Session session = connPool.createSession( connect, true ); std::cout <<"# Connecting to target database on "<<connect<<std::endl; persistency::Session sourceSession = connPool.createSession( fromConnect ); std::cout <<"# Connecting to source database on "<<fromConnect<<std::endl; RunInfoUpdate updater( session ); persistency::TransactionScope tsc( session.transaction() ); tsc.start(false); sourceSession.transaction().start(); updater.import( max_entries, tag, sourceSession ); sourceSession.transaction().commit(); tsc.commit(); return 0; }
int main(int argc, char* argv[]) { int *bufs[NUMBUF]; int NCORES = 1 ; if (argv[1]!=NULL) { NCORES = atoi(argv[1]); } for (int i = 0; i < NUMBUF; i++) { bufs[i] = new int[BUFSIZE]; for (int j = 0; j < BUFSIZE; j++) bufs[i][j] = i; } int nc = NCORES; tic t0 = tsc(); for (int i = 0; i < NFRAMES; i++) { int nchunks = nc; int chunk_size = BUFSIZE / nchunks; std::vector<std::pair<int, int> > chunks(nchunks); std::vector<std::future<void> > futures; for (int ii = 0; ii < nchunks - 1; ii++) chunks.push_back(std::make_pair(ii * chunk_size, ii * chunk_size + chunk_size)); chunks.push_back(std::make_pair((nchunks - 1) * chunk_size, BUFSIZE)); for (auto &limit : chunks) futures.push_back(std::async(std::launch::async, [&]() { for (int j = 1; j < NUMBUF; j++) { int *a = bufs[0] + limit.first; int *b = bufs[j] + limit.first; for (int k = 0; k < (limit.second - limit.first); k++) *a++ += *b++; } })); for (std::future<void> &f : futures) f.wait(); } tic ttics = tsc() - t0; std::cout << "std::async " << nc << " " << ttics / (2.8 * 1000000000.0) << "\n"; }
/** * This is a microbenchmark to get cpu frequency the process is running on. The * returned value is used to convert TSC counter values to microseconds. * * @return int64. * @author cjiang */ static int64 get_cpu_frequency() { struct timeval start; struct timeval end; if (gettimeofday(&start, 0)) { perror("gettimeofday"); return 0.0; } uint64 tsc_start = tsc(); // Sleep for 5 miliseconds. Comparaing with gettimeofday's few microseconds // execution time, this should be enough. usleep(5000); if (gettimeofday(&end, 0)) { perror("gettimeofday"); return 0.0; } uint64 tsc_end = tsc(); return nearbyint((tsc_end - tsc_start) * 1.0 / (get_us_interval(&start, &end))); }
static void print_benchmark(void) { double tt, pfreq; end_ticks = tsc(); times(&e); pfreq = proc_frequency(); tt = ll_to_double(end_ticks - start_ticks) / pfreq; fprintf(stderr, "runtime: %.3f\n", tt); fprintf(stderr, "cputime: %.2f\n", (e.tms_utime - s.tms_utime) / 100.0); print_memory_usage(); }
int main(int argc, char *argv[]) { double ne0, ne, ne1, ne2, ne3, ne4, ne5, ne6, ne7, ne8, ne9, ne10; double gl, gb, dordm, dist, xx, yy, zz, r, sl, cl, sb, cb, ll, hh; double nstep, dstep, dmstep; static double dd, dtest, dmpsr, rr; double dmm=0; double dm=0; double DM_MC=0; double DM_Gal=0; double DM_Host=0; double DDM; double tau_sc=0; double tau_Gal=0; double tau_MC=0; double tau_MC_sc=0; double R_g=0; double gd=0; //The localtion of Sun relative to GP and Warp double z_warp, zz_w, R_warp, theta_warp, theta_max; R_warp=8400;//pc theta_max=0.0; //In +x direction int WGN=0; int WLB=0; int WLI=0; int WFB=0; int np, ndir,vbs, nk, uu, nn; char str[5]; char dirname[64]="NULL",text[64]=""; char *p; static int i, ncount; int w_lmc=0; int w_smc=0; int umc=1; char *s; struct Warp_Sun t0; struct Thick t1; struct Thin t2; struct Spiral t3; struct GC t4; struct Gum t5; struct LB t6; struct LI t7; struct FB t8; struct LMC t9; struct Dora t10; struct SMC t11; vbs=0; argc--; argv++; if(argc < 5)usage(1); while(argc > 5){ /* Get command line inputs */ if((*argv)[0] == '-'){ s=argv[0]+1; argc--; argv++; switch(*s){ case 'h': case '?': usage(0); case 't': if(sscanf(*argv,"%s",text) != 1)usage(1); argc--; argv++; break; case 'd': if(sscanf(*argv,"%s",dirname) != 1)usage(1); argc--; argv++; break; case 'v': vbs=1; break; case 'V': vbs=2; break; default: usage(1); } } else{ if(argc>6){ printf("Extra parameters exist in input\n"); usage(1); } else break; } } if(argc==5){ if(sscanf(*argv,"%s",str) != 1){ printf("Incorrect arguments\n"); usage(1); } argc--; argv++; if(sscanf(*argv,"%lf",&gl) != 1){ printf("Incorrect arguments\n"); usage(1); } argc--; argv++; if(sscanf(*argv,"%lf",&gb) != 1){ printf("Incorrect arguments\n"); usage(1); } argc--; argv++; if(sscanf(*argv,"%lf",&dordm) != 1){ printf("Incorrect arguments\n"); usage(1); } argc--; argv++; if(sscanf(*argv,"%d",&ndir) != 1){ printf("Incorrect arguments\n"); usage(1); } DM_Host=100;//default } if(argc==6){ if(sscanf(*argv,"%s",str) != 1){ printf("Incorrect arguments\n"); usage(1); } argc--; argv++; if(sscanf(*argv,"%lf",&gl) != 1){ printf("Incorrect arguments\n"); usage(1); } argc--; argv++; if(sscanf(*argv,"%lf",&gb) != 1){ printf("Incorrect arguments\n"); usage(1); } argc--; argv++; if(sscanf(*argv,"%lf",&dordm) != 1){ printf("Incorrect arguments\n"); usage(1); } argc--; argv++; if(sscanf(*argv,"%lf",&DM_Host) != 1){ printf("Incorrect arguments\n"); usage(1); } argc--; argv++; if(sscanf(*argv,"%d",&ndir) != 1){ printf("Incorrect arguments\n"); usage(1); } } //convert to upper case p=strupr(str); if(strcmp(p,"IGM") == 0) np=-1; // IGM else if(strcmp(p,"MC") == 0) np=0; // Mag Clouds else if(strcmp(p,"GAL") == 0){ // Galaxy np=1; p="Gal"; } else{ printf("please input correct model\n"); usage(1); exit(1); } if(ndir!=1&&ndir!=2){ printf("please input correct ndir\n"); usage(1); } if(!strcmp(dirname,"NULL")){ if(getenv("YMW16_DIR")==NULL){ printf("Warning: YMW16_DIR set to local directory\n"); strcpy(dirname,"./"); }else{ strcpy(dirname,getenv("YMW16_DIR")); } } if(vbs>=1)printf("File directory: %s\n",dirname); ymw16par(&t0, &t1, &t2, &t3, &t4, &t5, &t6, &t7, &t8, &t9, &t10, &t11, dirname); if(ndir==1)printf("%s: gl=%8.3f gb=%8.3f DM=%8.2f", p, gl, gb, dordm); else printf("%s: gl=%8.3f gb=%8.3f Dist=%9.1f", p, gl, gb, dordm); ll=gl; gl=gl/RAD; gb=gb/RAD; sl=sin(gl); sb=sin(gb); cl=cos(gl); cb=cos(gb); dstep=5.0; if(np==-1){ // FRBs if(ndir==1)uu=0;//dm---dist else uu=1;//dist---dm ndir=2; DDM=dordm; dordm=100000; nk=20000; } if(np==0){ // Magellanic Cloud nk=20000; } if(np==1){ //Galactic pulsars nk=5000; } if(ndir==1){ dm=dordm; if(np==1)tau_sc=tsc(dm); dtest=dm/N0; nstep=dtest/dstep; if(nstep<200) dstep=dtest/200; if(vbs>=1){ printf("\ndtest=%lf, nstep=%lf, dstep=%lf\n", dtest, nstep, dstep); } } if(ndir==2){ dist=dordm; dtest=dist; nstep=dtest/dstep; if(nstep<200) dstep=dtest/200; if(vbs>=1){ printf("\ndtest=%lf, nstep=%lf, dstep=%lf\n", dtest, nstep, dstep); } } dd=-0.5*dstep; ncount=0; for(i=1;i<=nk;i++){ ncount++; if(vbs>=2){ printf("ncount=%d, dstep=%lf\n", ncount,dstep); } dd+=dstep; r=dd*cb; /* r is different from rr */ xx=r*sl; yy=R0*1000-r*cl; zz=dd*sb+t0.z_Sun; rr=sqrt(xx*xx+yy*yy); /* Definition of warp */ if(rr<R_warp){ zz_w=zz; }else{ theta_warp=atan2(yy,xx); z_warp=t0.Gamma_w*(rr-R_warp)*cos(theta_warp-theta_max); zz_w=zz-z_warp; } if(vbs>=2) { printf("dd=%lf, xx=%lf, yy=%lf, zz=%lf, rr=%lf\n", dd, xx, yy, zz, rr); printf("theta_warp=%lf, z_warp=%lf, zz_w=%lf\n",theta_warp,z_warp,zz_w); } R_g=sqrt(xx*xx+yy*yy+zz_w*zz_w); /* DM to Distance */ if(ndir==1){ if(dmm<=dm){ if(R_g<=35000){ thick(xx, yy, zz_w, &gd, &ne1, rr, t1); thin(xx, yy, zz_w, gd, &ne2, rr, t2); spiral(xx, yy, zz_w, gd, &ne3, rr, t3, dirname); galcen(xx, yy, zz, &ne4, t4); gum(xx, yy, zz, &ll, &ne5, t5); localbubble(xx, yy, zz, &ll, &ne6, &hh, t6); nps(xx, yy, zz, &ne7, &WLI, t7); fermibubble(xx, yy, zz, &WFB); }else{ if(np==1){ dstep=5; }else{ dstep=200; if(w_lmc>=1||w_smc>=1) dstep=5; lmc(gl,gb,dd,&w_lmc,&ne8,t9); dora(gl,gb,dd,&ne9,t10); smc(xx, yy, zz,&w_smc, &ne10, t11); } } if(WFB==1){ ne1=t8.J_FB*ne1; } ne0=ne1+max(ne2,ne3); if(hh>110){ /* Outside LB */ if(ne6>ne0 && ne6>ne5){ WLB=1; }else{ WLB=0; } }else{ /* Inside LB */ if(ne6>ne0){ WLB=1; }else{ ne1=t6.J_LB*ne1; ne0=ne1+max(ne2,ne3); WLB=0; } } if(ne7>ne0){ /* Loop I */ WLI=1; }else{ WLI=0; } if(ne5>ne0){ /* Gum Nebula */ WGN=1; }else{ WGN=0; } /* Galactic ne */ ne=(1-WLB)*((1-WGN)*((1-WLI)*(ne0+ne4+ne8+ne9+ne10)+WLI*ne7)+WGN*ne5)+WLB*ne6; if(vbs>=2){ printf("ne=%lf, ne1=%lf, ne2=%lf, ne3=%lf, ne4=%lf, ne5=%lf, ne6=%lf, ne7=%lf, ne8=%lf, ne9=%lf, ne10=%lf\n", ne, ne1, ne2, ne3, ne4, ne5, ne6, ne7, ne8, ne9, ne10); } dmstep=ne*dstep; if(dmstep<=0.000001)dmstep=0; if(vbs>=2){ printf("dmstep=%lf, dstep=%lf\n", dmstep, dstep); } dmm+=dmstep; dist=dd; if(np==0&&umc==1){ if(R_g>35000){ DM_Gal=dmm; tau_Gal=0.5*tsc(dmm); printf(" DM_Gal:%8.2f",DM_Gal); umc++; } } if(i==nk){ dist+=0.5*dstep; if(dist>100000)dist=100000; if(np==0){ DM_MC=dmm-DM_Gal; tau_MC=0.5*tsc(DM_MC); tau_MC_sc=max(tau_Gal, tau_MC); printf(" DM_MC:%8.2f",DM_MC); } if(np==0)printf(" Dist:%9.1f log(tau_sc):%7.3f %s\n",dist, log10(tau_MC_sc),text); if(np==1)printf(" DM_Gal:%8.2f Dist:%9.1f log(tau_sc):%7.3f %s\n", dmm, dist,log10(tau_sc),text); } if(vbs>=2){ printf("dmm=%lf\n", dmm); } } else{ dist=dd-0.5*dstep-(dstep*(dmm-dm))/dmstep; if(np==0){ DM_MC=dm-DM_Gal; if(DM_Gal==0){ DM_MC=0; DM_Gal=dm; tau_MC_sc=tsc(dm); printf(" DM_Gal:%8.2f ", DM_Gal); } else{ tau_MC=0.5*tsc(DM_MC); tau_MC_sc=max(tau_MC, tau_Gal); } printf(" DM_MC:%8.2f", DM_MC); } if(np==0)printf(" Dist:%9.1f log(tau_sc):%7.3f %s\n",dist,log10(tau_MC_sc),text); if(np==1)printf(" DM_Gal:%8.2f Dist:%9.1f log(tau_sc):%7.3f %s\n", dm, dist,log10(tau_sc),text); break; } } /* Distance to DM */ if(ndir==2){ if(dd<=dtest){ if(R_g<=35000){ thick(xx, yy, zz_w, &gd, &ne1, rr, t1); thin(xx, yy, zz_w, gd, &ne2, rr, t2); spiral(xx, yy, zz_w, gd, &ne3, rr, t3, dirname); galcen(xx, yy, zz, &ne4, t4); gum(xx, yy, zz, &ll, &ne5, t5); localbubble(xx, yy, zz, &ll, &ne6, &hh, t6); nps(xx, yy, zz, &ne7, &WLI, t7); fermibubble(xx, yy, zz, &WFB); }else{ if(np==1)dstep=5; else{ dstep=200; if(np==-1)dstep=5; if(w_lmc>=1||w_smc>=1) dstep=5; lmc(gl,gb,dd,&w_lmc,&ne8,t9); dora(gl,gb,dd,&ne9,t10); smc(xx, yy, zz,&w_smc, &ne10, t11); } } if(WFB==1){ ne1=t8.J_FB*ne1; } ne0=ne1+max(ne2,ne3); if(hh>110){ /* Outside LB */ if(ne6>ne0 && ne6>ne5){ WLB=1; }else{ WLB=0; } }else{ /* Inside LB */ if(ne6>ne0){ WLB=1; }else{ ne1=t6.J_LB*ne1; ne0=ne1+max(ne2,ne3); WLB=0; } } if(ne7>ne0){ /* Loop I */ WLI=1; }else{ WLI=0; } if(ne5>ne0){ /* Gum Nebula */ WGN=1; }else{ WGN=0; } /* Galactic ne */ ne=(1-WLB)*((1-WGN)*((1-WLI)*(ne0+ne4+ne8+ne9+ne10)+WLI*ne7)+WGN*ne5)+WLB*ne6; if(vbs>=2){ printf("ne=%lf, ne1=%lf, ne2=%lf, ne3=%lf, ne4=%lf, ne5=%lf, ne6=%lf, ne7=%lf, ne8=%lf, ne9=%lf, ne10=%lf\n", ne, ne1, ne2, ne3, ne4, ne5, ne6, ne7, ne8, ne9, ne10); } dmstep=ne*dstep; if(dmstep<=0.000001)dmstep=0; dm+=dmstep; if(np!=1&&umc==1){ if(R_g>35000){ DM_Gal=dm; tau_Gal=0.5*tsc(dm); printf(" DM_Gal:%8.2f",dm); umc++; } } if(i==nk&&np!=-1){ dmpsr=dm; if(np==0){ DM_MC=dm-DM_Gal; tau_MC=0.5*tsc(DM_MC); printf(" DM_MC:%8.2f", DM_MC); } tau_sc=tsc(dmpsr); tau_MC_sc=max(tau_Gal, tau_MC); if(np==0)printf(" DM:%8.2f log(tau_sc):%7.3f %s\n", dmpsr,log10(tau_MC_sc),text); if(np==1)printf(" DM:%8.2f log(tau_sc):%7.3f %s\n", dmpsr, log10(tau_sc),text); } if(i==nk&&np==-1){ if(dordm==100000){ DM_MC=dm-DM_Gal; printf(" DM_MC:%8.2f",DM_MC); } frb_d(DDM, DM_Gal, DM_MC, DM_Host, uu, vbs, text); break; } } else{ dmpsr=dm+(dmstep*(dtest-(dd-0.5*dstep)))/dstep; if(np==0){ DM_MC=dmpsr-DM_Gal; if(DM_Gal==0){ DM_MC=0; DM_Gal=dmpsr; tau_MC_sc=tsc(dmpsr); printf(" DM_Gal:%8.2f", DM_Gal); } else{ tau_MC=0.5*tsc(DM_MC); tau_MC_sc=max(tau_Gal, tau_MC); } printf(" DM_MC:%8.2f", DM_MC); } tau_sc=tsc(dmpsr); if(np==0)printf(" DM:%8.2f log(tau_sc):%7.3f %s\n", dmpsr,log10(tau_MC_sc),text); if(np==1)printf(" DM:%8.2f log(tau_sc):%7.3f %s\n", dmpsr, log10(tau_sc),text); break; } } } }
void Stats::end(string key) { long st = timer[key]; long ed = tsc(); timer[key] = ed - st; }
void Stats::start(string key) { timer[key] = tsc(); }
int main() { TestServiceImpl tsi; DoTest(&tsi); // Now via UPnP util::WorkerThreadPool wtp(util::WorkerThreadPool::NORMAL); util::BackgroundScheduler poller; wtp.PushTask(util::SchedulerTask::Create(&poller)); util::http::Client wc; util::http::Server ws(&poller, &wtp); upnp::ssdp::Responder ssdp(&poller, NULL); ws.Init(); upnp::Server server(&poller, &wc, &ws, &ssdp); TestDevice dev; dev.Init(&server, "/"); unsigned rc = server.Init(); assert(rc == 0); std::string descurl = (boost::format("http://127.0.0.1:%u/upnp/description.xml") % ws.GetPort()).str(); upnp::DeviceClient client(&wc, &ws, &poller); rc = client.Init(descurl, dev.GetUDN()); assert(rc == 0); upnp::TestServiceClient tsc(&client, s_test_service_id); rc = tsc.Init(); assert(rc == 0); DoTest(&tsc); // Async version upnp::DeviceClient client2(&wc, &ws, &poller); AsyncTest at(&client2); at.Run(descurl, dev.GetUDN()); int tries = 0; for (;;) { if (at.IsDone()) break; assert(++tries < 30); #ifdef WIN32 Sleep(1000); #else sleep(1); #endif } // TRACE << "Shutdown begins\n"; poller.Shutdown(); wtp.Shutdown(); return 0; }