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

📄 mpe_log.h

📁 fortran并行计算包
💻 H
字号:
/*   (C) 2001 by Argonne National Laboratory.       See COPYRIGHT in top-level directory.*/#ifndef _MPE_LOG_H_#define _MPE_LOG_H_#ifdef HAVE_WINDOWS_H#ifdef USE_MPE_STATIC_LIBRARY# define MPEU_DLL_SPEC#else# ifdef MPE_EXPORTS#  define MPEU_DLL_SPEC __declspec(dllexport)# else#  define MPEU_DLL_SPEC __declspec(dllimport)# endif#endif#else# define MPEU_DLL_SPEC#endif/*  Constants, MPE_Log_XXX, are for backward compatibility reasons.  MPE is currently returning MPE_LOG_XXX status.*//* function return values */#define MPE_LOG_OK                0#define MPE_Log_OK                MPE_LOG_OK  /* no problems */#define MPE_LOG_LOCKED_OUT        1#define MPE_Log_LOCKED_OUT        MPE_LOG_LOCKED_OUT  /* logs are being worked on, cannot insert any new entries */#define MPE_LOG_NO_MEMORY         2#define MPE_Log_NO_MEMORY         MPE_LOG_NO_MEMORY  /* could not allocate memory for logging data */#define MPE_LOG_FILE_PROB         3#define MPE_Log_FILE_PROB         MPE_LOG_FILE_PROB  /* cound not open file for writing out the logged info */#define MPE_LOG_NOT_INITIALIZED   4#define MPE_Log_NOT_INITIALIZED   MPE_LOG_NOT_INITIALIZED  /* logging not initialized */#define MPE_LOG_PACK_FAIL         5#define MPE_Log_PACK_FAIL         MPE_LOG_PACK_FAIL#if !defined( CLOG_NOMPI )#include "mpi.h"#else/*    To avoid mpi_null.h from being exposed to the user's include_dir,    the definition of MPI_Comm has to match that in mpi_null.h.    The "#if !defined( _MPI_NULL_MPI_COMM )" is to avoid duplicated    definition of MPI_Comm when both mpi_null.h and this .h are used    in the same .c file.*/#if !defined( _MPI_NULL_MPI_COMM )#define _MPI_NULL_MPI_COMMtypedef int  MPI_Comm;#endif#endif /* Endof if !defined( CLOG_NOMPI ) */#include "clog_commset.h"/* call before calling any other logging functions */int MPE_Init_log( void );int MPE_Initialized_logging( void );/* create state with byte info data description lines in MPI_Comm */int MPE_Describe_comm_state( MPI_Comm comm,                             int state_startID, int state_finalID,                             const char *name, const char *color,                             const char *format );/* create state with byte info data description lines in MPI_COMM_WORLD */int MPE_Describe_info_state( int state_startID, int state_finalID,                             const char *name, const char *color,                             const char *format );/* Internal MPE routine for MPI logging in MPI_Comm */int MPE_Describe_known_state( const CLOG_CommIDs_t *commIDs, int local_thread,                              int stateID, int state_startID, int state_finalID,                              const char *name, const char *color,                              const char *format );/* create state description lines in MPI_COMM_WORLD */int MPE_Describe_state( int state_startID, int state_finalID,                        const char *name, const char *color );/* create event with byte info data description lines in MPI_comm */int MPE_Describe_comm_event( MPI_Comm comm, int eventID,                             const char *name, const char *color,                             const char *format );/* create event with byte info data description lines in MPI_COMM_WORLD */int MPE_Describe_info_event( int eventID,                             const char *name, const char *color,                             const char *format );/* Internal MPE routine for MPI logging in MPI_Eventm */int MPE_Describe_known_event( const CLOG_CommIDs_t *commIDs, int local_thread,                              int eventID,                              const char *name, const char *color,                              const char *format );/* create event description lines in MPI_COMM_WORLD */int MPE_Describe_event( int eventID,                        const char *name, const char *color );/* fetch new user-space event number(s) */int MPE_Log_get_event_number( void );int MPE_Log_get_state_eventIDs( int *statedef_startID,                                int *statedef_finalID );int MPE_Log_get_solo_eventID( int *eventdef_eventID );/* Internal MPE routine for MPI logging *//* fetch a new known event ID of state for MPE Logging system */int MPE_Log_get_known_eventID( void );/* fetch a new known state ID for MPE Logging system */int MPE_Log_get_known_stateID( void );/* fetch a new known solo event ID for MPE Logging system */int MPE_Log_get_known_solo_eventID( void );/* log a MPI_Comm creation/destruction event */int MPE_Log_commIDs_intracomm( const CLOG_CommIDs_t *commIDs, int local_thread,                               int comm_etype,                               const CLOG_CommIDs_t *intracommIDs );int MPE_Log_commIDs_nullcomm( const CLOG_CommIDs_t *commIDs, int local_thread,                              int comm_etype );int MPE_Log_commIDs_intercomm( const CLOG_CommIDs_t *commIDs, int local_thread,                               int comm_etype,                               const CLOG_CommIDs_t *intercommIDs );/* log the sending of a message in MPI_Comm */int MPE_Log_commIDs_send( const CLOG_CommIDs_t *commIDs, int local_thread,                          int receiver, int tag, int size );int MPE_Log_comm_send( MPI_Comm comm, int receiver, int tag, int size );/* log the sending of a message in MPI_COMM_WORLD */int MPE_Log_send( int receiver, int tag, int size );/* log the receiving of a message in MPI_Comm */int MPE_Log_commIDs_receive( const CLOG_CommIDs_t *commIDs, int local_thread,                             int sender, int tag, int size );int MPE_Log_comm_receive( MPI_Comm comm, int sender, int tag, int size );/* log the receiving of a message in MPI_COMM_WORLD */int MPE_Log_receive( int sender, int tag, int size );/* MPE_LOG_BYTESIZE is equal to sizeof(CLOG_BYTES) defined in clog.h */#define MPE_LOG_BYTESIZE  (4 * sizeof(double))typedef char MPE_LOG_BYTES[ MPE_LOG_BYTESIZE ];int MPE_Log_pack( MPE_LOG_BYTES bytebuf, int *position,                  char tokentype, int count, const void *data );int MPE_Log_commIDs_event( const CLOG_CommIDs_t *commIDs, int local_thread,                           int event, const char *bytebuf );/* log an event in MPI_Comm */int MPE_Log_comm_event( MPI_Comm comm, int event, const char *bytebuf );/* log an event in MPI_COMM_WORLD */int MPE_Log_event( int event, int data, const char *bytebuf );/* log a bare event in MPI_COMM_WORLD */int MPE_Log_bare_event( int event );/* log an infomational event in MPI_COMM_WORLD */int MPE_Log_info_event( int event, const char *bytebuf );int MPE_Log_sync_clocks( void );/* start logging events */int MPE_Start_log( void );/* stop logging events */int MPE_Stop_log( void );/* Synchronize thread related data to all processes */void MPE_Log_thread_sync( int local_thread_count );/* write out data to a file */int MPE_Finish_log( const char *filename );/* get the immutable merged logfile name */const char* MPE_Log_merged_logfilename( void );#endif/*   The following documentation has little resemblance to current CLOG-2   format.  They are kept here for historical reference purpose.   2/17/2005         Anthony Chan *//*The format:Each line:  type process task data cycle timestamp [comment]    type - nonnegative integer representing a user-defined event type    process - an integer representing the process in which the event occurred    task - an integer representing a different notion of task.  Usually            ignored.    data - an integer representing user data for the event    cycle - an integer representing a time cycle, used to distinguish            between time returned by a timer that "rolls over" during            the run    timestamp - an integer representing (when considered in conjuction                with the cycle number) a time for the event.  Upshot treats                the units as microseconds    comment - an optional character string representing user data.  Currently              12 character maximum, will soon hopefully be any length (really!)All events from -100 to -1 are reserved header information events.  Whena log is produced, all [-100,-1] events will be moved to the top of thelogfile and have their timestamps set to 0.All event from -101 and below are reserved system events.  This is toprovide some standardization for the logfiles, so various interpretingprograms can glean similar data from the same logfile.  All [-101,...)events will have valid timestamps and will be left in time-sortedorder in the logfile.Formats for reserved types:  -1 Creation data                *not used*     Comment: Creator and date  -2 Number of events in the logfile   *not used*     Data: number of events  -3 Number of processors in the run     Data: number of processes  -4 Number of tasks used in the run  *not used*     Task: number of tasks  -5 Number of event types used        *not used*     Data: number event types  -6 Start time of the run     Timestamp: start time  -7 End time of the run     Timestamp: end time  -8 Number of times the timer cycled     For example, if the timer's units are in microseconds, and it has a     range of 0 - 2^32, and a run lasts 3 hours (range=4294 seconds, 3 hours=     10800 seconds), the timer would have cycled at least twice.     Data: number of timer cycles  -9 Decription of event types     *not used*     Data: event type     Comment: Description  -10 printf string for event types   *not used*      Data: event type      Comment: printf string  -11 Rollover point      The point at which the timer values 'rollover'      Timestamp: rollover point  -13 State definition      Define a state based on the events that signal the beginning and end      of the state.  Also, define what to call the state and what color/      stipple pattern to give it in a graphical visualization tool.      Task: start event      Data: end event      Comment: color:bitmap state name      example:  -13 0 3 4 0 0 Green:boxes Rhode Island      An event with type 3 will signify the entrance into a 'Rhode Island'      state.  An event wil type 4 will signify the exit of the 'Rhode Island'      state.      States may be overlapped (enter a 'Rhode Island' state while in a      'Wisconsin' state while in a 'Nevada' state), and the state name may      have whitspace in it.         -100 Synchronization event        Sync events are used internally to sychronize timers on the various        processes.  They do not appear in the logfiles.   -101 Send message        Represents the sending of a message	Data: process ID of the receiving process	Comment: <message-type tag of message> <size of the message, in bytes>   -102 Receive message        Represents the receiving of a message	Data: process ID of the sending process	Comment: <message-type tag of message> <size of the message, in bytes>*/

⌨️ 快捷键说明

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