Ejemplo n.º 1
0
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));
}
Ejemplo n.º 2
0
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);
}