# FSIN Functional Simulator of Interconnection Networks # Copyright (2003-2006) # J. Miguel-Alonso, A. Gonzalez, J. Navaridas # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # FSIN configuration file # Lines like this are coments # All options can be overriden in the command line # --------------------------------- # MISCELANEA # --------------------------------- # Random seed option. It must be an integer. Default: 17 rseed=17 # --------------------------------- # TOPOLOGY SECTION # --------------------------------- # Topology # Posible values are: # midimew,ttorus,torus,mesh: plus up to 3 parameters (nodes_x, nodes_y, nodes_z) # fattree: plus up to 2 parameters (up/down ports, nstages) # thintree, slimtree: plus up to 3 parameters (down ports, up ports, nstages) # tricube: plus up to 5 parameters (nodes per switch, parallel links, nodes_x, nodes_y, nodes_z) # Default: torus_4_4 topo=torus_8_8 # Number of uniform link failures. Default:0 faults=0 # Number of ways: 1 for unidirectional, 2 for bidirectional. Default: 2 nways=2 # Number of virtual channels per physical channel. Default: 1 nchan=2 # Number of injectors per router - Default is 1 ninj=1 # Transit queue length (in packets). Default if 4 tql=4 # Injection queue length (in packets). Default is 8 iql=4 # Skews for topo=ttorus (twisted torus). Defaults are 0 for all # sk_xy sk_xz sk_yx sk_yz sk_zx sk_zy sk_yx=0 sk_zx=0 # --------------------------------- # ROUTING AND CHANNEL MANAGEMENT # --------------------------------- # VC management # Posible values are: bubble, double, dally. # Multistage and hybrid topologies have implicit their own VC management # Default: bubble vc=bubble # Bubble size for escape network when using bubble flow-control. Specify up to three values for bub_x, bub_y, bub_z. # Default: 2 for all of them # Note: this value is set to 0 if vc=dally or if not a cube-like topology bsize=2 # Parallel injection # Valid values are 0 (no) or any other integer (yes). # Default is yes par_inj=1 # Extract packet: 0 to try to inject all traffic (default) # Any other value to drop packet from HEAD of inj. queue if no space available in transit queues extract=0 # Dropping packets when too much load? Default is 0 (NO). any other value means YES. drop_packets=0 # Routing: routing to apply in oblivious channels # Posible values are: dim,dir (dimension-order routing, direction-order routing) # static, adaptive (for trees and tricubes) # Default: dim routing=dim # Injection mode # Valid values are: shortest, dor, dsh (dor_shortest), shp (shortest_profitable), lpath (longest_path). # Note that "dor" may be dimension-order or direction-order, depending on parameter "routing" # Note that this value can modify the selected value for parameter "ninj" # Note that multistage or hybrid topologies only use shortest # Default: shortest imode=shortest # Request mode: policy to request output channels. # Trees and tricubes have their own request policy and do not need an explicit rmode # Possible values are (for vc=bubble) : random, shortest, smart, oblivious, bimodal # (for vc=double) : doubleob, doubleadap, hexaob, hexaadap # (for vc=dally) : trc, basic, improved, adaptive # Trees and indirect cube have their own implicit rmodes. # Default: oblivious rmode=smart # Arbitration mode # Posible values are: rr,fifo,longest,random,age. Default: rr amode=rr # Consumption mode # Posible values are: multiple,single. Default: multiple cmode=multiple # --------------------------------- # CONGESTION CONTROL SECTION # --------------------------------- # In-transit priority: fraction of cycles to give priority to in-transit packets. Default is 0 (deactivated) intransit_pr=0 # Apply bubble to all VCs ONLY FOR INJECTION. Default: 0. Any other value means TRUE, and specifies bubble size. bub_to_adap=0 # Global congestion control. Specify a percentage value. 100% (default) means NO global_cc. A value # g means that injection is stopped when global buffer utilization is greater than the g% of the total capacity. # The update period specifies how often the global occupation is computed and distributed. The specified # number is multiplied by the network diameter ONLY FOR TORUS AND MESH -- otherwise specify it manually. Default is 0, # meaning that information is always up to date global_cc=100 update_period=0 # Used for detect congestion using timeouts. # timeout_upper_limit defines the threshold to change to congested state. if <=0 then this feature is deactivated. # timeout_lower_limit defines the threshold to change to non congested state. if <=0 then # timeout_lower_limit is 75 % of timeout_upper_limit. Default values are -1 & -1 (deactivated) timeout_upper_limit=-1 timeout_lower_limit=-1 # --------------------------------- # TRAFFIC GENERATION SECTION # --------------------------------- # packet length in phits and phit lengh in bytes. Default: 16_4 plength=16_4 # traffic pattern: select from the following (default: uniform) # Random: uniform, hotregion, semi, local # Distribution: distribute, rsdist # Permutations: transpose, complement, butterfly, shuffle, reversal, tornado # Trace driven simulation: trace. # Distribution from file: population, histogram tpattern=uniform # injection load (phits/node/cycle) when running in batch mode. Default:1.0 load=0.25 # tracefile defines the file with the trace (or the distance distribution file). Default is /dev/null tracefile=bt.A.trc # placement defines the placement strategy when using traces. default is: row_0_0 # consecutive, shuffle, random, quadrant, row, column: plus up to 2 parameters (nodes, concurrent instances) # shift: plus up to 3 parameters (shift, nodes, concurrent instances) # file: plus up to 3 parameters (placement file, nodes, concurrent instances) placement=consecutive # bg_load: random uniform load to sent in the background when using trace-driven simulation. Default:0.0 bg_load=0.0 # Bimodal injection with long & short messages. Define the long message's length & their probability related in number of packets. # Default: lng_msg_ratio = 0.0, long_messages = 1. meaning bimodal is disabled. # Note that if longmessages<2 the bimodal injection is deactivated. longmessages=1 lng_msg_ratio=0.0 # Synthetic traffic with convergence simulation ############################################### # Initial Warm-up period in FSIN cycles (Default 25000). warm_up_period=10000 # After this, a phase to ensure convergence. Taking samples each 'conv_period' cycles (Default 1000). # When we take 3 samples with less than 'conv_thres' error (Default 0.05), we # have entered into the stationary phase # It must take at most 'max_conv_time' cycles (Default 25000), # otherwise simulation will be shutdown conv_period=1000 conv_thres=0.05 max_conv_time=15000 # Number of batches (samples) to take from this simulation (Default 25), # batch (sample) size in cycles (Default 2000) & # the minimun number of packets receive to acept a batch (Default 0). nsamples=15 sample_size=5000 min_batch_pkt=10 # Causal synthetic traffic ########################## # Probability of triggering a burst of packets after the reception of a packet and burst lenght. trigger_rate=0 triggered=0 # Bursty synthetic traffic ########################## # Operating in shot-mode? If yes, set the shotsize. A shotsize value of 0 indicates that the shotsize is NUMNODES. Defaults: FALSE 1 shotmode=0 shotsize=1 # Execution driven simulation ############################# # long simics/fsin_cycle_relation: cycle relation between Simics and FSIN, defaults to 10:100 # long serv_addr: listening port for new Simics hosts connections, defaults to 8082 # long num_periodos_espera: interconnection delay that will be put at the destination host. # It is measured in synchronization phases, defaults to 0 fsin_cycle_relation=200 simics_cycle_relation=1000 serv_addr=8082 num_periodos_espera=0 # --------------------------------- # OUTPUT SECTION # --------------------------------- # Print level - bitmap. Default: 0 # 0 = Just final summary # 1 = Source/destination Map # 2 = port utilization Map # 4 = Distance Histogram # 8 = Histogram of port utilization # 16 = Packet-level traces # 32 = Phit-level traces # 64 = Monitored node plevel=0 # Monitored node. Give more information about this particular node monitored=1 # Partial headers. 0 for no partials. Otherwise, specify a number - bitmap. Default: All # 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + 1024 # clock inj_load cons_load av_delay delay_dev max_delay inj_delay i_d_dev i_del_max netw. ocup queue_ocup pheaders=63 # Batch results headers. Default: All. # 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + 1024 + 2048 + 4096 # BatchTime AvDistance InjLoad AccLoad PacketSent PacketRcvd PacketDrop AvgDelay StDevDelay MaxDelay InjAvgDel InjStDvDel InjMaxDel bheaders=8191 # Interval to calculate partial results. RELEVANT even if pheaders=0. Default: 1000 cycles pinterval=1000 # The prefix for the output files: the suffixes (extensions) are: # .mon for monitored node file # .map for network mapping file # .hst for nodes histograms file # If no name is given then the output file's names are fsin.#pid.out output=example