Commit 47aed8d9 authored by Misbah Mubarak's avatar Misbah Mubarak
Browse files

Merging branches with master, adding model-net sampling

parents 49d4681d d5992009
......@@ -7,6 +7,10 @@
#ifndef SIMPLENET_UPD_H
#define SIMPLENET_UPD_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct sn_message sn_message;
/* types of events that will constitute triton requests */
......@@ -39,6 +43,10 @@ struct sn_message
tw_stime recv_time_saved;
};
#ifdef __cplusplus
}
#endif
#endif /* end of include guard: SIMPLENET_UPD_H */
/*
* Local variables:
......
......@@ -7,6 +7,10 @@
#ifndef SIMPLEP2P_H
#define SIMPLEP2P_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct sp_message sp_message;
enum sp_event_type
......@@ -47,6 +51,10 @@ struct sp_message
tw_stime recv_prev_idle_all_saved;
};
#ifdef __cplusplus
}
#endif
#endif /* end of include guard: SIMPLEP2P_H */
/*
......
......@@ -7,6 +7,10 @@
#ifndef TORUS_H
#define TORUS_H
#ifdef __cplusplus
extern "C" {
#endif
typedef enum nodes_event_t nodes_event_t;
typedef struct nodes_message nodes_message;
......@@ -90,6 +94,10 @@ struct nodes_message
int remote_event_size_bytes;
};
#ifdef __cplusplus
}
#endif
#endif /* end of include guard: TORUS_H */
/*
......
......@@ -14,6 +14,10 @@
#ifndef SRC_COMMON_UTIL_QUICKHASH_H
#define SRC_COMMON_UTIL_QUICKHASH_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdlib.h>
#include <stdint.h>
#include "codes/quicklist.h"
......@@ -336,6 +340,10 @@ static inline int quickhash_null32_hash(void *k, int table_size)
return(int)(*tmp & (table_size - 1));
}
#ifdef __cplusplus
}
#endif
#endif /* SRC_COMMON_UTIL_QUICKHASH_H */
/*
......
......@@ -25,6 +25,10 @@
#ifndef QUICKLIST_H
#define QUICKLIST_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdlib.h>
struct qlist_head {
......@@ -289,4 +293,8 @@ static inline struct qlist_head * qlist_find(
* vim: ts=8 sts=4 sw=4 expandtab
*/
#ifdef __cplusplus
}
#endif
#endif /* QUICKLIST_H */
......@@ -7,6 +7,10 @@
#ifndef RC_STACK_H
#define RC_STACK_H
#ifdef __cplusplus
extern "C" {
#endif
#include <ross.h>
/* A simple stack data structure that is GVT-aware for cleanup purposes. It's
......@@ -49,6 +53,10 @@ int rc_stack_count(struct rc_stack const *s);
* a NULL lp causes a delete-all */
void rc_stack_gc(tw_lp const *lp, struct rc_stack *s);
#ifdef __cplusplus
}
#endif
#endif /* end of include guard: RC-STACK_H */
/*
......
......@@ -11,6 +11,10 @@
#ifndef RESOURCE_LP_H
#define RESOURCE_LP_H
#ifdef __cplusplus
extern "C" {
#endif
#include <ross.h>
#include <stdint.h>
......@@ -89,6 +93,10 @@ void resource_lp_reserve_rc(tw_lp *sender);
void resource_lp_get_reserved_rc(tw_lp *sender);
void resource_lp_free_reserved_rc(tw_lp *sender);
#ifdef __cplusplus
}
#endif
#endif /* end of include guard: RESOURCE_LP_H */
/*
......
......@@ -14,6 +14,10 @@
#ifndef RESOURCE_H
#define RESOURCE_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
......@@ -69,6 +73,9 @@ struct resource_s {
unsigned int num_tokens;
};
#ifdef __cplusplus
}
#endif
#endif /* end of include guard: RESOURCE_H */
......
......@@ -27,17 +27,21 @@ working from the CODES master branches, use the ROSS master branch.
If using ccmake to configure, don't forget to set CMAKE_C_COMPILER and
CMAKE_CXX_COMPILER to mpicc/mpicxx
1 - If you are building codes directly from the repository, run
1 - If you are building CODES directly from the repository, run
./prepare.sh
2 - Configure codes. This can be done in the source directory or in a
2 - CODES requires pkg-config and non-ancient versions of flex/bison (i.e.
there have been problems with the Mac version). Use your favorite
package manager to obtain them.
3 - Configure CODES. This can be done in the source directory or in a
dedicated build directory if you prefer out-of-tree builds. The CC
environment variable must refer to an MPI compiler.
mkdir build
cd build
../configure --prefix=/path/to/codes-base/install CC=mpicc PKG_CONFIG_PATH=/path/to/ross/install/lib/pkgconfig
../configure --prefix=/path/to/codes/install CC=mpicc PKG_CONFIG_PATH=/path/to/ross/install/lib/pkgconfig
To enable network tracing with dumpi
(http://sst.sandia.gov/about_dumpi.html), use the option
......@@ -57,15 +61,15 @@ working from the CODES master branches, use the ROSS master branch.
<DARSHAN_PREFIX>/lib/pkgconfig to your PKG_CONFIG_PATH environment
variable before calling configure.
3 - Build and install codes-base
4 - Build and install CODES
make && make install
4 - (optional) run test programs
5 - (optional) run test programs
make tests && make check
5 - codes-base uses flex and bison (or lex and yacc) to generate several
6 - codes uses flex and bison (or lex and yacc) to generate several
parsers. These tools auto-generate C source files. To get around versioning
issues, we've distributed the auto-generated sources directly. To remove
all of the autogenerated files for these parsers, execute
......
......@@ -153,6 +153,38 @@ The following restrictions currently apply to the IO language:
Hence, getgroupid should be completely ignored and getgrouprank and
getgroupsize ignore the group ID parameter passed in.
===== Limitations
The IO language is frozen and no future development will be happening with it,
so keep the following limitations in mind when using it.
* There is currently no way to specify a "create" flag to open.
* Variables are expected to be a single lowercase character.
==== "Mock" IO workload
The mock IO workload generator creates a sequential workload of N requests of
size M. The generated file ID is either an optional input or 0 - there's also
an option to add a (simulated) processes rank to the file IDs, giving in effect
a unique file per rank. Relevant configuration parameters are:
* mock_num_requests - the number of requests
* mock_request_size - the size of each request
* mock_request_type - the type of request ("read" or "write")
* mock_file_id (optional) - the file ID to use, default 0
* mock_use_unique_file_ids (optional) - if non-zero, add the workload
processor's rank to the file ID. Default is 0.
* mock_rank_table_size (optional) - the hash table size to store the ranks in.
For minimal collisions, choose a value larger than the expected workload
number of ranks.
==== Recorder IO workload
TODO...
==== Checkpoint IO workload
TODO...
=== Network
Our primary network workload generator is via the DUMPI tool
......
......@@ -345,6 +345,9 @@ implement -- steps 2--4 are a few lines of code each. Also, LP-IO can be
used upon encountering a suspend condition to give error specifics (the reverse
write would occur in the reverse handler in step 3).
Note that ROSS now has a self-suspend API -- the hand-implementation may still
be used, but it is preferable to use the ROSS version.
\subsection{Stash data needed for reverse computation within event structures}
Writing discrete-event simulations will necessarily involve ``destructive''
......
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