17 # define EXTERN extern "C"
19 # define EXTERN extern
22 #include "vt_inttypes.h"
27 #define VT__TRC_USER 0
28 #define VT__TRC_SYNC 1
29 #define VT__TRC_SYNCTIME 2
30 #define VT__TRC_FLUSH 3
31 #define VT__TRC_STAT 4
33 #define VT__TRC_REWIND 6
34 #define VT__TRC_OMPPREG 7
35 #define VT__TRC_REGID_NUM 8
38 #define VT__TRC_MARKER_ERROR 0
39 #define VT__TRC_MARKER_WARNING 1
40 #define VT__TRC_MARKER_HINT 2
45 EXTERN
void vt_open(
void);
50 EXTERN
void vt_reset(
void);
56 EXTERN
void vt_close_by_signal(
int signum);
61 EXTERN
void vt_close(
void);
70 EXTERN
void vt_trace_on(uint32_t tid, uint8_t mark);
82 EXTERN
void vt_trace_off(uint32_t tid, uint8_t mark, uint8_t permanent);
92 EXTERN uint8_t vt_is_trace_on(uint32_t tid);
100 EXTERN
void vt_guarantee_buffer(uint32_t tid,
size_t size);
107 EXTERN
void vt_buffer_flush(uint32_t tid);
115 EXTERN
void vt_update_counter(uint32_t tid, uint64_t* time);
122 EXTERN
void vt_mpi_init(
void);
129 EXTERN
void vt_mpi_finalize(
void);
138 EXTERN
void vt_mpi_sync(uint32_t tid, uint64_t* time,
void* comm);
145 EXTERN uint32_t vt_get_curid(
void);
159 EXTERN
void vt_def_comment(uint32_t tid,
const char* fmt, ...);
169 EXTERN uint32_t vt_def_scl_file(uint32_t tid,
const char* fname);
182 EXTERN uint32_t vt_def_scl(uint32_t tid, uint32_t fid, uint32_t begln,
193 EXTERN uint32_t vt_def_file_group(uint32_t tid,
const char* gname);
204 EXTERN uint32_t vt_def_file(uint32_t tid,
const char* fname, uint32_t gid);
214 EXTERN uint32_t vt_def_region_group(uint32_t tid,
const char* gname);
229 EXTERN uint32_t vt_def_region(uint32_t tid,
const char* rname, uint32_t fid,
230 uint32_t begln, uint32_t endln,
231 const char* rdesc, uint8_t rtype);
241 EXTERN uint32_t vt_def_counter_group(uint32_t tid,
const char* gname);
256 EXTERN uint32_t vt_def_counter(uint32_t tid,
const char* cname,
257 const char* cunit, uint32_t cprop, uint32_t gid,
271 EXTERN uint32_t vt_def_procgrp(uint32_t tid,
const char* gname, uint32_t gattr,
272 uint32_t grpc, uint32_t grpv[], uint32_t gid);
281 EXTERN
void vt_def_procgrp_attributes(uint32_t tid, uint32_t gid,
293 EXTERN uint32_t vt_def_marker(uint32_t tid,
const char* mname,
307 EXTERN uint32_t vt_def_mpi_comm(uint32_t tid, uint8_t ctype, uint32_t grpc,
318 EXTERN uint32_t vt_def_user_comm(uint32_t tid,
const char* cname);
329 EXTERN uint32_t vt_def_keyval(uint32_t tid, uint8_t vtype,
const char* kname);
339 EXTERN uint32_t vt_def_async_source(uint32_t tid,
const char* sname);
359 EXTERN uint8_t vt_enter(uint32_t tid, uint64_t* time, uint32_t rid);
367 EXTERN
void vt_exit(uint32_t tid, uint64_t* time);
383 EXTERN
void vt_ioexit(uint32_t tid, uint64_t* time, uint64_t* etime,
384 uint32_t fid, uint64_t hid, uint32_t op, uint64_t bytes );
393 EXTERN
void vt_iobegin( uint32_t tid, uint64_t* time, uint64_t mid );
406 EXTERN
void vt_ioend(uint32_t tid, uint64_t* time, uint32_t fid, uint64_t mid,
407 uint64_t hid, uint32_t op, uint64_t bytes);
419 EXTERN
void vt_count(uint32_t tid, uint64_t* time, uint32_t cid, uint64_t cval);
430 EXTERN
void vt_comment(uint32_t tid, uint64_t* time,
const char* fmt, ... );
440 EXTERN
void vt_rewind(uint32_t tid, uint64_t* time);
448 EXTERN
void vt_set_rewind_mark(uint32_t tid, uint64_t* time);
460 EXTERN
void vt_marker(uint32_t tid, uint64_t* time, uint32_t mid,
461 const char* fmt, ...);
470 EXTERN
void vt_marker_error(uint32_t tid, uint64_t* time,
471 const char* fmt, ...);
480 EXTERN
void vt_marker_warning(uint32_t tid, uint64_t* time,
481 const char* fmt, ...);
490 EXTERN
void vt_marker_hint(uint32_t tid, uint64_t* time,
491 const char* fmt, ...);
504 EXTERN
void vt_keyval(uint32_t tid, uint32_t kid, uint8_t vtype,
void* kvalue);
513 EXTERN
void vt_next_async_time(uint32_t tid, uint32_t kid, uint64_t atime);
527 EXTERN
void vt_mpi_send(uint32_t tid, uint64_t* time, uint32_t dpid,
528 uint32_t cid, uint32_t tag, uint32_t sent);
540 EXTERN
void vt_mpi_recv(uint32_t tid, uint64_t* time, uint32_t spid,
541 uint32_t cid, uint32_t tag, uint32_t recvd);
558 EXTERN
void vt_mpi_collexit(uint32_t tid, uint64_t* time, uint64_t* etime,
559 uint32_t rid, uint32_t rpid, uint32_t cid,
560 void* comm, uint32_t sent, uint32_t recvd);
574 EXTERN
void vt_mpi_collbegin(uint32_t tid, uint64_t* time, uint32_t rid,
575 uint64_t mid, uint32_t rpid, uint32_t cid,
576 uint64_t sent, uint64_t recvd);
586 EXTERN
void vt_mpi_collend(uint32_t tid, uint64_t* time, uint64_t mid,
587 void* comm, uint8_t was_recorded);
601 EXTERN
void vt_mpi_rma_put(uint32_t tid, uint64_t* time, uint32_t tpid,
602 uint32_t cid, uint32_t tag, uint64_t sent);
614 EXTERN
void vt_mpi_rma_putre(uint32_t tid, uint64_t* time, uint32_t tpid,
615 uint32_t cid, uint32_t tag, uint64_t sent);
627 EXTERN
void vt_mpi_rma_get(uint32_t tid, uint64_t* time, uint32_t tpid,
628 uint32_t cid, uint32_t tag, uint64_t recvd);
638 EXTERN
void vt_mpi_rma_end(uint32_t tid, uint64_t* time, uint32_t cid,
648 EXTERN
void vt_omp_fork(uint32_t tid);
656 EXTERN
void vt_omp_fork2(uint32_t tid, uint32_t* ptid);
663 EXTERN
void vt_omp_join(uint32_t tid);
670 EXTERN
void vt_omp_parallel_begin(uint32_t tid);
678 EXTERN
void vt_omp_parallel_begin2(uint32_t tid, uint32_t ptid);
685 EXTERN
void vt_omp_parallel_end(uint32_t tid);
699 EXTERN
void vt_user_send(uint32_t tid, uint64_t* time, uint32_t cid,
700 uint32_t tag, uint32_t sent);
712 EXTERN
void vt_user_recv(uint32_t tid, uint64_t* time, uint32_t cid,
713 uint32_t tag, uint32_t recvd);
723 EXTERN
void vt_enter_user(uint32_t tid, uint64_t* time);
731 EXTERN
void vt_exit_user(uint32_t tid, uint64_t* time);
739 EXTERN
void vt_enter_stat(uint32_t tid, uint64_t* time);
747 EXTERN
void vt_exit_stat(uint32_t tid, uint64_t* time);
755 EXTERN
void vt_enter_flush(uint32_t tid, uint64_t* time);
763 EXTERN
void vt_exit_flush(uint32_t tid, uint64_t* time);
771 EXTERN
void vt_enter_rewind(uint32_t tid, uint64_t* time);
779 EXTERN
void vt_exit_rewind(uint32_t tid, uint64_t* time);
787 EXTERN
int vt_num_traces;
788 EXTERN
int vt_my_trace;
789 EXTERN
int vt_my_ptrace;
790 EXTERN uint8_t vt_my_trace_is_master;
791 EXTERN uint8_t vt_my_trace_is_disabled;
792 EXTERN uint8_t vt_my_trace_is_first_avail;
793 EXTERN
int vt_my_funique;
796 EXTERN uint32_t vt_trc_regid[VT__TRC_REGID_NUM];
799 EXTERN uint32_t vt_trc_mid[3];
802 EXTERN uint32_t vt_all_pgid;
805 EXTERN uint32_t vt_node_pgid;
808 EXTERN uint32_t vt_misc_cgid;
811 EXTERN uint8_t vt_is_alive;
815 EXTERN uint8_t vt_close_on_mpi_finalize;
818 EXTERN uint64_t vt_start_time;
821 EXTERN uint64_t vt_start_time_epoch;