Skip to content

Commit

Permalink
Merge pull request #11 from jdinan/pr/update-143
Browse files Browse the repository at this point in the history
Merge SOS v1.4.3 updates into tests-sos
  • Loading branch information
jdinan committed Feb 13, 2019
2 parents 06d9060 + d21d386 commit 1a87d5e
Show file tree
Hide file tree
Showing 37 changed files with 1,345 additions and 129 deletions.
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

dnl Init Autoconf/Automake/Libtool

AC_INIT([Sandia OpenSHMEM Test Suite], [1.4.2], [https://github.com/Sandia-OpenSHMEM/SOS])
AC_INIT([Sandia OpenSHMEM Test Suite], [1.4.3], [https://github.com/Sandia-OpenSHMEM/SOS])
AC_PREREQ([2.60])
AC_CONFIG_AUX_DIR([config])
AC_CONFIG_MACRO_DIR([config])
Expand Down
6 changes: 3 additions & 3 deletions test/apps/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,10 @@ endif

if EXTERNAL_TESTS
bin_PROGRAMS = $(check_PROGRAMS)
AM_CPPFLAGS =
AM_CPPFLAGS = -I$(top_srcdir)/test/include
LDADD =
else
AM_CPPFLAGS = -I$(top_builddir)/mpp
AM_CPPFLAGS = -I$(top_builddir)/mpp -I$(top_srcdir)/mpp -I$(top_srcdir)/test/include
LDADD = $(top_builddir)/src/libsma.la
endif

Expand All @@ -54,5 +54,5 @@ LDADD += $(top_builddir)/pmi-simple/libpmi_simple.la
endif

mandelbrot_LDFLAGS = $(AM_LDFLAGS) $(PTHREAD_LIBS)
mandelbrot_CFLAGS = -I$(top_srcdir)/test/include $(PTHREAD_CFLAGS)
mandelbrot_CFLAGS = $(PTHREAD_CFLAGS)
mandelbrot_LDADD = $(LDADD) $(PTHREAD_CFLAGS)
8 changes: 7 additions & 1 deletion test/performance/shmem_perf_suite/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@ check_PROGRAMS += \
shmem_latency_get_ctx_perf_nb
endif

if SHMEMX_TESTS
check_PROGRAMS += \
shmem_bw_nb_atomics_perf \
shmem_bibw_nb_atomics_perf
endif

noinst_HEADERS = \
common.h \
latency_common.h \
Expand Down Expand Up @@ -62,7 +68,7 @@ bin_PROGRAMS = $(check_PROGRAMS)
AM_CPPFLAGS =
LDADD =
else
AM_CPPFLAGS = -I$(top_builddir)/mpp
AM_CPPFLAGS = -I$(top_builddir)/mpp -I$(top_srcdir)/mpp
LDADD = $(top_builddir)/src/libsma.la
endif

Expand Down
36 changes: 24 additions & 12 deletions test/performance/shmem_perf_suite/bw_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -287,21 +287,27 @@ extern void bi_dir_bw(int len, perf_metrics_t *metric_info);
static inline
void bi_dir_bw_test_and_output(perf_metrics_t * const metric_info) {
int partner_pe = partner_node(metric_info);
unsigned long int len;

if(metric_info->my_node == 0) {
if (metric_info->opstyle == STYLE_ATOMIC)
if (metric_info->opstyle == STYLE_ATOMIC) {
metric_info->max_len = sizeof(unsigned long long);
print_atomic_header(metric_info);
}
else
print_bw_header(metric_info);
}

for (len = metric_info->start_len; len <= metric_info->max_len;
len *= metric_info->size_inc) {
if (metric_info->opstyle == STYLE_ATOMIC) {
bi_dir_bw(0 /* ignored */, metric_info);
} else {
unsigned long int len = 0;
for (len = metric_info->start_len; len <= metric_info->max_len;
len *= metric_info->size_inc) {

large_message_metric_chg(metric_info, len);
large_message_metric_chg(metric_info, len);

bi_dir_bw(len, metric_info);
bi_dir_bw(len, metric_info);
}
}

shmem_barrier_all();
Expand Down Expand Up @@ -330,21 +336,27 @@ extern void uni_dir_bw(int len, perf_metrics_t *metric_info);
static inline
void uni_dir_bw_test_and_output(perf_metrics_t * const metric_info) {
int partner_pe = partner_node(metric_info);
unsigned long int len = 0;

if(metric_info->my_node == 0) {
if (metric_info->opstyle == STYLE_ATOMIC)
if (metric_info->opstyle == STYLE_ATOMIC) {
metric_info->max_len = sizeof(unsigned long long);
print_atomic_header(metric_info);
}
else
print_bw_header(metric_info);
}

for (len = metric_info->start_len; len <= metric_info->max_len;
len *= metric_info->size_inc) {
if (metric_info->opstyle == STYLE_ATOMIC) {
uni_dir_bw(0 /* ignored */, metric_info);
} else {
unsigned long int len = 0;
for (len = metric_info->start_len; len <= metric_info->max_len;
len *= metric_info->size_inc) {

large_message_metric_chg(metric_info, len);
large_message_metric_chg(metric_info, len);

uni_dir_bw(len, metric_info);
uni_dir_bw(len, metric_info);
}
}

shmem_barrier_all();
Expand Down
20 changes: 13 additions & 7 deletions test/performance/shmem_perf_suite/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -111,23 +111,29 @@ typedef enum {
} bw_units;

typedef enum {
OP_SET = 0,
OP_INC,
OP_ADD,
OP_AND,
OP_OR,
OP_XOR,
OP_FETCH,
OP_SET,
OP_CSWAP,
OP_SWAP,
OP_FINC,
OP_INC,
OP_FADD,
OP_ADD,
OP_FAND,
OP_AND,
OP_FOR,
OP_OR,
OP_FXOR,
OP_XOR,
SIZE_OF_OP
LAST_OP
} atomic_op_type;

#define FIRST_FETCH_OP OP_FETCH

const char *atomic_op_name[] = { "set", "inc", "add", "and",
"or", "xor",
"fetch", "cswap", "swap", "finc",
"fadd", "fand", "for", "fxor" };

typedef struct perf_metrics {
/* common parameters */
Expand Down
46 changes: 13 additions & 33 deletions test/performance/shmem_perf_suite/shmem_bibw_atomics_perf.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,12 @@

#include <bw_common.h>

#define bi_bw(len, metric_info, snode, NAME, TYPE, op) \
#define bi_bw(metric_info, NAME, TYPE, op) \
do { \
double start = 0.0, end = 0.0; \
unsigned long int i = 0, j = 0, num_itr = metric_info->trials + metric_info->warmup; \
int dest = partner_node(metric_info); \
int snode = streaming_node(metric_info); \
int dest = partner_node(metric_info); \
shmem_barrier_all(); \
\
switch(op) { \
Expand Down Expand Up @@ -273,51 +274,30 @@
break; \
} \
if(snode) \
calc_and_print_results(end, start, len, metric_info); \
calc_and_print_results(end, start, metric_info->start_len, metric_info); \
} while(0)


#define NUM_INC 100

static const char * atomic_op_names [] = { "fetch", "set", "cswap", "swap", "finc", "inc",
"fadd", "add", "fand", "and", "for", "or",
"fxor", "xor" };


static inline void bw_set_metric_info_len(perf_metrics_t * const metric_info)
{
unsigned int atomic_sizes[ATOMICS_N_DTs] = {sizeof(unsigned int), sizeof(unsigned long),
sizeof(unsigned long long)};
metric_info->b_type = BI_DIR;
int snode = streaming_node(metric_info);
atomic_op_type op_type = OP_FETCH;
atomic_op_type op_type;

for(op_type = OP_FETCH; op_type < SIZE_OF_OP; op_type++) {
for (op_type = 0; op_type < LAST_OP; op_type++) {
if(metric_info->my_node == 0) {
printf("\nshmem_%s\n", atomic_op_names[op_type]);
printf("\nshmem_%s\n", atomic_op_name[op_type]);
printf("-----------\n");
}
metric_info->start_len = atomic_sizes[0];
metric_info->max_len = atomic_sizes[0];
metric_info->size_inc = NUM_INC;

metric_info->start_len = sizeof(unsigned int);
shmem_barrier_all();
bi_bw(metric_info, uint, unsigned int, op_type);

bi_bw(atomic_sizes[0], metric_info, snode, uint, unsigned int, op_type);

metric_info->start_len = atomic_sizes[1];
metric_info->max_len = atomic_sizes[1];

metric_info->start_len = sizeof(unsigned long);
shmem_barrier_all();
bi_bw(metric_info, ulong, unsigned long, op_type);

bi_bw(atomic_sizes[1], metric_info, snode, ulong, unsigned long, op_type);

metric_info->start_len = atomic_sizes[2];
metric_info->max_len = atomic_sizes[2];

metric_info->start_len = sizeof(unsigned long long);
shmem_barrier_all();

bi_bw(atomic_sizes[2], metric_info, snode, ulonglong, unsigned long long, op_type);
bi_bw(metric_info, ulonglong, unsigned long long, op_type);
}
}

Expand Down
Loading

0 comments on commit 1a87d5e

Please sign in to comment.