Commit a04747fa authored by Sudheer Chunduri's avatar Sudheer Chunduri
Browse files

reorganization of the counters in APMPI module record

parent 910d66f3
......@@ -15,6 +15,7 @@
'M'*0x10000+\
'P'*0x100+\
'I'*0x1)
#define APMPI_MPI_BLOCKING_P2P \
X(MPI_SEND) \
/*X(MPI_SSEND) \
......@@ -27,24 +28,23 @@
X(MPI_RECV) /*
X(MPI_RECV_INIT) \
X(MPI_SENDRECV) \
X(MPI_SENDRECV_REPLACE) \
Y(MPI_BLOCKING_P2P_CNT) */
X(MPI_SENDRECV_REPLACE) */
/*
#define APMPI_MPI_NONBLOCKING_P2P \
X(MPI_ISEND) \
X(MPI_ISSEND) \
X(MPI_IRSEND) \
X(MPI_IBSEND) \
X(MPI_IRECV) /*\
Y(MPI_NONBLOCKING_P2P_CNT) */
X(MPI_IRECV) \
C(MPI_NONBLOCKING_P2P_CNT)
*/
/*
#define AMPI_MPI_P2P_MISC \
X(MPI_PROBE) \
*/
#define APMPI_MPI_BLOCKING_COLL \
/* X(MPI_BCAST) \
X(MPI_BARRIER) \
/* X(MPI_BCAST) \
X(MPI_GATHER) \
X(MPI_GATHERV) \
X(MPI_SCATTER) \
......@@ -58,9 +58,13 @@
X(MPI_ALLTOALL) \
X(MPI_ALLTOALLV) \
X(MPI_ALLTOALLW) \
X(MPI_EXSCAN) \
X(MPI_EXSCAN) \
Y(MPI_BLOCKING_COLL_CNT) */
/*
#define APMPI_MPI_ONESIDED \
X(MPI_PUT) \
X(MPI_GET)
*/
#define I(a) \
Y(a ## _CALL_COUNT) \
Y(a ## _TOTAL_BYTES) \
......@@ -71,7 +75,7 @@
Y(a ## _MSG_SIZE_AGG_256K_1M) \
Y(a ## _MSG_SIZE_AGG_1M_PLUS) \
#define APMPI_PERF_COUNTERS \
#define APMPI_MPIOP_COUNTERS \
APMPI_MPI_BLOCKING_P2P \
/*APMPI_MPI_NONBLOCKING_P2P */\
APMPI_MPI_BLOCKING_COLL \
......@@ -80,49 +84,58 @@
#define Y(a) a,
#define Z(a) a
#define X I
/* integer counters for the "MPI" example module */
enum darshan_apmpi_mpiop_indices
/* integer counters for the "APMPI" module */
enum apmpi_mpiop_indices
{
APMPI_PERF_COUNTERS
APMPI_MPIOP_COUNTERS
};
#undef X
/* per MPI op max and mean times */
/* aggregate (across all the ranks) per MPI op times */
#define F(a) \
/* per MPI op total times across the calls */
#define F_P2P(a) \
Y(a ## _TOTAL_TIME) \
Y(a ## _MAX_TIME) \
Y(a ## _AVG_TIME) \
Y(a ## _AGG_MAX_TIME) \
Y(a ## _AGG_AVG_TIME) \
Y(a ## _AGG_F_VARIANCE_TIME)
#define APMPI_F_GLOBAL_COUNTERS \
Y(APMPI_F_TOTAL_MPITIME)\
Y(APMPI_F_VARIANCE_TOTAL_MPITIME)
Y(a ## _MIN_TIME) \
Y(a ## _MAX_TIME)
#define APMPI_PERF_F_COUNTERS \
#define APMPI_F_MPIOP_TOTALTIME_COUNTERS \
APMPI_MPI_BLOCKING_P2P /*
APMPI_MPI_NONBLOCKING_P2P */ \
APMPI_MPI_BLOCKING_COLL /*
APMPI_F_GLOBAL_COUNTERS */ \
APMPI_MPI_BLOCKING_COLL \
Z(APMPI_F_NUM_INDICES)
/* variance of total MPI time across all ranks */\
/* NOTE: for shared records only */\
/*X(APMPI_F_VARIANCE_RANK_TOTAL_MPITIME) \ */
/*X(APMPI_F_VARIANCE_RANK_BYTES) */ \
/* float counters for the "MPI" example module */
#define X F
enum darshan_apmpi_f_mpiop_indices
/* float counters for the "APMPI" module */
#define X F_P2P
enum apmpi_f_mpiop_totaltime_indices
{
APMPI_PERF_F_COUNTERS
APMPI_F_MPIOP_TOTALTIME_COUNTERS
};
#undef X
#undef Z
#undef Y
#define F_SYNC(a) \
Y(a ## _TOTAL_SYNC_TIME)
#define APMPI_F_MPIOP_SYNCTIME_COUNTERS \
APMPI_MPI_BLOCKING_COLL \
Z(APMPI_F_SYNC_NUM_INDICES)
/* float counters for the "APMPI" module */
#define X F_SYNC
enum apmpi_f_mpiop_totalsync_indices
{
APMPI_F_MPIOP_SYNCTIME_COUNTERS
};
#undef X
/* aggregate (across all the ranks) per MPI op times */
#define APMPI_F_MPI_GLOBAL_COUNTERS \
Y(APMPI_F_TOTAL_MPITIME)\
Y(APMPI_F_VARIANCE_TOTAL_MPITIME) \
/* this counter should go into header record on Rank 0 */ \
Z(APMPI_F_GLOBAL_NUM_INDICES)
enum apmpi_f_mpi_global_indices
{
APMPI_F_MPI_GLOBAL_COUNTERS
};
#undef Z
#undef Y
/* the darshan_apmpi_record structure encompasses the data/counters
* which would actually be logged to file by Darshan for the AP MPI
* module. This example implementation logs the following data for each
......@@ -136,6 +149,8 @@ struct darshan_apmpi_perf_record
struct darshan_base_record base_rec;
uint64_t counters[APMPI_NUM_INDICES];
double fcounters[APMPI_F_NUM_INDICES];
double fsynccounters[APMPI_F_SYNC_NUM_INDICES];
double fglobalcounters[APMPI_F_GLOBAL_NUM_INDICES];
};
......
......@@ -24,6 +24,8 @@
#include "darshan-apmpi-utils.h"
typedef long long ap_bytes_t;
#define MAX(x,y) ((x>y)?x:y)
#define MIN(x,y) ((x<y)?x:y)
#define BYTECOUNT(TYPE, COUNT) \
int tsize; \
......@@ -35,6 +37,8 @@ typedef long long ap_bytes_t;
PMPI_Type_size(TYPE, &tsize2); \
bytes = (COUNT) * tsize2
/* increment histogram bucket depending on the given __value
*
* NOTE: This macro can be used to build a histogram of access
......@@ -71,7 +75,9 @@ DARSHAN_FORWARD_DECL(PMPI_Recv, int, (void *buf, int count, MPI_Datatype datatyp
#if 0
DARSHAN_FORWARD_DECL(PMPI_Isend, int, (const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request));
DARSHAN_FORWARD_DECL(PMPI_Irecv, int, (void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request));
#endif
DARSHAN_FORWARD_DECL(PMPI_Barrier, int, (MPI_Comm comm));
#if 0
DARSHAN_FORWARD_DECL(PMPI_Bcast, int, (void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm));
DARSHAN_FORWARD_DECL(PMPI_Reduce, int, (const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm));
#endif
......@@ -162,6 +168,14 @@ static void initialize_counters (void)
{
apmpi_runtime->perf_record->fcounters[i] = 0;
}
for (i = 0; i < APMPI_F_SYNC_NUM_INDICES; i++)
{
apmpi_runtime->perf_record->fsynccounters[i] = 0;
}
for (i = 0; i < APMPI_F_GLOBAL_NUM_INDICES; i++)
{
apmpi_runtime->perf_record->fsynccounters[i] = 0;
}
return;
}
......@@ -251,15 +265,33 @@ void apmpi_runtime_initialize()
}
initialize_counters();
/* collect perf counters */
capture(apmpi_runtime->perf_record, apmpi_runtime->rec_id);
APMPI_UNLOCK();
return;
}
#if 0
static void apmpi_record_reduction_op (void* inrec_v, void* inoutrec_v,
int *len, MPI_Datatype *datatype)
{
struct darshan_apmpi_perf_record tmp_rec;
struct darshan_apmpi_perf_record *inrec = inrec_v;
struct darshan_apmpi_perf_record *inoutrec = inoutrec_v;
int i, j, k;
for (i=0; i<*len; i++)
{
memset(&tmp_rec, 0, sizeof(struct darshan_apmpi_perf_record));
tmp_rec.base_rec.id = inrec->base_rec.id;
tmp_file.base_rec.rank = -1;
}
}
#endif
#if 1
static void apmpi_shared_record_variance(MPI_Comm mod_comm,
struct darshan_apmpi_perf_record *inrec_array, struct darshan_apmpi_perf_record *outrec_array,
int shared_rec_count)
struct darshan_apmpi_perf_record *inrec, struct darshan_apmpi_perf_record *outrec)
{
MPI_Datatype var_dt;
MPI_Op var_op;
......@@ -273,64 +305,33 @@ static void apmpi_shared_record_variance(MPI_Comm mod_comm,
PMPI_Op_create(darshan_variance_reduce, 1, &var_op);
var_send_buf = malloc(shared_rec_count * sizeof(struct darshan_variance_dt));
var_send_buf = malloc(sizeof(struct darshan_variance_dt));
if(!var_send_buf)
return;
if(my_rank == 0)
{
var_recv_buf = malloc(shared_rec_count * sizeof(struct darshan_variance_dt));
var_recv_buf = malloc(sizeof(struct darshan_variance_dt));
if(!var_recv_buf)
return;
}
/* get total i/o time variances for shared records */
var_send_buf->n = 1;
var_send_buf->S = 0;
var_send_buf->T = inrec->fglobalcounters[APMPI_F_TOTAL_MPITIME];
for(i=0; i<shared_rec_count; i++)
{
var_send_buf[i].n = 1;
var_send_buf[i].S = 0;
var_send_buf[i].T = inrec_array[i].fcounters[MPIIO_F_READ_TIME] +
inrec_array[i].fcounters[MPIIO_F_WRITE_TIME] +
inrec_array[i].fcounters[MPIIO_F_META_TIME];
}
PMPI_Reduce(var_send_buf, var_recv_buf, shared_rec_count,
PMPI_Reduce(var_send_buf, var_recv_buf, 1,
var_dt, var_op, 0, mod_comm);
if(my_rank == 0)
{
for(i=0; i<shared_rec_count; i++)
{
outrec_array[i].fcounters[MPIIO_F_VARIANCE_RANK_TIME] =
(var_recv_buf[i].S / var_recv_buf[i].n);
}
memcpy(outrec, inrec, sizeof(struct darshan_apmpi_perf_record));
outrec->fglobalcounters[APMPI_F_VARIANCE_TOTAL_MPITIME] =
(var_recv_buf->S / var_recv_buf->n);
}
/* get total bytes moved variances for shared records */
for(i=0; i<shared_rec_count; i++)
{
var_send_buf[i].n = 1;
var_send_buf[i].S = 0;
var_send_buf[i].T = (double)
inrec_array[i].counters[MPIIO_BYTES_READ] +
inrec_array[i].counters[MPIIO_BYTES_WRITTEN];
}
PMPI_Reduce(var_send_buf, var_recv_buf, shared_rec_count,
var_dt, var_op, 0, mod_comm);
if(my_rank == 0)
{
for(i=0; i<shared_rec_count; i++)
{
outrec_array[i].fcounters[MPIIO_F_VARIANCE_RANK_BYTES] =
(var_recv_buf[i].S / var_recv_buf[i].n);
}
}
PMPI_Type_free(&var_dt);
PMPI_Op_free(&var_op);
free(var_send_buf);
......@@ -356,8 +357,9 @@ static void apmpi_mpi_redux(
int i;
struct darshan_apmpi_perf_record *red_send_buf = NULL;
struct darshan_apmpi_perf_record *red_recv_buf = NULL;
struct darshan_apmpi_perf_record *apmpi_rec_buf = (struct darshan_apmpi_perf_record *)apmpi_buf;
MPI_Datatype red_type;
MPI_Op red_op;
//MPI_Op red_op;
APMPI_LOCK();
......@@ -366,9 +368,54 @@ static void apmpi_mpi_redux(
APMPI_UNLOCK();
return;
}
/* collect perf counters */
capture(apmpi_runtime->perf_record, apmpi_runtime->rec_id);
/* Compute Total MPI time per rank: APMPI_F_TOTAL_MPITIME */
for (i=MPI_SEND_TOTAL_TIME; i<APMPI_F_NUM_INDICES; i+=3){
apmpi_rec_buf->fglobalcounters[APMPI_F_TOTAL_MPITIME] += apmpi_rec_buf->fcounters[i];
}
for (i=MPI_BARRIER_TOTAL_SYNC_TIME; i<APMPI_F_SYNC_NUM_INDICES; i++){
apmpi_rec_buf->fglobalcounters[APMPI_F_TOTAL_MPITIME] += apmpi_rec_buf->fsynccounters[i];
}
red_send_buf = apmpi_rec_buf;
if (my_rank == 0){
red_recv_buf = malloc(sizeof(struct darshan_apmpi_perf_record));
if(!red_recv_buf)
{
APMPI_UNLOCK();
return;
}
}
/* construct a datatype for a APMPI file record. This is serving no purpose
* except to make sure we can do a reduction on proper boundaries
*/
#if 0
PMPI_Type_contiguous(sizeof(struct darshan_apmpi_perf_record),
MPI_BYTE, &red_type);
PMPI_Type_commit(&red_type);
/* register a APMPI file record reduction operator */
PMPI_Op_create(apmpi_record_reduction_op, 1, &red_op);
/* reduce shared APMPI file records */
PMPI_Reduce(red_send_buf, red_recv_buf,
shared_rec_count, red_type, red_op, 0, mod_comm);
#endif
/* get the time variance across all ranks */
apmpi_shared_record_variance(mod_comm, red_send_buf, red_recv_buf);
/* clean up reduction state */
if(my_rank == 0)
{
memcpy(apmpi_rec_buf, red_recv_buf,
sizeof(struct darshan_apmpi_perf_record));
free(red_recv_buf);
}
//PMPI_Type_free(&red_type);
//PMPI_Op_free(&red_op);
APMPI_UNLOCK();
return;
......@@ -416,7 +463,7 @@ int DARSHAN_DECL(MPI_Send)(const void *buf, int count, MPI_Datatype datatype, in
MPI_Comm comm)
{
int ret;
double tm1, tm2;
double tm1, tm2, tdiff;
int size;
MAP_OR_FAIL(PMPI_Send);
......@@ -430,8 +477,16 @@ int DARSHAN_DECL(MPI_Send)(const void *buf, int count, MPI_Datatype datatype, in
BYTECOUNT(datatype, count);
apmpi_runtime->perf_record->counters[MPI_SEND_TOTAL_BYTES] += bytes;
DARSHAN_MSG_BUCKET_INC(&(apmpi_runtime->perf_record->counters[MPI_SEND_MSG_SIZE_AGG_0_256]), bytes);
apmpi_runtime->perf_record->fcounters[MPI_SEND_TOTAL_TIME]+=(tm2-tm1);
APMPI_POST_RECORD();
tdiff = tm2-tm1;
apmpi_runtime->perf_record->fcounters[MPI_SEND_TOTAL_TIME] += tdiff;
apmpi_runtime->perf_record->fcounters[MPI_SEND_MAX_TIME] = MAX(apmpi_runtime->perf_record->fcounters[MPI_SEND_MAX_TIME], tdiff);
apmpi_runtime->perf_record->fcounters[MPI_SEND_MIN_TIME] = MIN(apmpi_runtime->perf_record->fcounters[MPI_SEND_MIN_TIME], tdiff);
/*
Z.S = X->S + Y->S + (X->n/(Y->n*Z.n)) *
((Y->n/X->n)*X->T - Y->T) * ((Y->n/X->n)*X->T - Y->T);
apmpi_runtime->perf_record->fcounters[] =
*/ APMPI_POST_RECORD();
return ret;
}
DARSHAN_WRAPPER_MAP(PMPI_Send, int, (const void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm), MPI_Send)
......@@ -440,7 +495,7 @@ int DARSHAN_DECL(MPI_Recv)(void *buf, int count, MPI_Datatype datatype, int sour
MPI_Comm comm, MPI_Status *status)
{
int ret;
double tm1, tm2;
double tm1, tm2, tdiff;
MAP_OR_FAIL(PMPI_Recv);
......@@ -452,7 +507,10 @@ int DARSHAN_DECL(MPI_Recv)(void *buf, int count, MPI_Datatype datatype, int sour
BYTECOUNT(datatype, count);
apmpi_runtime->perf_record->counters[MPI_RECV_TOTAL_BYTES] += bytes;
DARSHAN_MSG_BUCKET_INC(&(apmpi_runtime->perf_record->counters[MPI_RECV_MSG_SIZE_AGG_0_256]), bytes);
apmpi_runtime->perf_record->fcounters[MPI_RECV_TOTAL_TIME]+=(tm2-tm1);
tdiff = tm2-tm1;
apmpi_runtime->perf_record->fcounters[MPI_RECV_TOTAL_TIME] += tdiff;
apmpi_runtime->perf_record->fcounters[MPI_RECV_MAX_TIME] = MAX(apmpi_runtime->perf_record->fcounters[MPI_RECV_MAX_TIME], tdiff);
apmpi_runtime->perf_record->fcounters[MPI_RECV_MIN_TIME] = MIN(apmpi_runtime->perf_record->fcounters[MPI_RECV_MIN_TIME], tdiff);
APMPI_POST_RECORD();
return ret;
}
......@@ -494,24 +552,34 @@ int DARSHAN_DECL(MPI_Irecv)(void *buf, int count, MPI_Datatype datatype, int sou
}
DARSHAN_WRAPPER_MAP(PMPI_Irecv, int, (void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request), MPI_Irecv)
#endif
int DARSHAN_DECL(MPI_Barrier)(MPI_Comm comm)
{
int ret;
double tm1, tm2;
double tm1, tm2, tm3, tdiff, tsync;
MAP_OR_FAIL(PMPI_Barrier);
tm1 = darshan_core_wtime();
ret = __real_PMPI_Barrier(comm);
tm2 = darshan_core_wtime();
ret = __real_PMPI_Barrier(comm);
tm3 = darshan_core_wtime();
APMPI_PRE_RECORD();
apmpi_runtime->perf_record->counters[MPI_BARRIER_COUNT]++;
apmpi_runtime->perf_record->counters[MPI_BARRIER_CALL_COUNT]++;
tdiff = tm3-tm2;
tsync = tm2-tm1;
apmpi_runtime->perf_record->fcounters[MPI_BARRIER_TOTAL_TIME] += tdiff;
apmpi_runtime->perf_record->fsynccounters[MPI_BARRIER_TOTAL_SYNC_TIME] += tsync;
apmpi_runtime->perf_record->fcounters[MPI_BARRIER_MAX_TIME] = MAX(apmpi_runtime->perf_record->fcounters[MPI_BARRIER_MAX_TIME], tdiff);
apmpi_runtime->perf_record->fcounters[MPI_BARRIER_MIN_TIME] = MIN(apmpi_runtime->perf_record->fcounters[MPI_BARRIER_MIN_TIME], tdiff);
APMPI_POST_RECORD();
return ret;
}
DARSHAN_WRAPPER_MAP(PMPI_Barrier, int, (MPI_Comm comm), MPI_Barrier)
#if 0
int DARSHAN_DECL(MPI_Bcast)(void *buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm)
{
int ret;
......@@ -551,20 +619,29 @@ int DARSHAN_DECL(MPI_Allreduce)(const void *sendbuf, void *recvbuf, int count, M
MPI_Comm comm)
{
int ret;
double tm1, tm2;
double tm1, tm2, tm3, tdiff, tsync;
MAP_OR_FAIL(PMPI_Allreduce);
tm1 = darshan_core_wtime();
ret = __real_PMPI_Allreduce(sendbuf, recvbuf, count, datatype, op, comm);
ret = __real_PMPI_Barrier(comm);
tm2 = darshan_core_wtime();
ret = __real_PMPI_Allreduce(sendbuf, recvbuf, count, datatype, op, comm);
tm3 = darshan_core_wtime();
APMPI_PRE_RECORD();
apmpi_runtime->perf_record->counters[MPI_ALLREDUCE_CALL_COUNT]++;
BYTECOUNT(datatype, count);
apmpi_runtime->perf_record->counters[MPI_ALLREDUCE_TOTAL_BYTES] += bytes;
DARSHAN_MSG_BUCKET_INC(&(apmpi_runtime->perf_record->counters[MPI_ALLREDUCE_MSG_SIZE_AGG_0_256]), bytes);
apmpi_runtime->perf_record->fcounters[MPI_ALLREDUCE_TOTAL_TIME]+=(tm2-tm1);
tdiff = tm3-tm2;
tsync = tm2-tm1;
apmpi_runtime->perf_record->fcounters[MPI_ALLREDUCE_TOTAL_TIME] += tdiff;
apmpi_runtime->perf_record->fsynccounters[MPI_ALLREDUCE_TOTAL_SYNC_TIME] += tsync;
apmpi_runtime->perf_record->fcounters[MPI_ALLREDUCE_MAX_TIME] = MAX(apmpi_runtime->perf_record->fcounters[MPI_ALLREDUCE_MAX_TIME], tdiff);
apmpi_runtime->perf_record->fcounters[MPI_ALLREDUCE_MIN_TIME] = MIN(apmpi_runtime->perf_record->fcounters[MPI_ALLREDUCE_MIN_TIME], tdiff);
APMPI_POST_RECORD();
return ret;
}
DARSHAN_WRAPPER_MAP(PMPI_Allreduce, int, (const void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm), MPI_Allreduce)
......
--wrap=MPI_Send
--wrap=MPI_Recv
--wrap=MPI_Allreduce
--wrap=MPI_Barrier
--wrap=PMPI_Send
--wrap=PMPI_Recv
--wrap=PMPI_Allreduce
--wrap=PMPI_Barrier
......@@ -27,16 +27,24 @@
#define Z(a) #a
#define X I
char *apmpi_counter_names[] = {
APMPI_PERF_COUNTERS
APMPI_MPIOP_COUNTERS
};
#undef X
#define X F
char *apmpi_f_counter_names[] = {
APMPI_PERF_F_COUNTERS
#define X F_P2P
char *apmpi_f_mpiop_totaltime_counter_names[] = {
APMPI_F_MPIOP_TOTALTIME_COUNTERS
};
#undef X
#define X F_SYNC
char *apmpi_f_mpiop_totalsync_counter_names[] = {
APMPI_F_MPIOP_SYNCTIME_COUNTERS
};
#undef X
char *apmpi_f_mpi_global_counter_names[] = {
APMPI_F_MPI_GLOBAL_COUNTERS
};
#undef Y
#undef Z
#undef X
static int darshan_log_get_apmpi_rec(darshan_fd fd, void** buf_p);
static int darshan_log_put_apmpi_rec(darshan_fd fd, void* buf);
......@@ -175,7 +183,21 @@ static void darshan_log_print_apmpi_rec(void *rec, char *file_name,
{
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec->base_rec.rank, prf_rec->base_rec.id,
apmpi_f_counter_names[i], prf_rec->fcounters[i],
apmpi_f_mpiop_totaltime_counter_names[i], prf_rec->fcounters[i],
"", "", "");
}
for(i = 0; i < APMPI_F_SYNC_NUM_INDICES; i++)
{
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec->base_rec.rank, prf_rec->base_rec.id,
apmpi_f_mpiop_totalsync_counter_names[i], prf_rec->fsynccounters[i],
"", "", "");
}
for(i = 0; i < APMPI_F_GLOBAL_NUM_INDICES; i++)
{
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec->base_rec.rank, prf_rec->base_rec.id,
apmpi_f_mpi_global_counter_names[i], prf_rec->fglobalcounters[i],
"", "", "");
}
......
......@@ -179,7 +179,6 @@ void apxc_runtime_initialize()
&my_rank,
NULL);
printf("L 182 --- my_rank: %d apxc_buf_size:%d \n", my_rank, apxc_buf_size);
/* not enough memory to fit crayxc module record */
if(apxc_buf_size < sizeof(struct darshan_apxc_header_record) + sizeof(struct darshan_apxc_perf_record))
{
......@@ -232,7 +231,6 @@ void apxc_runtime_initialize()
apxc_runtime->group, apxc_runtime->chassis, apxc_runtime->blade);
//apxc_runtime->rtr_id = darshan_core_gen_record_id(rtr_rec_name);
apxc_runtime->rtr_id = darshan_core_gen_record_id("APXC");
printf("L 234 --- my_rank: %d apxc_runtime->rtr_id:%lu rtr_rec_name: %s g: %d c: %d b: %d n: %d \n", my_rank, apxc_runtime->rtr_id, rtr_rec_name, apxc_runtime->group, apxc_runtime->chassis, apxc_runtime->blade, apxc_runtime->node);
apxc_runtime->perf_record = darshan_core_register_record(
apxc_runtime->rtr_id,
//NULL,
......@@ -283,7 +281,6 @@ static void apxc_mpi_redux(
MPI_Comm router_comm;
APXC_LOCK();
printf("-------- ****** -------- Inside apxc_mpi_redux\n");
if (!apxc_runtime)
{
APXC_UNLOCK();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment