/*******************************************************************************
 * RECORDS DEFINITION - NOTES TO MANUAL EDIT OF THIS FILE
 *******************************************************************************
 *
 * The records here described follow the SDDF file structure. Each field must be
 * sepparated by commas in the actual records.
 *
 * 'int' and 'double' values are expresed as is. 'char[]' values must be always
 * wrapped by quotes. 'double' and 'int' arrays must be in the following format:
 *
 * [n] { value_1, value_2, ..., value_n }
 *
 * Where 'n' is the number of elements in the array
 *
 *******************************************************************************

 "wide area network information" {
  1: char[] "name of the wide area network simulated"
  2: int    "number of machines in wan"
  3: int    "number of dedicated connections between machines in the simulated"
            "system"
  4: int    "function that models influence of traffic in the non dedicated"
            "network."
            "options: 1 EXPONENTIAl, 2 LOGARITHMIC, 3 LINEAR, 4 CONSTANT"
  5: double "maximal value of traffic in the network"
  6: double "external net bandwidth (MBps)"
  7: int    "external network collective communications model"
            "options: 1 CONSTANT, 2 LINEAR, 3 LOGARITHMIC"
};;

"environment information" {
  1: char[] "machine name"
  2: int    "machine ID";
  3: char[] "architecture used to instrument"
  4: int    "number of nodes on virtual machine"
  5: double "data tranfer rate between nodes (MBps)"
            "0 means instantaneous communication"
  6: int    "inter-node number of buses, i.e. max n. of concurrent messages"
            "0 means no limit"
            "1 means bus contention"
  7: int    "internal network collective communications model"
            "options: 1 CONSTANT, 2 LINEAR, 3 LOGARITHMIC"
};;


"node information" {
  1: int     "machine ID"
  2: char[]  "architecture node name"
  3: int     "number of processors within node"
  4: double  "relative processor speed (divisive factor)"
  5: double  "latency time (s) of intra-node communications model"
  6: double  "bandwidth (MBps) of intra-node communications model"
             "0 means instantaneous communication"
  7: int     "intra-node number of buses, i.e. max n. of concurrent messages"
             "communications model:"
             "0 means no limit"
             "1 means bus contention"
  8: int     "input links of intra-node communications model"
  9: int     "output links of intra-node communications model"
  10: double "latency time (s) of inter-node communications model"
  11: int    "input links of inter-node communications model"
  12: int    "output links of inter-node communications model"
  13: double "latency time (s) of inter-machines (WAN) communications model"
};;

"multi node information" {
  1: int     "machine ID"
  2: int     "number of nodes with same configuration"
  3: char[]  "architecture node name"
  4: int     "number of processors within node"
  5: double  "processor speed ratio wrt. original execution (divisive factor)"
             "0 means instantaneous | negative value means fixed duration in s."
  6: double  "latency time (s) of intra-node communications model"
  7: double  "bandwidth (MBps) of intra-node communications model"
             "0 means instantaneous communication"
  8: int     "intra-node number of buses, i.e. max n. of concurrent messages"
             "communications model: "
             "0 means no limit"
             "1 means bus contention"
  9: int     "input links of intra-node communications model"
  10: int    "output links of intra-node communications model"
  11: double "latency time (s) of inter-node communications model"
  12: int    "input links of inter-node communications model"
  13: int    "output links of inter-node communications model"
  14: double "latency time (s) of inter-machines (WAN) communications model"
};;

"accelerator node information" {
  1 : int     "node ID"
  2 : double  "latency time (s) of GPU communications model"
  3 : double  "memory_latency time (s) GPU communication model"
  4 : double  "bandwidth (MBps) of GPU communications model"
              "0 means instantaneous communication"
  5 : int     "num of accelerator buses"
              "if no accelerator nodes info and CUDA/OpenCL records -> error"
  6 : double  "accelerator speed ratio wrt. original execution (divisive factor)"
              "0 means instantaneous | negative value means fixed duration in s."
};;

"mapping information" {
  1: char[] "application tracefile name"
  2: int    "number of tasks in application"
  3: int[]  "list of nodes where each application tasks is mapped"
};;

"predefined mapping information" {
  1: char[] "application tracefile name" (OPTIONAL)
  2: char[] "predefined map identifier"
            "options: FILL_NODES | <int> TASKS_PER_NODE | INTERLEAVED"
}

"configuration files" {
  1: char[] "scheduler definition filename"
  2: char[] "file system definition filename"
  3: char[] "communications fine tuning configuration filename"
  4: char[] "sensitivity configuration filename"
};;

"modules information" {
  1: int    "module type"
  2: int    "module value"
  3: double "module speed ration wrt. original execution (divisive factor)"
            "0 means instantaneous | negative value means fixed duration in s."
};;

"file system parameters" {
  1: double "disk latency"
  2: double "disk bandwidth";
  3: double "block size";
  4: int    "concurrent requests";
  5: double "hit ratio";
};;

"dedicated connection information" {
  1:  int    "connection ID"
  2:  int    "source machine ID"
  3:  int    "destination machine ID"
  4:  double "bandwidth of the connection (MBps)"
  5:  int[]  "list of tags that will use the connection"
  6:  int    "size of first message (bytes) to apply the comparision to use the"
             "connection"
  7:  char[] "size condition that should meet messages to use the connection"
             "it can be <, =, > and (referent to first message size)"
  8:  char[]  "operation. options: & AND, | OR"
  9:  int    "size of second condition that should meet messages to use the"
             "connection"
  10: char[] "size condition that should meet messages to use the connection"
             "it can be <, =, > and its is referent to second message size"
  11: int[]  "list of communicators of coll. Operations that can use the"
             "connection"
  12: double "latency of dedicated connection (s)"
  13: double "latency due to distance (s)"
};;

*******************************************************************************/

