major restructuring
authorAbhinav Bhatele <bhatele@illinois.edu>
Mon, 23 Feb 2009 22:14:13 +0000 (22:14 +0000)
committerAbhinav Bhatele <bhatele@illinois.edu>
Mon, 23 Feb 2009 22:14:13 +0000 (22:14 +0000)
doc/bignetsim/Makefile
doc/bignetsim/bignetsim.tex
doc/bignetsim/install.tex [new file with mode: 0644]
doc/bignetsim/interconnects.tex [new file with mode: 0644]
doc/bignetsim/manual.tex
doc/bignetsim/usage.tex [new file with mode: 0644]

index 71f0dcba812e9dae937271ca913ad2a2fc819352..a70667042f09cfbcf7f532fb94cf1de271b4aeb7 100644 (file)
@@ -1,6 +1,6 @@
 # Stub makefile for LaTeX PPL manual
 FILE   = manual
-TEX    = $(FILE).tex bignetsim.tex
+TEX    = $(FILE).tex bignetsim.tex install.tex interconnects.tex usage.tex
 
 DEST   = bignetsim
 LATEX2HTML     = $(L2H) -split 5
index f94cdea8865e53012f1a64301752a762f4a88eaf..1b58228bed1a91bb3bb536334339b6297fbf2d78 100644 (file)
@@ -1,38 +1,3 @@
-\section{BigSim Network Simulator}
-\label{bignetsim}
-
-The BigSim Network Simulator is also known as Bigsimulator and lives 
-in the SVN repository https://charm.cs.uiuc.edu/svn/repos/BigNetSim. 
-The Network simulator is actually more of an Inter-connection network 
-simulator and hence more important in the context of large parallel
-machines with interconnects. 
-The BigSim simulator  along with the network simulator is together 
-also known as BigNetSim.
-
-Both the simulators run on top of the POSE framework, which is a Parallel
-Discrete Event Simulation framework built on top of \charmpp{}.
-
-
-\subsection{What does this software do?}
-BigNetSim is an effort to simulate large current and future computer 
-systems to study the behavior of applications developed for those systems. 
-BigNetSim could be used to study
-\begin{itemize}
-\item  new types of interconnection topologies and routing algorithms 
-along with different types of switching architecture.
-\item application performance on different machines. This uses the API
-provided in Section \ref{bgapi} to run the application on some number
-of processors on some machine and generate (dump) all events (entry
-method executions or message send/recv).  BigNetSim is used to 
-model the machine that needs to be studied for this application and
-these logs are then fed into this simulation, and it predicts the
-performance of this application.
-\end{itemize}
-
-So, the two important uses are studying {\it interconnection networks} and
-{\it performance prediction for applications}.
-
-
 \subsection{BigNetSim Design and Internals}
 \begin{figure}[!t]
 \centering  
@@ -183,85 +148,3 @@ can choose among them. Each should implement the following function.
 \desc{Returns the output virtual channel to be used depending on the strategy and
 the input parameters.}
 
-
-\subsection{Which Interconnection networks are implemented?}
-A large number of topologies and routing strategies are implemented in the
-software. Here, we present a list of interconnection networks. For a complete
-list of routing strategies, input/output VC selectors, refer to the
-corresponding directories in the software.
-
-\begin{itemize}
-\item HyperCube
-\item FatTree
-\item DenseGraph
-\item Three dimensional Mesh
-\item K-ary-N-cube
-\item K-ary-N-fly
-\item K-ary-N-mesh
-\item K-ary-N-tree
-\item N-mesh
-\item Hybrid of Fattree and Dense Graph
-\item Hybrid of Fattree and HyperCube
-\end{itemize}
-
-
-\subsection{Using the software}
-
-BigNetSim has 2 major modes.  
-
-\begin{itemize}
-\item{ Trace based traffic simulation }
-\item{Artificial traffic generation based simulation.
-The mode of the simulator is governed by the $USE\_TRANSCEIVER$ parameter
-in the netconfig file.  When set to 0, trace based simulation is used,
-when set to 1, traffic generation is used.}
-\end{itemize}
-
-Trace based simulation.  This is used to study target application performance,
-or detailed network performance when loaded by a specific application.
-
-There are two command line parameters for traced based simulation.
-\begin{alltt}./bigsimulator arg1 arg2\end{alltt}
-\begin{alltt}
-       arg1 = 0 => Latency only mode
-              1 => Detailed contention model
-       arg2 = N => starts execution at the time marked by skip point N (0 is start) 
-\end{alltt}
-
-Artificial traffic generation based simulation is use to study the performance
-of interconnects under standard network load schemes.
-
-
-\begin{alltt}./bigsimulator arg1 arg2 arg3 arg4 arg5 arg6\end{alltt}
-example
-\begin{alltt}./bigsimulator 1 2 3 100 2031 0.1\end{alltt}
-
-\begin{alltt}
-       arg1 = 0 => Latency only mode
-              1 => Detailed contention model
-       arg2 = 1 => deterministic traffic
-              2 => poisson traffic
-       arg3 = 1 => KSHIFT 
-              2 => RING 
-              3 => BITTRANSPOSE 
-              4 => BITREVERSAL 
-              5 => BITCOMPLEMENT 
-              6 => UNIFORM\_DISTRIBUTION 
-       arg4 = number of packets
-       arg5 = message size
-       arg6 = load factor
-\end{alltt}
-
-\subsection{Build your own Interconnection network}
-To build a new interconnection network, one has to create a new directory for
-that interconnection network and then create the routing strategy, topology,
-input virtual channel selection and output virtual channel selection strategies
-for that network. If existing strategies could be used, then reuse them, but if
-new ones are required, one has to write these new strategies in the
-corresponding directories for routing, topology, etc.
-
-The InitNetwork function must be provided in InitNetwork.C for this new
-interconnection network. It builds up all the nodes and switches and NICs and
-channels that form the network. Look at one of the existing interconnection
-topologies for reference.
-
diff --git a/doc/bignetsim/install.tex b/doc/bignetsim/install.tex
new file mode 100644 (file)
index 0000000..41623ce
--- /dev/null
@@ -0,0 +1,31 @@
+\subsection{Compiling BigSimulator}
+
+To compile the simulator which is called BigSimulator (or BigNetSim), we need
+the regular Charm++ build (net-linux-x86\_64 in our example).  It needs to be
+complemented with a few more libaries from BigSim and with the Pose
+discrete-event simulator. These pieces can be built, respectively, with:
+
+\begin{verbatim}
+./build bgampi net-linux-x86_64 -O2
+./build pose net-linux-x86_64 -O2
+\end{verbatim}
+
+Access to the discrete-event simulation is realized via a Charm++ package
+originally named BigNetSim (now called BigSimulator). Assuming that the
+'subversion' (svn) package is available, this package can be obtained from the
+Web with a subversion checkout such as:
+
+\begin{verbatim}
+   svn co https://charm.cs.uiuc.edu/svn/repos/BigNetSim/
+\end{verbatim}
+
+In the subdir 'trunk/' created by the checkout, the file Makefile.common must
+be edited so that 'CHARMBASE' points to the regular Charm++ installation.
+Having that done, one chooses a topology in that subdir (e.g. BlueGene for a
+torus topology) by doing a "cd" into the corresponding directory (e.g. 'cd
+BlueGene').  Inside that directory, one should simply "make". This will produce
+the binary "../tmp/bigsimulator". That file, together with file
+"BlueGene/netconfig.vc", will be used during a simulation. It may be useful to
+set the variable SEQUENTIAL to 1 in Makefile.common to build a sequential
+(non-parallel) version of bigsimulator.
+
diff --git a/doc/bignetsim/interconnects.tex b/doc/bignetsim/interconnects.tex
new file mode 100644 (file)
index 0000000..5a459b3
--- /dev/null
@@ -0,0 +1,33 @@
+\subsection{Which Interconnection networks are implemented?}
+A large number of topologies and routing strategies are implemented in the
+software. Here, we present a list of interconnection networks. For a complete
+list of routing strategies, input/output VC selectors, refer to the
+corresponding directories in the software.
+
+\begin{itemize}
+\item HyperCube
+\item FatTree
+\item DenseGraph
+\item Three dimensional Mesh
+\item K-ary-N-cube
+\item K-ary-N-fly
+\item K-ary-N-mesh
+\item K-ary-N-tree
+\item N-mesh
+\item Hybrid of Fattree and Dense Graph
+\item Hybrid of Fattree and HyperCube
+\end{itemize}
+
+\subsection{Build your own Interconnection network}
+To build a new interconnection network, one has to create a new directory for
+that interconnection network and then create the routing strategy, topology,
+input virtual channel selection and output virtual channel selection strategies
+for that network. If existing strategies could be used, then reuse them, but if
+new ones are required, one has to write these new strategies in the
+corresponding directories for routing, topology, etc.
+
+The InitNetwork function must be provided in InitNetwork.C for this new
+interconnection network. It builds up all the nodes and switches and NICs and
+channels that form the network. Look at one of the existing interconnection
+topologies for reference.
+
index 2a303e67bee48c9d622fcb5ee2489749ab1aa879..29af7ee494ff5e368a7161ee59c4e65e93ea4daf 100644 (file)
@@ -16,6 +16,46 @@ Eric Bohm and Gengbin Zheng}
 \begin{document}
 \maketitle
 
+\section{BigSim Network Simulator}
+\label{bignetsim}
+
+The BigSim Network Simulator is also known as Bigsimulator and lives
+in the SVN repository https://charm.cs.uiuc.edu/svn/repos/BigNetSim.
+The Network simulator is actually more of an Inter-connection network
+simulator and hence more important in the context of large parallel
+machines with interconnects.
+The BigSim simulator  along with the network simulator is together
+also known as BigNetSim.
+
+Both the simulators run on top of the POSE framework, which is a Parallel
+Discrete Event Simulation framework built on top of \charmpp{}.
+
+
+\subsection{What does this software do?}
+BigNetSim is an effort to simulate large current and future computer
+systems to study the behavior of applications developed for those systems.
+BigNetSim could be used to study
+\begin{itemize}
+\item  new types of interconnection topologies and routing algorithms
+along with different types of switching architecture.
+\item application performance on different machines. This uses the API
+provided in Section \ref{bgapi} to run the application on some number
+of processors on some machine and generate (dump) all events (entry
+method executions or message send/recv).  BigNetSim is used to
+model the machine that needs to be studied for this application and
+these logs are then fed into this simulation, and it predicts the
+performance of this application.
+\end{itemize}
+
+So, the two important uses are studying {\it interconnection networks} and
+{\it performance prediction for applications}.
+
+\input{install}
+
+\input{usage}
+
+\input{interconnects}
+
 \input{bignetsim}
 
 \input{index}
diff --git a/doc/bignetsim/usage.tex b/doc/bignetsim/usage.tex
new file mode 100644 (file)
index 0000000..9767b79
--- /dev/null
@@ -0,0 +1,95 @@
+\subsection{Using BigSimulator}
+
+BigSimulator (BigNetSim) has 2 major modes.
+
+\begin{itemize}
+\item{ Trace based traffic simulation }
+\item{Artificial traffic generation based simulation.
+The mode of the simulator is governed by the $USE\_TRANSCEIVER$ parameter
+in the netconfig file.  When set to 0, trace based simulation is used,
+when set to 1, traffic generation is used.}
+\end{itemize}
+
+Trace based simulation.  This is used to study target application performance,
+or detailed network performance when loaded by a specific application.
+
+There are two command line parameters for traced based simulation.
+\begin{alltt}
+  ./charmrun +p2 ./bigsimulator arg1 arg2
+\end{alltt}
+\begin{alltt}
+  arg1 = 0 => Latency only mode
+         1 => Detailed contention model
+  arg2 = N => starts execution at the time marked by skip point N (0 is start)
+\end{alltt}
+
+\subsubsection{Simple Latency Model}
+To use the simple latency model, follow the setup procedure above, noting that
+the files are located in the trunk/SimpleLatency directory. This will produce
+the "bigsimulator" file.
+
+The command line parameters used for this model are different.  The format is
+as follows:
+
+\begin{alltt}
+  [charmrun +p#] bigsimulator -lat <latency> -bw <bandwidth>
+               [-cpp <cost per packet> -psize <packet size>]
+               [-winsize <window size>] [-skip] [-print\_params]
+\end{alltt}
+
+\begin{alltt}
+  Latency (lat)         - type double; in microseconds
+  Bandwidth (bw)        - type double; in GB/s
+  Cost per packet (cpp) - type double; in microseconds
+  Packet size (psize)   - type int; in bytes
+  Window size (winsize) - type int; in log entries
+\end{alltt}
+
+The implemented equation is: $lat + (N/bw) + cpp \times (N/psize)$
+
+Latency and bandwidth are required.  If cost per packet is given, then packet
+size must be given, as well.  Otherwise, cost per packet defaults to 0.0.
+Packet size, if given, must be a positive integer.
+
+The -winsize flag allows the user to specify the size of the window (number of
+log entries) used when reading in the bgTrace log files.  This is useful if the
+log files are large.  If -winsize is not specified, the value defaults to 0,
+which indicates that no windowing will be used (i.e., there will be one window
+for each time line that is equal to the size of the time line).
+
+As with the second parameter in the examples of part (a) of this section, the
+-skip flag indicates that the simulation should skip forward to the time stamp
+set during trace creation (see the BigSim tutorial talk from the 2008 Charm++
+workshop).  If -skip is not included, then no skipping will occur.
+
+The -print\_params flag is provided for debugging convenience.  When present,
+the simple latency model parameters will be displayed during simulation
+initilization.
+
+\subsubsection{Artificial Traffic Models}
+Artificial traffic generation based simulation is use to study the performance
+of interconnects under standard network load schemes.
+
+\begin{alltt}
+  ./bigsimulator arg1 arg2 arg3 arg4 arg5 arg6
+\end{alltt}
+example
+\begin{alltt}
+  ./bigsimulator 1 2 3 100 2031 0.1
+\end{alltt}
+
+\begin{alltt}
+  arg1 = 0 => Latency only mode
+         1 => Detailed contention model
+  arg2 = 1 => deterministic traffic
+         2 => poisson traffic
+  arg3 = 1 => KSHIFT
+         2 => RING
+         3 => BITTRANSPOSE
+         4 => BITREVERSAL
+         5 => BITCOMPLEMENT
+         6 => UNIFORM\_DISTRIBUTION
+  arg4 = number of packets
+  arg5 = message size
+  arg6 = load factor
+\end{alltt}