Commit 7e7de38f authored by Xin Wang's avatar Xin Wang

merge CODES master

parents 3c8a8990 e7c122ef
......@@ -156,7 +156,7 @@ struct codes_workload_op
*/
/* what type of operation this is */
enum codes_workload_op_type op_type;
int op_type;
/* currently only used by network workloads */
double start_time;
double end_time;
......@@ -198,7 +198,7 @@ struct codes_workload_op
int16_t data_type; /* MPI data type to be matched with the recv */
int count; /* number of elements to be received */
int tag; /* tag of the message */
int32_t req_id;
int req_id;
} send;
struct {
/* TODO: not sure why source rank is here */
......@@ -208,7 +208,7 @@ struct codes_workload_op
int16_t data_type; /* MPI data type to be matched with the send */
int count; /* number of elements to be sent */
int tag; /* tag of the message */
int32_t req_id;
int req_id;
} recv;
/* TODO: non-stub for other collectives */
struct {
......@@ -216,14 +216,14 @@ struct codes_workload_op
} collective;
struct {
int count;
int32_t* req_ids;
int* req_ids;
} waits;
struct {
int32_t req_id;
int req_id;
} wait;
struct
{
int32_t req_id;
int req_id;
}
free;
}u;
......
......@@ -3,7 +3,7 @@ machines.
0 - Checkout, build, and install the trunk version of ROSS
(https://github.com/carothersc/ROSS). At the time of
release (0.5.2), ROSS's latest commit hash was d3bdc07, so this revision is
release (0.6.0), ROSS's latest commit hash was 10d7a06b2d, so this revision is
"safe" in the unlikely case incompatible changes come along in the future. If
working from the CODES master branches, use the ROSS master branch.
......
0.6.0 (July 03, 2017)
general:
========
C++ models can now be built and integrated with CODES. The new dragonfly model
has been implemented in C++.
CODES can now replay collective operations by using CoRTex -- a library for
translating collectives to point to point operations. For details see:
https://xgitlab.cels.anl.gov/codes/codes/wikis/codes-cortex-workload
CODES wiki with details on model development, networking, MPI simulation and
more has been added at:
https://xgitlab.cels.anl.gov/codes/codes/wikis/home
Test suite has been extended -- tests for DUMPI trace replay have been added.
Unused variable warnings have been fixed.
Compatible with the most recent ROSS version that has visualization related
changes.
networks:
==========
dragonfly network model based on Cray XC topology has been added. The model can
use the network configurations of Theta and Edison systems. Custom network
configurations can be generated using C scripts. For details see:
https://xgitlab.cels.anl.gov/codes/codes/wikis/codes-dragonfly
fat tree network model with support for adaptive and static routing has been
added. The model can support both full and pruned fat tree configurations. For
details, refer to the wiki:
https://xgitlab.cels.anl.gov/codes/codes/wikis/codes-fattree
memory consumption has been reduced by doing lazy allocation of hash memory.
MPI trace replay:
==============
MPI rendezvous protocol can now be replayed in addition to the eager protocol.
The transition point for switching between the two protocols is configurable.
Background network communication using uniform random workload can now be
generated. The traffic generation gets automatically shut off when the main workload
finishes.
Collectives can now be translated into point to point using the CoRTex library.
Performance of MPI_AllReduce is reported when debug_cols option is enabled.
Aggregate and average performance of different message size is reported when
message tracking is enabled (this option is for debugging, works in sequential
mode only).
Work in progress:
=============
Integration of the express mesh model and multi-rail/multi-plane fat tree
model.
ROSS-vis instrumentation-- recording model level statistics in binary format
and translating them into text.
0.5.2 (July 13, 2016)
Summer of CODES was another huge success! This release was created during the
......
......@@ -15,6 +15,7 @@
#include "codes/codes-workload.h"
#include "codes/quickhash.h"
#include "codes/codes-jobmap.h"
#include "codes/jenkins-hash.h"
#include "codes/model-net.h"
#if ENABLE_CORTEX
......@@ -108,6 +109,12 @@ static inline double time_to_us_lf(dumpi_clock t){
static inline double time_to_ns_lf(dumpi_clock t){
return (double) t.sec * 1e9 + (double) t.nsec;
}
static int32_t get_unique_req_id(int32_t request_id)
{
uint32_t pc = 0, pb = 0;
bj_hashlittle2(&request_id, sizeof(int32_t), &pc, &pb);
return pc;
}
/*static inline double time_to_s_lf(dumpi_clock t){
return (double) t.sec + (double) t.nsec / 1e9;
}*/
......@@ -340,10 +347,10 @@ int handleDUMPIWaitsome(const dumpi_waitsome *prm, uint16_t thread,
wrkld_per_rank.op_type = CODES_WK_WAITSOME;
wrkld_per_rank.u.waits.count = prm->count;
wrkld_per_rank.u.waits.req_ids = (int32_t*)malloc(prm->count * sizeof(int32_t));
wrkld_per_rank.u.waits.req_ids = (int*)malloc(prm->count * sizeof(int));
for( i = 0; i < prm->count; i++ )
wrkld_per_rank.u.waits.req_ids[i] = (int32_t)prm->requests[i];
wrkld_per_rank.u.waits.req_ids[i] = prm->requests[i];
update_times_and_insert(&wrkld_per_rank, wall, myctx);
return 0;
......@@ -365,10 +372,10 @@ int handleDUMPIWaitany(const dumpi_waitany *prm, uint16_t thread,
wrkld_per_rank.op_type = CODES_WK_WAITANY;
wrkld_per_rank.u.waits.count = prm->count;
wrkld_per_rank.u.waits.req_ids = (int32_t*)malloc(prm->count * sizeof(int32_t));
wrkld_per_rank.u.waits.req_ids = (int*)malloc(prm->count * sizeof(int));
for( i = 0; i < prm->count; i++ )
wrkld_per_rank.u.waits.req_ids[i] = (int32_t)prm->requests[i];
wrkld_per_rank.u.waits.req_ids[i] = prm->requests[i];
update_times_and_insert(&wrkld_per_rank, wall, myctx);
return 0;
......@@ -391,7 +398,7 @@ int handleDUMPIWaitall(const dumpi_waitall *prm, uint16_t thread,
wrkld_per_rank.op_type = CODES_WK_WAITALL;
wrkld_per_rank.u.waits.count = prm->count;
wrkld_per_rank.u.waits.req_ids = (int32_t*)malloc(prm->count * sizeof(int32_t));
wrkld_per_rank.u.waits.req_ids = (int*)malloc(prm->count * sizeof(int));
for( i = 0; i < prm->count; i++ )
wrkld_per_rank.u.waits.req_ids[i] = prm->requests[i];
......
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