Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions apcxi/Makefile.darshan
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#
# AutoPerf Make rules for Darshan
#
DARSHAN_STATIC_MOD_OBJS += lib/darshan-apcxi.o
DARSHAN_DYNAMIC_MOD_OBJS += lib/darshan-apcxi.po

VPATH += :$(srcdir)/../modules/autoperf/apcxi
CFLAGS += \
-DDARSHAN_USE_APCXI \
-I$(srcdir)/../modules/autoperf/apcxi

CFLAGS_SHARED += \
-DDARSHAN_USE_APCXI \
-I$(srcdir)/../modules/autoperf/apcxi

lib/darshan-apcxi.o: lib/darshan-apcxi.c lib/darshan-apcxi-utils.h darshan.h darshan-common.h $(DARSHAN_LOG_FORMAT) darshan-apcxi-log-format.h | lib
$(CC) $(CFLAGS) -c $< -o $@

lib/darshan-apcxi.po: lib/darshan-apcxi.c lib/darshan-apcxi-utils.h darshan.h darshan-dynamic.h darshan-common.h $(DARSHAN_LOG_FORMAT) darshan-apcxi-log-format.h | lib
$(CC) $(CFLAGS_SHARED) -c $< -o $@
129 changes: 129 additions & 0 deletions apcxi/darshan-apcxi-log-format.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
/*
* Copyright (C) 2017 University of Chicago.
* See COPYRIGHT notice in top-level directory.
*
*/

#ifndef __APCXI_LOG_FORMAT_H
#define __APCXI_LOG_FORMAT_H

/* current AutoPerf Cray XC log format version */
#define APCXI_VER 1

#define APCXI_MAGIC ('A'*0x100000000000000+\
'U'*0x1000000000000+\
'T'*0x10000000000+\
'O'*0x100000000+\
'P'*0x1000000+\
'E'*0x10000+\
'R'*0x100+\
'F'*0x1)

#define APCXI_PERF_COUNTERS \
/* PAPI counters */\
X(CQ_CQ_OXE_NUM_STALLS) \
X(CQ_CQ_OXE_NUM_FLITS) \
X(CQ_CYCLES_BLOCKED_0) \
X(CQ_CYCLES_BLOCKED_1) \
X(CQ_CYCLES_BLOCKED_2) \
X(CQ_CYCLES_BLOCKED_3) \
X(HNI_RX_PAUSED_0) \
X(HNI_RX_PAUSED_1) \
X(HNI_RX_PAUSED_2) \
X(HNI_RX_PAUSED_3) \
X(HNI_RX_PAUSED_4) \
X(HNI_RX_PAUSED_5) \
X(HNI_RX_PAUSED_6) \
X(HNI_RX_PAUSED_7) \
X(HNI_TX_PAUSED_0) \
X(HNI_TX_PAUSED_1) \
X(HNI_TX_PAUSED_2) \
X(HNI_TX_PAUSED_3) \
X(HNI_TX_PAUSED_4) \
X(HNI_TX_PAUSED_5) \
X(HNI_TX_PAUSED_6) \
X(HNI_TX_PAUSED_7) \
X(HNI_PKTS_SENT_BY_TC_0) \
X(HNI_PKTS_SENT_BY_TC_1) \
X(HNI_PKTS_SENT_BY_TC_2) \
X(HNI_PKTS_SENT_BY_TC_3) \
X(HNI_PKTS_SENT_BY_TC_4) \
X(HNI_PKTS_SENT_BY_TC_5) \
X(HNI_PKTS_SENT_BY_TC_6) \
X(HNI_PKTS_SENT_BY_TC_7) \
X(HNI_PKTS_RECV_BY_TC_0) \
X(HNI_PKTS_RECV_BY_TC_1) \
X(HNI_PKTS_RECV_BY_TC_2) \
X(HNI_PKTS_RECV_BY_TC_3) \
X(HNI_PKTS_RECV_BY_TC_4) \
X(HNI_PKTS_RECV_BY_TC_5) \
X(HNI_PKTS_RECV_BY_TC_6) \
X(HNI_PKTS_RECV_BY_TC_7) \
X(HNI_TX_OK_27) \
X(HNI_TX_OK_35) \
X(HNI_TX_OK_36_TO_63) \
X(HNI_TX_OK_64) \
X(HNI_TX_OK_65_TO_127) \
X(HNI_TX_OK_128_TO_255) \
X(HNI_TX_OK_256_TO_511) \
X(HNI_TX_OK_512_TO_1023) \
X(HNI_TX_OK_1024_TO_2047) \
X(HNI_TX_OK_2048_TO_4095) \
X(HNI_TX_OK_4096_TO_8191) \
X(HNI_TX_OK_8192_TO_MAX) \
/* end of counters */\
Z(APCXI_NUM_INDICES)


#define X(a) a,
#define Z(a) a
/* integer counters for the "APCXI" example module */
enum darshan_apcxi_perf_indices
{
APCXI_PERF_COUNTERS
};

#undef Z
#undef X

/* the darshan_apcxi_router_record structure encompasses the data/counters
* which would actually be logged to file by Darshan for the AP HPE Slingshot
* module. This example implementation logs the following data for each
* record:
* - a darshan_base_record structure, which contains the record id & rank
* - the number of the performance counters (see above) monitored is static
* - the number of nic devices on a compute node for which the counters are
* - recorded is not static and is dynamic
* - in order for the record to be contiguous the counters is declared as
* - counters[1][NUM_COUNTERS], the actual record size is calculated based on
* - number of nics
*/
struct darshan_apcxi_perf_record
{
struct darshan_base_record base_rec;
int64_t group;
int64_t chassis;
int64_t slot;
int64_t blade;
int64_t node;
int64_t num_nics;
uint64_t counters[1][APCXI_NUM_INDICES];
};

struct darshan_apcxi_header_record
{
struct darshan_base_record base_rec;
int64_t magic;
int64_t nblades;
int64_t nchassis;
int64_t nslots;
int64_t ngroups;
uint64_t appid;
};

/*
* helper function to calculate the size of a APCXI record
*/
#define APCXI_PERF_RECORD_SIZE( num_nics ) (sizeof(struct darshan_apcxi_perf_record) + (sizeof(uint64_t) * APCXI_NUM_INDICES * (num_nics - 1)))

#endif /* __APCXI_LOG_FORMAT_H */
193 changes: 193 additions & 0 deletions apcxi/lib/crusher_nodelist.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
char crusher_nodelist[192][14] = {
"x2601c0s0b0n0",
"x2601c0s0b1n0",
"x2601c0s1b0n0",
"x2601c0s1b1n0",
"x2601c0s2b0n0",
"x2601c0s2b1n0",
"x2601c0s3b0n0",
"x2601c0s3b1n0",
"x2601c0s4b0n0",
"x2601c0s4b1n0",
"x2601c0s5b0n0",
"x2601c0s5b1n0",
"x2601c0s6b0n0",
"x2601c0s6b1n0",
"x2601c0s7b0n0",
"x2601c0s7b1n0",
"x2601c1s0b0n0",
"x2601c1s0b1n0",
"x2601c1s1b0n0",
"x2601c1s1b1n0",
"x2601c1s2b0n0",
"x2601c1s2b1n0",
"x2601c1s3b0n0",
"x2601c1s3b1n0",
"x2601c1s4b0n0",
"x2601c1s4b1n0",
"x2601c1s5b0n0",
"x2601c1s5b1n0",
"x2601c1s6b0n0",
"x2601c1s6b1n0",
"x2601c1s7b0n0",
"x2601c1s7b1n0",
"x2601c2s0b0n0",
"x2601c2s0b1n0",
"x2601c2s1b0n0",
"x2601c2s1b1n0",
"x2601c2s2b0n0",
"x2601c2s2b1n0",
"x2601c2s3b0n0",
"x2601c2s3b1n0",
"x2601c2s4b0n0",
"x2601c2s4b1n0",
"x2601c2s5b0n0",
"x2601c2s5b1n0",
"x2601c2s6b0n0",
"x2601c2s6b1n0",
"x2601c2s7b0n0",
"x2601c2s7b1n0",
"x2601c3s0b0n0",
"x2601c3s0b1n0",
"x2601c3s1b0n0",
"x2601c3s1b1n0",
"x2601c3s2b0n0",
"x2601c3s2b1n0",
"x2601c3s3b0n0",
"x2601c3s3b1n0",
"x2601c3s4b0n0",
"x2601c3s4b1n0",
"x2601c3s5b0n0",
"x2601c3s5b1n0",
"x2601c3s6b0n0",
"x2601c3s6b1n0",
"x2601c3s7b0n0",
"x2601c3s7b1n0",
"x2601c4s0b0n0",
"x2601c4s0b1n0",
"x2601c4s1b0n0",
"x2601c4s1b1n0",
"x2601c4s2b0n0",
"x2601c4s2b1n0",
"x2601c4s3b0n0",
"x2601c4s3b1n0",
"x2601c4s4b0n0",
"x2601c4s4b1n0",
"x2601c4s5b0n0",
"x2601c4s5b1n0",
"x2601c4s6b0n0",
"x2601c4s6b1n0",
"x2601c4s7b0n0",
"x2601c4s7b1n0",
"x2601c5s0b0n0",
"x2601c5s0b1n0",
"x2601c5s1b0n0",
"x2601c5s1b1n0",
"x2601c5s2b0n0",
"x2601c5s2b1n0",
"x2601c5s3b0n0",
"x2601c5s3b1n0",
"x2601c5s4b0n0",
"x2601c5s4b1n0",
"x2601c5s5b0n0",
"x2601c5s5b1n0",
"x2601c5s6b0n0",
"x2601c5s6b1n0",
"x2601c5s7b0n0",
"x2601c5s7b1n0",
"x2601c6s0b0n0",
"x2601c6s0b1n0",
"x2601c6s1b0n0",
"x2601c6s1b1n0",
"x2601c6s2b0n0",
"x2601c6s2b1n0",
"x2601c6s3b0n0",
"x2601c6s3b1n0",
"x2601c6s4b0n0",
"x2601c6s4b1n0",
"x2601c6s5b0n0",
"x2601c6s5b1n0",
"x2601c6s6b0n0",
"x2601c6s6b1n0",
"x2601c6s7b0n0",
"x2601c6s7b1n0",
"x2601c7s0b0n0",
"x2601c7s0b1n0",
"x2601c7s1b0n0",
"x2601c7s1b1n0",
"x2601c7s2b0n0",
"x2601c7s2b1n0",
"x2601c7s3b0n0",
"x2601c7s3b1n0",
"x2601c7s4b0n0",
"x2601c7s4b1n0",
"x2601c7s5b0n0",
"x2601c7s5b1n0",
"x2601c7s6b0n0",
"x2601c7s6b1n0",
"x2601c7s7b0n0",
"x2601c7s7b1n0",
"x2602c0s0b0n0",
"x2602c0s0b1n0",
"x2602c0s1b0n0",
"x2602c0s1b1n0",
"x2602c0s2b0n0",
"x2602c0s2b1n0",
"x2602c0s3b0n0",
"x2602c0s3b1n0",
"x2602c0s4b0n0",
"x2602c0s4b1n0",
"x2602c0s5b0n0",
"x2602c0s5b1n0",
"x2602c0s6b0n0",
"x2602c0s6b1n0",
"x2602c0s7b0n0",
"x2602c0s7b1n0",
"x2602c1s0b0n0",
"x2602c1s0b1n0",
"x2602c1s1b0n0",
"x2602c1s1b1n0",
"x2602c1s2b0n0",
"x2602c1s2b1n0",
"x2602c1s3b0n0",
"x2602c1s3b1n0",
"x2602c1s4b0n0",
"x2602c1s4b1n0",
"x2602c1s5b0n0",
"x2602c1s5b1n0",
"x2602c1s6b0n0",
"x2602c1s6b1n0",
"x2602c1s7b0n0",
"x2602c1s7b1n0",
"x2602c2s0b0n0",
"x2602c2s0b1n0",
"x2602c2s1b0n0",
"x2602c2s1b1n0",
"x2602c2s2b0n0",
"x2602c2s2b1n0",
"x2602c2s3b0n0",
"x2602c2s3b1n0",
"x2602c2s4b0n0",
"x2602c2s4b1n0",
"x2602c2s5b0n0",
"x2602c2s5b1n0",
"x2602c2s6b0n0",
"x2602c2s6b1n0",
"x2602c2s7b0n0",
"x2602c2s7b1n0",
"x2602c3s0b0n0",
"x2602c3s0b1n0",
"x2602c3s1b0n0",
"x2602c3s1b1n0",
"x2602c3s2b0n0",
"x2602c3s2b1n0",
"x2602c3s3b0n0",
"x2602c3s3b1n0",
"x2602c3s4b0n0",
"x2602c3s4b1n0",
"x2602c3s5b0n0",
"x2602c3s5b1n0",
"x2602c3s6b0n0",
"x2602c3s6b1n0",
"x2602c3s7b0n0",
"x2602c3s7b1n0"};
Loading