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

update utils and barrier should not have msg size

parent a04747fa
......@@ -42,10 +42,12 @@
#define AMPI_MPI_P2P_MISC \
X(MPI_PROBE) \
*/
#define APMPI_MPI_COLL_SYNC \
V(MPI_BARRIER)
#define APMPI_MPI_BLOCKING_COLL \
X(MPI_BARRIER) \
/* X(MPI_BCAST) \
X(MPI_GATHER) \
X(MPI_BCAST) \
/* X(MPI_GATHER) \
X(MPI_GATHERV) \
X(MPI_SCATTER) \
X(MPI_SCATTERV) \
......@@ -75,21 +77,27 @@
Y(a ## _MSG_SIZE_AGG_256K_1M) \
Y(a ## _MSG_SIZE_AGG_1M_PLUS) \
#define J(a) \
Y(a ## _CALL_COUNT) \
#define APMPI_MPIOP_COUNTERS \
APMPI_MPI_BLOCKING_P2P \
/*APMPI_MPI_NONBLOCKING_P2P */\
APMPI_MPI_COLL_SYNC \
APMPI_MPI_BLOCKING_COLL \
Z(APMPI_NUM_INDICES)
#define Y(a) a,
#define Z(a) a
#define X I
#define V J
/* integer counters for the "APMPI" module */
enum apmpi_mpiop_indices
{
APMPI_MPIOP_COUNTERS
};
#undef X
#undef V
/* per MPI op total times across the calls */
#define F_P2P(a) \
......@@ -100,35 +108,39 @@ enum apmpi_mpiop_indices
#define APMPI_F_MPIOP_TOTALTIME_COUNTERS \
APMPI_MPI_BLOCKING_P2P /*
APMPI_MPI_NONBLOCKING_P2P */ \
APMPI_MPI_COLL_SYNC \
APMPI_MPI_BLOCKING_COLL \
Z(APMPI_F_NUM_INDICES)
/* float counters for the "APMPI" module */
#define X F_P2P
#define V F_P2P
enum apmpi_f_mpiop_totaltime_indices
{
APMPI_F_MPIOP_TOTALTIME_COUNTERS
};
#undef X
#undef V
#define F_SYNC(a) \
Y(a ## _TOTAL_SYNC_TIME)
#define APMPI_F_MPIOP_SYNCTIME_COUNTERS \
APMPI_MPI_COLL_SYNC \
APMPI_MPI_BLOCKING_COLL \
Z(APMPI_F_SYNC_NUM_INDICES)
/* float counters for the "APMPI" module */
#define X F_SYNC
#define V F_SYNC
enum apmpi_f_mpiop_totalsync_indices
{
APMPI_F_MPIOP_SYNCTIME_COUNTERS
};
#undef X
#undef V
/* 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 */ \
Y(RANK_TOTAL_MPITIME) \
Z(APMPI_F_GLOBAL_NUM_INDICES)
enum apmpi_f_mpi_global_indices
{
......@@ -152,6 +164,13 @@ struct darshan_apmpi_perf_record
double fsynccounters[APMPI_F_SYNC_NUM_INDICES];
double fglobalcounters[APMPI_F_GLOBAL_NUM_INDICES];
};
struct darshan_apmpi_header_record
{
struct darshan_base_record base_rec;
int64_t magic;
double apmpi_f_variance_total_mpitime;
uint64_t appid;
};
#endif /* __APMPI_LOG_FORMAT_H */
......@@ -125,7 +125,9 @@ DARSHAN_FORWARD_DECL(PMPI_Exscan, int, (const void *sendbuf, void *recvbuf, int
struct apmpi_runtime
{
struct darshan_apmpi_perf_record *perf_record;
struct darshan_apmpi_header_record *header_record;
darshan_record_id rec_id;
darshan_record_id header_id;
};
static struct apmpi_runtime *apmpi_runtime = NULL;
......@@ -218,7 +220,8 @@ void apmpi_runtime_initialize()
return;
}
apmpi_buf_size = sizeof(struct darshan_apmpi_perf_record);
apmpi_buf_size = sizeof(struct darshan_apmpi_header_record) +
sizeof(struct darshan_apmpi_perf_record);
/* register the apmpi module with the darshan-core component */
darshan_core_register_module(
......@@ -229,7 +232,7 @@ void apmpi_runtime_initialize()
NULL);
/* not enough memory to fit apmpi module record */
if(apmpi_buf_size < sizeof(struct darshan_apmpi_perf_record))
if(apmpi_buf_size < sizeof(struct darshan_apmpi_header_record) + sizeof(struct darshan_apmpi_perf_record))
{
darshan_core_unregister_module(APMPI_MOD);
APMPI_UNLOCK();
......@@ -245,6 +248,33 @@ void apmpi_runtime_initialize()
return;
}
memset(apmpi_runtime, 0, sizeof(*apmpi_runtime));
if (my_rank == 0)
{
apmpi_runtime->header_id = darshan_core_gen_record_id("darshan-apmpi-header");
/* register the apmpi record with darshan-core */
apmpi_runtime->header_record = darshan_core_register_record(
apmpi_runtime->header_id,
//NULL,
"darshan-apmpi-header",
APMPI_MOD,
sizeof(struct darshan_apmpi_header_record),
NULL);
if(!(apmpi_runtime->header_record))
{
darshan_core_unregister_module(APMPI_MOD);
free(apmpi_runtime);
apmpi_runtime = NULL;
APMPI_UNLOCK();
return;
}
apmpi_runtime->header_record->base_rec.id = apmpi_runtime->header_id;
apmpi_runtime->header_record->base_rec.rank = my_rank;
apmpi_runtime->header_record->magic = APMPI_MAGIC;
apmpi_runtime->header_record->appid = atoi((char*)getenv( csJOBID_ENV_STR ));
}
//sprintf(rec_name, "darshan-apmpi-%d", my_rank);
//apmpi_runtime->rec_id = darshan_core_gen_record_id(rec_name);
apmpi_runtime->rec_id = darshan_core_gen_record_id("APMPI"); //record name
......@@ -290,8 +320,7 @@ static void apmpi_record_reduction_op (void* inrec_v, void* inoutrec_v,
}
#endif
#if 1
static void apmpi_shared_record_variance(MPI_Comm mod_comm,
struct darshan_apmpi_perf_record *inrec, struct darshan_apmpi_perf_record *outrec)
static void apmpi_shared_record_variance(MPI_Comm mod_comm)
{
MPI_Datatype var_dt;
MPI_Op var_op;
......@@ -320,15 +349,14 @@ static void apmpi_shared_record_variance(MPI_Comm mod_comm,
/* 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];
var_send_buf->T = apmpi_runtime->perf_record->fglobalcounters[RANK_TOTAL_MPITIME];
PMPI_Reduce(var_send_buf, var_recv_buf, 1,
var_dt, var_op, 0, mod_comm);
if(my_rank == 0)
{
memcpy(outrec, inrec, sizeof(struct darshan_apmpi_perf_record));
outrec->fglobalcounters[APMPI_F_VARIANCE_TOTAL_MPITIME] =
apmpi_runtime->header_record->apmpi_f_variance_total_mpitime =
(var_recv_buf->S / var_recv_buf->n);
}
......@@ -355,9 +383,11 @@ static void apmpi_mpi_redux(
int shared_rec_count)
{
int i;
#if 0
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;
#endif
MPI_Datatype red_type;
//MPI_Op red_op;
......@@ -369,15 +399,16 @@ static void apmpi_mpi_redux(
return;
}
/* Compute Total MPI time per rank: APMPI_F_TOTAL_MPITIME */
/* Compute Total MPI time per rank: RANK_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];
apmpi_runtime->perf_record->fglobalcounters[RANK_TOTAL_MPITIME] += apmpi_runtime->perf_record->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];
apmpi_runtime->perf_record->fglobalcounters[RANK_TOTAL_MPITIME] += apmpi_runtime->perf_record->fsynccounters[i];
}
red_send_buf = apmpi_rec_buf;
#if 0
red_send_buf = apmpi_runtime->perf_record;
if (my_rank == 0){
red_recv_buf = malloc(sizeof(struct darshan_apmpi_perf_record));
......@@ -390,7 +421,6 @@ static void apmpi_mpi_redux(
/* 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);
......@@ -403,16 +433,14 @@ static void apmpi_mpi_redux(
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);
apmpi_shared_record_variance(mod_comm);
#if 0
/* 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);
}
#endif
//PMPI_Type_free(&red_type);
//PMPI_Op_free(&red_op);
......@@ -430,7 +458,12 @@ static void apmpi_shutdown(
APMPI_LOCK();
assert(apmpi_runtime);
*apmpi_buf_sz = sizeof( *apmpi_runtime->perf_record);
*apmpi_buf_sz = 0;
if(my_rank == 0) {
*apmpi_buf_sz += sizeof( *apmpi_runtime->header_record);
}
*apmpi_buf_sz += sizeof( *apmpi_runtime->perf_record);
finalize_counters();
free(apmpi_runtime);
apmpi_runtime = NULL;
......
......@@ -26,20 +26,26 @@
#define Y(a) #a,
#define Z(a) #a
#define X I
#define V J
char *apmpi_counter_names[] = {
APMPI_MPIOP_COUNTERS
};
#undef X
#undef V
#define X F_P2P
#define V F_P2P
char *apmpi_f_mpiop_totaltime_counter_names[] = {
APMPI_F_MPIOP_TOTALTIME_COUNTERS
};
#undef X
#undef V
#define X F_SYNC
#define V F_SYNC
char *apmpi_f_mpiop_totalsync_counter_names[] = {
APMPI_F_MPIOP_SYNCTIME_COUNTERS
};
#undef X
#undef V
char *apmpi_f_mpi_global_counter_names[] = {
APMPI_F_MPI_GLOBAL_COUNTERS
};
......@@ -66,11 +72,13 @@ struct darshan_mod_logutil_funcs apmpi_logutils =
static int darshan_log_get_apmpi_rec(darshan_fd fd, void** buf_p)
{
struct darshan_apmpi_header_record *hdr_rec;
struct darshan_apmpi_perf_record *prf_rec;
int rec_len;
char *buffer;
int i;
int ret = -1;
static int first_rec = 1;
if(fd->mod_map[APMPI_MOD].len == 0)
return(0);
......@@ -105,6 +113,12 @@ static int darshan_log_get_apmpi_rec(darshan_fd fd, void** buf_p)
/* v1, current version */
if (fd->mod_ver[APMPI_MOD] == APMPI_VER)
{
if (first_rec)
{
rec_len = sizeof(struct darshan_apmpi_header_record);
first_rec = 0;
}
else
rec_len = sizeof(struct darshan_apmpi_perf_record);
ret = darshan_log_get_mod(fd, APMPI_MOD, buffer, rec_len);
......@@ -114,14 +128,20 @@ static int darshan_log_get_apmpi_rec(darshan_fd fd, void** buf_p)
{
if(fd->swap_flag)
{
if (rec_len == sizeof(struct darshan_apmpi_header_record))
{
hdr_rec = (struct darshan_apmpi_header_record*)buffer;
/* swap bytes if necessary */
DARSHAN_BSWAP64(&(hdr_rec->base_rec.id));
DARSHAN_BSWAP64(&(hdr_rec->base_rec.rank));
DARSHAN_BSWAP64(&(hdr_rec->apmpi_f_variance_total_mpitime));
DARSHAN_BSWAP64(&(hdr_rec->appid));
}
else
{
prf_rec = (struct darshan_apmpi_perf_record*)buffer;
DARSHAN_BSWAP64(&(prf_rec->base_rec.id));
DARSHAN_BSWAP64(&(prf_rec->base_rec.rank));
/*DARSHAN_BSWAP64(&(prf_rec->group));
DARSHAN_BSWAP64(&(prf_rec->chassis));
DARSHAN_BSWAP64(&(prf_rec->blade));
DARSHAN_BSWAP64(&(prf_rec->node));
*/
for (i = 0; i < APMPI_NUM_INDICES; i++)
{
DARSHAN_BSWAP64(&prf_rec->counters[i]);
......@@ -130,6 +150,15 @@ static int darshan_log_get_apmpi_rec(darshan_fd fd, void** buf_p)
{
DARSHAN_BSWAP64(&prf_rec->fcounters[i]);
}
for (i = 0; i < APMPI_F_SYNC_NUM_INDICES; i++)
{
DARSHAN_BSWAP64(&prf_rec->fsynccounters[i]);
}
for (i = 0; i < APMPI_F_GLOBAL_NUM_INDICES; i++)
{
DARSHAN_BSWAP64(&prf_rec->fglobalcounters[i]);
}
}
}
*buf_p = buffer;
return(1);
......@@ -154,7 +183,13 @@ static int darshan_log_put_apmpi_rec(darshan_fd fd, void* buf)
int rec_len;
static int first_rec = 1;
rec_len = sizeof(struct darshan_apmpi_perf_record);
if (first_rec)
{
rec_len = sizeof(struct darshan_apmpi_header_record);
first_rec = 0;
}
else
rec_len = sizeof(struct darshan_apmpi_perf_record);
ret = darshan_log_put_mod(fd, APMPI_MOD, buf,
rec_len, APMPI_VER);
......@@ -168,8 +203,24 @@ static void darshan_log_print_apmpi_rec(void *rec, char *file_name,
char *mnt_pt, char *fs_type)
{
int i;
static int first_rec = 1;
struct darshan_apmpi_header_record *hdr_rec;
struct darshan_apmpi_perf_record *prf_rec;
if (first_rec)
{
hdr_rec = rec;
DARSHAN_U_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
hdr_rec->base_rec.rank, hdr_rec->base_rec.id,
"application_id", hdr_rec->appid, "", "", "");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
hdr_rec->base_rec.rank, hdr_rec->base_rec.id,
"RANKS_TOTAL_MPITIME_VARIANCE", hdr_rec->apmpi_f_variance_total_mpitime,
"", "", "");
first_rec = 0;
}
else
{
prf_rec = rec;
for(i = 0; i < APMPI_NUM_INDICES; i++)
......@@ -200,6 +251,7 @@ static void darshan_log_print_apmpi_rec(void *rec, char *file_name,
apmpi_f_mpi_global_counter_names[i], prf_rec->fglobalcounters[i],
"", "", "");
}
}
return;
}
......@@ -217,10 +269,206 @@ static void darshan_log_print_apmpi_description(int ver)
static void darshan_log_print_apmpi_rec_diff(void *file_rec1, char *file_name1,
void *file_rec2, char *file_name2)
{
struct darshan_apmpi_header_record *hdr_rec1;
struct darshan_apmpi_header_record *hdr_rec2;
struct darshan_apmpi_perf_record *prf_rec1;
struct darshan_apmpi_perf_record *prf_rec2;
hdr_rec1 = (struct darshan_apmpi_header_record*) file_rec1;
hdr_rec2 = (struct darshan_apmpi_header_record*) file_rec2;
prf_rec1 = (struct darshan_apmpi_perf_record*) file_rec1;
prf_rec2 = (struct darshan_apmpi_perf_record*) file_rec2;
if (hdr_rec1->magic == APMPI_MAGIC)
{
/* this is the header record */
if (!hdr_rec2)
{
printf("- ");
DARSHAN_U_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
hdr_rec1->base_rec.rank, hdr_rec1->base_rec.id,
"appid", hdr_rec1->appid, "", "", "");
printf("- ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
hdr_rec1->base_rec.rank, hdr_rec1->base_rec.id,
"RANKS_TOTAL_MPITIME_VARIANCE", hdr_rec1->apmpi_f_variance_total_mpitime,
"", "", "");
}
else if (!hdr_rec1)
{
printf("+ ");
DARSHAN_U_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
hdr_rec2->base_rec.rank, hdr_rec2->base_rec.id,
"appid", hdr_rec2->appid, "", "", "");
printf("+ ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
hdr_rec2->base_rec.rank, hdr_rec2->base_rec.id,
"RANKS_TOTAL_MPITIME_VARIANCE", hdr_rec2->apmpi_f_variance_total_mpitime,
"", "", "");
}
else
{
if (hdr_rec1->appid != hdr_rec2->appid)
{
printf("- ");
DARSHAN_U_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
hdr_rec1->base_rec.rank, hdr_rec1->base_rec.id,
"application_id", hdr_rec1->appid, "", "", "");
printf("+ ");
DARSHAN_U_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
hdr_rec2->base_rec.rank, hdr_rec2->base_rec.id,
"application_id", hdr_rec2->appid, "", "", "");
}
if (hdr_rec1->apmpi_f_variance_total_mpitime != hdr_rec2->apmpi_f_variance_total_mpitime)
{
printf("- ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
hdr_rec1->base_rec.rank, hdr_rec1->base_rec.id,
"RANKS_TOTAL_MPITIME_VARIANCE", hdr_rec1->apmpi_f_variance_total_mpitime,
"", "", "");
printf("+ ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
hdr_rec2->base_rec.rank, hdr_rec2->base_rec.id,
"RANKS_TOTAL_MPITIME_VARIANCE", hdr_rec2->apmpi_f_variance_total_mpitime,
"", "", "");
}
}
}
else
{
int i;
for(i = 0; i < APMPI_NUM_INDICES; i++)
{
if (!prf_rec2)
{
printf("- ");
DARSHAN_U_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec1->base_rec.rank, prf_rec1->base_rec.id,
apmpi_counter_names[i], prf_rec1->counters[i],
"", "", "");
}
else if (!prf_rec1)
{
printf("+ ");
DARSHAN_U_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec2->base_rec.rank, prf_rec2->base_rec.id,
apmpi_counter_names[i], prf_rec2->counters[i],
"", "", "");
}
else if (prf_rec1->counters[i] != prf_rec2->counters[i])
{
printf("- ");
DARSHAN_U_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec1->base_rec.rank, prf_rec1->base_rec.id,
apmpi_counter_names[i], prf_rec1->counters[i],
"", "", "");
printf("+ ");
DARSHAN_U_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec2->base_rec.rank, prf_rec2->base_rec.id,
apmpi_counter_names[i], prf_rec2->counters[i],
"", "", "");
}
}
for(i = 0; i < APMPI_F_NUM_INDICES; i++)
{
if (!prf_rec2)
{
printf("- ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec1->base_rec.rank, prf_rec1->base_rec.id,
apmpi_f_mpiop_totaltime_counter_names[i], prf_rec1->fcounters[i],
"", "", "");
}
else if (!prf_rec1)
{
printf("+ ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec2->base_rec.rank, prf_rec2->base_rec.id,
apmpi_f_mpiop_totaltime_counter_names[i], prf_rec2->fcounters[i],
"", "", "");
}
else if (prf_rec1->counters[i] != prf_rec2->counters[i])
{
printf("- ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec1->base_rec.rank, prf_rec1->base_rec.id,
apmpi_f_mpiop_totaltime_counter_names[i], prf_rec1->fcounters[i],
"", "", "");
printf("+ ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec2->base_rec.rank, prf_rec2->base_rec.id,
apmpi_f_mpiop_totaltime_counter_names[i], prf_rec2->fcounters[i],
"", "", "");
}
}
for(i = 0; i < APMPI_F_SYNC_NUM_INDICES; i++)
{
if (!prf_rec2)
{
printf("- ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec1->base_rec.rank, prf_rec1->base_rec.id,
apmpi_f_mpiop_totalsync_counter_names[i], prf_rec1->fsynccounters[i],
"", "", "");
}
else if (!prf_rec1)
{
printf("+ ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec2->base_rec.rank, prf_rec2->base_rec.id,
apmpi_f_mpiop_totalsync_counter_names[i], prf_rec2->fsynccounters[i],
"", "", "");
}
else if (prf_rec1->fsynccounters[i] != prf_rec2->fsynccounters[i])
{
printf("- ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec1->base_rec.rank, prf_rec1->base_rec.id,
apmpi_f_mpiop_totalsync_counter_names[i], prf_rec1->fsynccounters[i],
"", "", "");
printf("+ ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec2->base_rec.rank, prf_rec2->base_rec.id,
apmpi_f_mpiop_totalsync_counter_names[i], prf_rec2->fsynccounters[i],
"", "", "");
}
}
for(i = 0; i < APMPI_F_GLOBAL_NUM_INDICES; i++)
{
if (!prf_rec2)
{
printf("- ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec1->base_rec.rank, prf_rec1->base_rec.id,
apmpi_f_mpi_global_counter_names[i], prf_rec1->fglobalcounters[i],
"", "", "");
}
else if (!prf_rec1)
{
printf("+ ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec2->base_rec.rank, prf_rec2->base_rec.id,
apmpi_f_mpi_global_counter_names[i], prf_rec2->fglobalcounters[i],
"", "", "");
}
else if (prf_rec1->fglobalcounters[i] != prf_rec2->fglobalcounters[i])
{
printf("- ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec1->base_rec.rank, prf_rec1->base_rec.id,
apmpi_f_mpi_global_counter_names[i], prf_rec1->fglobalcounters[i],
"", "", "");
printf("+ ");
DARSHAN_F_COUNTER_PRINT(darshan_module_names[APMPI_MOD],
prf_rec2->base_rec.rank, prf_rec2->base_rec.id,
apmpi_f_mpi_global_counter_names[i], prf_rec2->fglobalcounters[i],
"", "", "");
}
}
}
return;
......
......@@ -116,7 +116,7 @@ static int darshan_log_get_apxc_rec(darshan_fd fd, void** buf_p)
DARSHAN_BSWAP32(&(hdr_rec->ngroups));
DARSHAN_BSWAP32(&(hdr_rec->memory_mode));
DARSHAN_BSWAP32(&(hdr_rec->cluster_mode));
DARSHAN_BSWAP32(&(hdr_rec->appid));
DARSHAN_BSWAP64(&(hdr_rec->appid));
}
else
{
......@@ -205,7 +205,7 @@ static void darshan_log_print_apxc_rec(void *rec, char *file_name,