1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
/*
* Copyright 1998-1999, University of Notre Dame.
* Authors: Brian W. Barrett, Arun F. Rodrigues, Jeffrey M. Squyres,
* and Andrew Lumsdaine
*
* This file is part of XMPI
*
* You should have received a copy of the License Agreement for XMPI
* along with the software; see the file LICENSE. If not, contact
* Office of Research, University of Notre Dame, Notre Dame, IN 46556.
*
* Permission to modify the code and to distribute modified code is
* granted, provided the text of this NOTICE is retained, a notice that
* the code was modified is included with the above COPYRIGHT NOTICE and
* with the COPYRIGHT NOTICE in the LICENSE file, and that the LICENSE
* file is distributed with the modified code.
*
* LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.
* By way of example, but not limitation, Licensor MAKES NO
* REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY
* PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE COMPONENTS
* OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS
* OR OTHER RIGHTS.
*
* Additional copyrights may follow.
*
* $Id: xmpi_dbase.h,v 1.2 1999/11/08 06:20:23 bbarrett Exp $
*
* Function: - database templates and constants
*/
#ifndef _XMPIDB
#define _XMPIDB
#include "all_list.h"
#include "xmpi.h"
#include "mpitrace.h"
/*
* constants
*/
#define XMPI_DBNTRACES 64 /* initial # traces */
#define XMPI_DBNARROWS 64 /* initial # arrows */
/*
* structures
*/
struct xmdb {
int xdb_nprocs; /* # processes */
struct xmdbproc *xdb_procs; /* process array */
LIST *xdb_cids; /* list of context IDs */
double xdb_mintime; /* min traces time (sec) */
double xdb_maxtime; /* max traces time (sec) */
double xdb_curtime; /* current time (sec) */
double xdb_minlapse; /* mimimum trace lapse (sec) */
};
struct xmdbproc {
int xdbp_node; /* process nodeid */
int xdbp_pid; /* process ID */
char xdbp_prog[TRDPROGMAX]; /* program name */
LIST *xdbp_traces; /* list of traces */
LIST *xdbp_dtypes; /* list of datatypes */
LIST *xdbp_msgsnd; /* list of msg senders */
struct xmdbtr *xdbp_curtrace; /* current trace */
};
struct xmdbcid {
int xdbc_cid; /* context ID */
int xdbc_nlprocs; /* # local processes */
int xdbc_nrprocs; /* # remote processes */
struct _gps *xdbc_lgrp; /* ptr local group GPS */
struct _gps *xdbc_rgrp; /* ptr remote group GPS */
};
struct xmdbenv {
int xdbe_func; /* function */
int xdbe_lpeer; /* peer local rank */
#define xdbe_lroot xdbe_lpeer /* root local rank */
int xdbe_tag; /* message tag */
int xdbe_cid; /* context ID */
int xdbe_dtype; /* datatype */
int xdbe_count; /* data count */
int xdbe_mlpeer; /* matched peer local rank */
int xdbe_mtag; /* matched message tag */
int xdbe_seqnum; /* message sequence number */
int xdbe_wfunc; /* wrapper function */
};
struct xmdbtr {
double xdbt_time; /* start time (sec) */
double xdbt_lapse; /* time lapse (sec) */
int xdbt_grank; /* process global rank */
int xdbt_state; /* trace state */
struct xmdbenv xdbt_envelop; /* message envelop */
double xdbt_systotal; /* total system time */
double xdbt_blktotal; /* total block time */
int xdbt_arrowdir; /* arrow direction */
#define XMPI_DBNA 0 /* no arrow */
#define XMPI_DBIN 1 /* incoming arrow */
#define XMPI_DBOUT 2 /* outgoing arrow */
int xdbt_arrowloc; /* arrow location */
#define XMPI_DBSTART 0 /* arrow at start time */
#define XMPI_DBEND 1 /* arrow at end time */
struct xmdbtr *xdbt_arrow; /* ptr in/out arrow */
struct xmdbtr **xdbt_senders; /* ptr in senders list */
};
struct xmdbdt {
int xdbd_dtype; /* datatype number */
char *xdbd_dtbuf; /* datatype buffer */
};
/*
* data structures used in parsing
*/
struct onoff {
int oo_segment; /* segment number */
double oo_ontime; /* time switched on */
double oo_offtime; /* time switched off */
int oo_inoff; /* init/on/off lst off found */
int oo_rton; /* runtime trace on found */
int oo_rtoff; /* runtime trace off found */
};
struct dbparse {
int dbp_top; /* top-level function */
int dbp_sub; /* substrate */
double dbp_start; /* start time */
double dbp_end; /* current end time */
double dbp_blktot; /* blk time total */
double dbp_systot; /* system time total */
double dbp_skew; /* clock skew */
LIST *dbp_senders; /* sender list */
LIST *dbp_segs; /* segment list */
struct onoff *dbp_curseg; /* current segment */
};
#endif /* _XMPIDB */
|