GitLab maintenance scheduled for Today, 2019-12-05, from 17:00 to 18:00 CT - Services will be unavailable during this time.

Commit ceaebc7a authored by Xin Wang's avatar Xin Wang

update conceptual implementation, add few examples

parent 46cdfffc
......@@ -71,6 +71,9 @@ if USE_CONC
src_libcodes_la_SOURCES += src/workload/methods/codes-conc-online-comm-wrkld.C
AM_CPPFLAGS += ${CONCEPTUAL_CFLAGS} -DUSE_CONC=1
LDADD += ${CONCEPTUAL_LIBS}
src_libcodes_la_SOURCES += src/workload/conceputal-skeleton-apps/conc-bisect.c
src_libcodes_la_SOURCES += src/workload/conceputal-skeleton-apps/conc-cosmoflow.c
src_libcodes_la_SOURCES += src/workload/conceputal-skeleton-apps/conc-hotpotato.c
src_libcodes_la_SOURCES += src/workload/conceputal-skeleton-apps/conc-latencyall.c
src_libcodes_la_SOURCES += src/workload/conceputal-skeleton-apps/conc-latency.c
endif
......
This diff is collapsed.
###################################################
# Measure random bisection-bandwidth patterns #
# By Scott Pakin <pakin@lanl.gov> #
# #
# Inspired by Hoefler, Schneider, and Lumsdaine's #
# "Multistage Switches are not Crossbars" paper #
###################################################
Require language version "1.5".
nummsgs is "Number of messages per trial" and comes from "--nummsgs" or "-n" with default 100.
wups is "Number of warmup messages" and comes from "--wups" or "-w" with default 3.
msgsize is "Message size in bytes" and comes from "--bytes" or "-b" with default 1M.
numtrials is "Number of bisection patterns" and comes from "--trials" or "-t" with default 5000.
rounding is "Round measurements to the nearest N" and comes from "--round" or "-r" with default 5.
For each trial in {1, ..., numtrials} {
task 0 is assigned to processor 0 then
task 0 outputs "Testing random bisection pattern " and trial and "/" and numtrials then
all tasks are assigned to a random processor then
tasks src such that src is even send wups msgsize-byte messages to task src+1 then
all tasks synchronize then
all tasks reset their counters then
tasks src such that src is even send nummsgs msgsize-byte messages to task src+1 then
all tasks synchronize then
all tasks log a histogram of rounding*round(total_bytes*1E6/(elapsed_usecs*1M)/rounding) as "Bandwidth (MiB/s)"
}
This diff is collapsed.
# Measure the performance of MPI_Allgather()
# By Scott Pakin <pakin@lanl.gov>
#
# N.B. Requires the c_mpi backend.
Require language version "1.5".
# Parse the command line.
numwords is "Message size (words)" and comes from "--msgsize" or "-s" with default 28825K.
reps is "Number of repetitions" and comes from "--reps" or "-r" with default 100.
computetime is "Computation time (ms)" and comes from "--compute" or "-c" with default 129.
# Allocate a send buffer and a receive buffer.
Task 0 multicasts a numwords*num_tasks word message from buffer 0 to all other tasks.
Task 0 multicasts a numwords*num_tasks word message from buffer 1 to all other tasks.
# Measure the performance of MPI_Allreduce().
Task 0 resets its counters then
for reps repetitions {
all tasks COMPUTES FOR computetime MILLISECONDS then
all tasks backend execute "
MPI_Allreduce([MESSAGE BUFFER 0], [MESSAGE BUFFER 1], (int)" and numwords and ",
MPI_INT, MPI_SUM, MPI_COMM_WORLD);
" then
all tasks backend execute "
MPI_Allreduce([MESSAGE BUFFER 0], [MESSAGE BUFFER 1], (int)" and numwords and ",
MPI_INT, MPI_SUM, MPI_COMM_WORLD);
"
} then
task 0 logs elapsed_usecs/1000 as "Elapse time (ms)".
This diff is collapsed.
# Virtual ring "hot potato" test
Require language version "1.5".
trials is "Number of trials to perform" and comes from "--trials" or
"-t" with default 100000.
Assert that "the hot-potato test requires at least two tasks" with num_tasks>=2.
Let len be 0 while {
for each task_count in {2, ..., num_tasks} {
task 0 outputs "Performing " and trials and " " and
task_count and "-task runs...." then
for trials repetitions plus 5 warmup repetitions and a synchronization {
task 0 resets its counters then
task 0 sends a len byte message to unsuspecting task 1 then
task (n+1) mod task_count receives a len byte message from task n such that n<task_count then
task n such that n>0 /\ n<task_count sends a len byte message to unsuspecting task (n+1) mod task_count then
task 0 logs the task_count as "# of tasks" and
the minimum of elapsed_usecs/task_count as "Latency (usecs)" and
the mean of elapsed_usecs/task_count as "Latency (usecs)" and
the variance of elapsed_usecs/task_count as "Latency (usecs)"
} then
task 0 computes aggregates
}
}
......@@ -15,10 +15,7 @@ def eliminate_logging(inLines):
inLines[idx+i] = "//"+inLines[idx+i]
elif 'ncptl_free (logfile_uuid)' in line:
for i in range(0, 12):
inLines[idx-i] = "//"+inLines[idx-i]
elif 'case 1' in line:
for i in range(5, 9):
inLines[idx+i] = "//"+inLines[idx+i]
inLines[idx-i] = "//"+inLines[idx-i]
elif 'int mpiresult' in line:
for i in range(0,30):
inLines[idx+i] = "//"+inLines[idx+i]
......
......@@ -2402,8 +2402,8 @@ void dragonfly_custom_router_final(router_state * s,
written = 0;
if(!s->router_id)
{
written = sprintf(s->output_buf, "# Format <LP ID> <Group ID> <Router ID> <Link Traffic per router port(s)>");
written += sprintf(s->output_buf + written, "# Router ports in the order: %d green links, %d black links %d global channels \n",
written = sprintf(s->output_buf2, "# Format <LP ID> <Group ID> <Router ID> <Link Traffic per router port(s)>");
written += sprintf(s->output_buf2 + written, "# Router ports in the order: %d green links, %d black links %d global channels \n",
p->num_router_cols * p->num_row_chans, p->num_router_rows * p->num_col_chans, p->num_global_channels);
}
written += sprintf(s->output_buf2 + written, "\n %llu %d %d",
......
......@@ -10,6 +10,9 @@
/* list of available benchmarks begin */
extern struct codes_conceptual_bench bisect_bench;
extern struct codes_conceptual_bench cosmoflow_bench;
extern struct codes_conceptual_bench hotpotato_bench;
extern struct codes_conceptual_bench latencyall_bench;
extern struct codes_conceptual_bench latency_bench;
/* list of available benchmarks end */
......@@ -17,6 +20,9 @@ extern struct codes_conceptual_bench latency_bench;
static struct codes_conceptual_bench const * bench_array_default[] =
{
/* default benchmarks begin */
&bisect_bench,
&cosmoflow_bench,
&hotpotato_bench,
&latencyall_bench,
&latency_bench,
/* default benchmarks end */
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/**********************************************************************
* This file was generated by coNCePTuaL on Thu Oct 4 23:46:17 2018
* This file was generated by coNCePTuaL on Mon Jan 7 23:09:59 2019
* using the c_mpi backend (C + MPI).
* Do not modify this file; modify /Users/xin/macworkspace/codes-dev/codes/scripts/conceptual_benchmarks/latency.ncptl instead.
*
......
/**********************************************************************
* This file was generated by coNCePTuaL on Thu Oct 4 23:46:17 2018
* This file was generated by coNCePTuaL on Mon Jan 7 23:10:00 2019
* using the c_mpi backend (C + MPI).
* Do not modify this file; modify /Users/xin/macworkspace/codes-dev/codes/scripts/conceptual_benchmarks/latency-all.ncptl instead.
*
......
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