⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clog_preamble.c

📁 fortran并行计算包
💻 C
📖 第 1 页 / 共 2 页
字号:
                                    "CLOG user_stateID_count Title" );    snprintf( value_str, CLOG_PREAMBLE_STRLEN, "%d",              preamble->user_stateID_count );    /* just in case, there isn't \0 in value_str  */    value_str[ CLOG_PREAMBLE_STRLEN-1 ] = '\0';    buf_ptr = CLOG_Util_strbuf_put( buf_ptr, buf_tail, value_str,                                    "CLOG user_stateID_count Value" );    /* Write the CLOG known_solo_eventID_count */    buf_ptr = CLOG_Util_strbuf_put( buf_ptr, buf_tail,                                    "known_solo_eventID_count=",                                    "CLOG known_solo_eventID_count Title" );    snprintf( value_str, CLOG_PREAMBLE_STRLEN, "%d",              preamble->known_solo_eventID_count );    /* just in case, there isn't \0 in value_str  */    value_str[ CLOG_PREAMBLE_STRLEN-1 ] = '\0';    buf_ptr = CLOG_Util_strbuf_put( buf_ptr, buf_tail, value_str,                                    "CLOG known_solo_eventID_count Value" );    /* Write the CLOG user_solo_eventID_count */    buf_ptr = CLOG_Util_strbuf_put( buf_ptr, buf_tail,                                    "user_solo_eventID_count=",                                    "CLOG user_solo_eventID_count Title" );    snprintf( value_str, CLOG_PREAMBLE_STRLEN, "%d",              preamble->user_solo_eventID_count );    /* just in case, there isn't \0 in value_str  */    value_str[ CLOG_PREAMBLE_STRLEN-1 ] = '\0';    buf_ptr = CLOG_Util_strbuf_put( buf_ptr, buf_tail, value_str,                                    "CLOG user_solo_eventID_count Value" );    /* Write the file offset to the CLOG communicator IDs table */    buf_ptr = CLOG_Util_strbuf_put( buf_ptr, buf_tail,                                    "commtable_fptr=",                                    "CLOG commIDs_table_file_offset Title" );    /* Actual value = Main * Unit + Sub */    fptr_giga = (int) (preamble->commtable_fptr / ONE_GIGA);    snprintf( value_str, CLOG_PREAMBLE_STRLEN, "%d", fptr_giga );    /* just in case, there isn't \0 in value_str  */    value_str[ CLOG_PREAMBLE_STRLEN-1 ] = '\0';    buf_ptr = CLOG_Util_strbuf_put( buf_ptr, buf_tail, value_str,                                    "CLOG commIDs_table_file_offset Main" );    fptr_unit = ONE_GIGA;    snprintf( value_str, CLOG_PREAMBLE_STRLEN, "%d", fptr_unit );    /* just in case, there isn't \0 in value_str  */    value_str[ CLOG_PREAMBLE_STRLEN-1 ] = '\0';    buf_ptr = CLOG_Util_strbuf_put( buf_ptr, buf_tail, value_str,                                    "CLOG commIDs_table_file_offset Unit" );    fptr_rmdr = (int) (preamble->commtable_fptr % ONE_GIGA);    snprintf( value_str, CLOG_PREAMBLE_STRLEN, "%d", fptr_rmdr );    /* just in case, there isn't \0 in value_str  */    value_str[ CLOG_PREAMBLE_STRLEN-1 ] = '\0';    buf_ptr = CLOG_Util_strbuf_put( buf_ptr, buf_tail, value_str,                                    "CLOG commIDs_table_file_offset Sub" );    if ( buf_ptr > buf_tail ) {        fprintf( stderr, __FILE__":CLOG_Preamble_write() - Error \n"                         "\t""Internal buffer overflows!.\n" );        fflush( stderr );        CLOG_Util_abort( 1 );    }    /* Initialize the rest of the buffer[] to zero to keep valgrind happy */    while ( buf_ptr <= buf_tail ) {        *buf_ptr = 0;        buf_ptr++;    }    ierr = write( fd, buffer, CLOG_PREAMBLE_SIZE );    if ( ierr != CLOG_PREAMBLE_SIZE ) {        fprintf( stderr, __FILE__":CLOG_Preamble_write() - Error \n"                         "\t""Write to the logfile fails.\n" );        fflush( stderr );        CLOG_Util_abort( 1 );    }}void CLOG_Preamble_read( CLOG_Preamble_t *preamble, int fd ){    char  buffer[ CLOG_PREAMBLE_SIZE ];    char  value_str[ CLOG_PREAMBLE_STRLEN ];    char *buf_ptr, *buf_tail;    int   fptr_giga, fptr_rmdr, fptr_unit;    int   ierr;    ierr = read( fd, buffer, CLOG_PREAMBLE_SIZE );    if ( ierr != CLOG_PREAMBLE_SIZE ) {        fprintf( stderr, __FILE__":CLOG_Preamble_read() - \n"                         "\t""read(%d) fails to read CLOG Preamble buffer.\n ",                         CLOG_PREAMBLE_SIZE );        fflush( stderr );        CLOG_Util_abort( 1 );    }    buf_ptr  = (char *) buffer;    buf_tail = buf_ptr + CLOG_PREAMBLE_SIZE - 1;    /* Read the CLOG version ID */    buf_ptr = CLOG_Util_strbuf_get( preamble->version,                                    &(preamble->version[CLOG_VERSION_STRLEN-1]),                                    buf_ptr, "CLOG Version ID" );    if ( strncmp( preamble->version, CLOG_VERSION, CLOG_VERSION_STRLEN ) != 0 )    {        fprintf( stderr, __FILE__":CLOG_Preamble_read() - ERROR:\n"                         "\t""The input version ID %s is not %s expected!\n",                         preamble->version, CLOG_VERSION );        fflush( stderr );        CLOG_Util_abort( 1 );    }    /*  Need to be checking to make sure this is the same CLOG version */    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG Endianess Title" );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG Endianess Value" );    if ( strcmp( value_str, "TRUE " ) == 0 )        preamble->is_big_endian = CLOG_BOOL_TRUE;    else        preamble->is_big_endian = CLOG_BOOL_FALSE;    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG Finalized State Title" );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG Finalized State Value" );    if ( strcmp( value_str, "TRUE " ) == 0 )        preamble->is_finalized = CLOG_BOOL_TRUE;    else        preamble->is_finalized = CLOG_BOOL_FALSE;    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG Block Size Title" );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG Block Size Value" );    preamble->block_size = (unsigned int) atoi( value_str );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG Buffered Blocks Title" );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG Buffered Blocks Value" );    preamble->num_buffered_blocks = (unsigned int) atoi( value_str );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "Max MPI_COMM_WORLD Size Title" );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "Max MPI_COMM_WORLD Size Value" );    preamble->max_comm_world_size = (unsigned int) atoi( value_str );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "Max Thread Count Title" );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "Max Thread Count Value" );    preamble->max_thread_count    = (unsigned int) atoi( value_str );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG_KNOWN_EVENTID_START Title" );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG_KNOWN_EVENTID_START Value" );    preamble->known_eventID_start = atoi( value_str );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG_USER_EVENTID_START Title" );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG_USER_EVENTID_START Value" );    preamble->user_eventID_start = atoi( value_str );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr,                                    "CLOG_KNOWN_SOLO_EVENTID_START Title" );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr,                                    "CLOG_KNOWN_SOLO_EVENTID_START Value" );    preamble->known_solo_eventID_start = atoi( value_str );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr,                                    "CLOG_USER_SOLO_EVENTID_START Title" );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr,                                    "CLOG_USER_SOLO_EVENTID_START Value" );    preamble->user_solo_eventID_start = atoi( value_str );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG known_stateID_count Title" );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG known_stateID_count Value" );    preamble->known_stateID_count = (unsigned int) atoi( value_str );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG user_stateID_count Title" );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr, "CLOG user_stateID_count Value" );    preamble->user_stateID_count = (unsigned int) atoi( value_str );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr,                                    "CLOG known_solo_eventID_count Title" );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr,                                    "CLOG known_solo_eventID_count Value" );    preamble->known_solo_eventID_count = (unsigned int) atoi( value_str );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr,                                    "CLOG user_solo_eventID_count Title" );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr,                                    "CLOG user_solo_eventID_count Value" );    preamble->user_solo_eventID_count = (unsigned int) atoi( value_str );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr,                                    "CLOG commIDs_table_file_offset Title" );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr,                                    "CLOG commIDs_table_file_offset Main" );    fptr_giga = (unsigned int) atoi( value_str );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr,                                    "CLOG commIDs_table_file_offset Unit" );    fptr_unit = (unsigned int) atoi( value_str );    buf_ptr = CLOG_Util_strbuf_get( value_str,                                    &(value_str[ CLOG_PREAMBLE_STRLEN-1 ]),                                    buf_ptr,                                    "CLOG commIDs_table_file_offset Sub" );    fptr_rmdr = (unsigned int) atoi( value_str );    preamble->commtable_fptr = fptr_rmdr;    if ( fptr_giga > 0 ) {        preamble->commtable_fptr += (CLOG_int64_t) fptr_unit * fptr_giga;    }}void CLOG_Preamble_print( const CLOG_Preamble_t *preamble, FILE *stream ){    fprintf( stream, "%s\n", preamble->version );    if ( preamble->is_big_endian == CLOG_BOOL_TRUE )        fprintf( stream, "is_big_endian = TRUE\n" );    else        fprintf( stream, "is_big_endian = FALSE\n" );    if ( preamble->is_finalized == CLOG_BOOL_TRUE )        fprintf( stream, "is_finalized = TRUE\n" );    else        fprintf( stream, "is_finalized = FALSE\n" );    fprintf( stream, "num_buffered_blocks = %d\n",                     preamble->num_buffered_blocks );    fprintf( stream, "block_size = %d\n",                     preamble->block_size );    fprintf( stream, "max_comm_world_size = %d\n",                     preamble->max_comm_world_size );    fprintf( stream, "max_thread_count = %d\n",                     preamble->max_thread_count );    fprintf( stream, "known_eventID_start = %d\n",                     preamble->known_eventID_start );    fprintf( stream, "user_eventID_start = %d\n",                     preamble->user_eventID_start );    fprintf( stream, "known_solo_eventID_start = %d\n",                     preamble->known_solo_eventID_start );    fprintf( stream, "user_solo_eventID_start = %d\n",                     preamble->user_solo_eventID_start );    fprintf( stream, "known_stateID_count = %d\n",                     preamble->known_stateID_count );    fprintf( stream, "user_stateID_count = %d\n",                     preamble->user_stateID_count );    fprintf( stream, "known_solo_eventID_count = %d\n",                     preamble->known_solo_eventID_count );    fprintf( stream, "user_solo_eventID_count = %d\n",                     preamble->user_solo_eventID_count );    fprintf( stream, "commIDs_table_file_offset = %lld\n",                     (long long) preamble->commtable_fptr );}void CLOG_Preamble_copy( const CLOG_Preamble_t *src, CLOG_Preamble_t *dest ){    strcpy( dest->version, src->version );    dest->is_big_endian             = src->is_big_endian;    dest->is_finalized              = src->is_finalized;    dest->num_buffered_blocks       = src->num_buffered_blocks;    dest->block_size                = src->block_size;    dest->max_comm_world_size       = src->max_comm_world_size;    dest->max_thread_count          = src->max_thread_count;    dest->known_eventID_start       = src->known_eventID_start;    dest->user_eventID_start        = src->user_eventID_start;    dest->known_solo_eventID_start  = src->known_solo_eventID_start;    dest->user_solo_eventID_start   = src->user_solo_eventID_start;    dest->known_stateID_count       = src->known_stateID_count;    dest->user_stateID_count        = src->user_stateID_count;    dest->known_solo_eventID_count  = src->known_solo_eventID_count;    dest->user_solo_eventID_count   = src->user_solo_eventID_count;    dest->commtable_fptr            = src->commtable_fptr;}void CLOG_Preamble_sync(       CLOG_Preamble_t *parent,                         const CLOG_Preamble_t *child ){     /* Determine max_comm_world_size for out_cache's preamble */     if ( child->max_comm_world_size > parent->max_comm_world_size )         parent->max_comm_world_size = child->max_comm_world_size;     /* Determine max_thread_count for out_cache's preamble */     if ( child->max_thread_count > parent->max_thread_count )         parent->max_thread_count = child->max_thread_count;     /* Determine maximum block_size */     if ( child->block_size > parent->block_size )         parent->block_size  = child->block_size;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -