main() { usc_time_t t1, t2; usc_init(); t1=usc_gettime(); printf("MHZ=%d\n", (int)usc_mhzrate()); t2=usc_gettime(); printf("the above printf takes %lf microseconds.\n", usc_difftime(t2, t1)); printf("t1=%lf, t2=%lf\n", usc_wtime(t1), usc_wtime(t2)); t1=usc_gettime(); sleep(10); t2=usc_gettime(); printf("sleeping 10 seconds will give me %lf microseconds.\n", usc_difftime(t2, t1)); }
int bm_start(int *argc, char **argv) { int bm_switch_port; char *s, pgmname[P4_MAX_PGM_LEN]; int rc, myjsize, myrank; BNR_Group mygroup; setbuf( stdout, NULL ); /* turn off buffering for clients */ alloc_global(); /* sets p4_global */ p4_global->local_communication_only = P4_FALSE; /* hard code for mpd */ p4_local = alloc_local_bm(); if (p4_local == NULL) p4_error("p4_initenv: alloc_local_bm failed\n", 0); rc = BNR_Pre_init( p4_peer_msg_handler ); /* specific to mpich-1 */ rc = BNR_Init( ); rc = BNR_Get_group( &mygroup ); rc = BNR_Get_rank( mygroup, &myrank ); rc = BNR_Get_size( mygroup, &myjsize ); p4_dprintfl(10,"IGNORING SIGPIPE\n"); SIGNAL_P4(SIGPIPE,SIG_IGN); sprintf(whoami_p4, "p%d_%d", myrank, (int)getpid()); p4_global->num_in_proctable = myjsize; /* there really isn't any proctable */ p4_local->my_id = myrank; p4_local->my_job = BNR_Get_group_id( mygroup ); /* default jobid for now */ setup_conntab(); /* get fd for talking to the manager from the environment, where he put it after acquiring it. */ rc = BNR_Man_msgs_fd( &(p4_local->parent_man_fd) ); #if 0 /********** This is done for us in the p4mpd device **********/ /* choose a working directory */ if (strlen(p4_wd) && !chdir(p4_wd)) { p4_dprintfl(90, "working directory for %d set to %s\n", p4_local->my_id, p4_wd); } else { strncpy(pgmname,argv[0],P4_MAX_PGM_LEN); pgmname[P4_MAX_PGM_LEN-1] = 0; if ((s = (char *) rindex(pgmname,'/')) != NULL) { *s = '\0'; /* chg to directory name only */ chdir(pgmname); /* p4_dprintf("RMB bm_start: CHGING DIR TO %s\n",pgmname); */ } } #endif # ifdef SYSV_IPC sysv_num_shmids = 0; sysv_shmid[0] = -1; sysv_semid0 = -1; sysv_semid0 = init_sysv_semset(0); # endif MD_initmem(globmemsize); if (*bm_outfile) { freopen(bm_outfile, "w", stdout); freopen(bm_outfile, "w", stderr); } MD_initenv(); bm_switch_port = getswport(p4_global->my_host_name); usc_init(); init_usclock(); /* big master installing himself */ install_in_proctable(0, (-1), getpid(), p4_global->my_host_name, p4_global->my_host_name, 0, P4_MACHINE_TYPE, bm_switch_port); BNR_Fence( mygroup ); /* to make sure p4 data structures are set before interrupts can occur */ return (0); }