doc: more content hierarchy fixing
authorRamprasad Venkataraman <ramv@illinois.edu>
Wed, 25 Jul 2012 20:42:56 +0000 (15:42 -0500)
committerRamprasad Venkataraman <ramv@illinois.edu>
Wed, 25 Jul 2012 20:42:56 +0000 (15:42 -0500)
doc/charm++/advancedlb.tex
doc/charm++/delegation.tex
doc/charm++/groups.tex
doc/charm++/loadb.tex
doc/charm++/manual.tex
doc/charm++/nodegroups.tex

index 62663ea43605b5c4b7d0230defe8dc41688e67aa..0eade6d30ee77f208a5dfd8e793948460574e65e 100644 (file)
@@ -1,9 +1,4 @@
-
-\subsection{Advanced Load Balancing}
-
-\label{advancedlb}
-
-\subsubsection{Load Balancing Simulation}
+\section{Load Balancing Simulation}
 
 The simulation feature of load balancing framework allows the users to collect information
 about the compute WALL/CPU time and communication of the chares during a particular run of
@@ -55,7 +50,8 @@ This will collect data on files data.dat.{2,3,4,5}. Then, we can use this data t
 Please note that this does not invoke any real application run. Actually
  ''pgm'' can be replaced with any generic application which calls centralized load balancer.
 Example can be found {\tt test/charm++/load\_balancing/lb\_test/}
-\subsubsection{Future load predictor}
+
+\section{Future load predictor}
 
 When objects do not follow the assumption that the future workload will be the
 same as the past, the load balancer might not have the correct information to do
@@ -134,7 +130,7 @@ callable from user program to modify the predictor. These methods are:
 \item {\tt void ChangePredictor(LBPredictorFunction *model);}
 \end{itemize}
 
-\subsubsection{Control CPU Load Statistics}
+\section{Control CPU Load Statistics}
 
 \charmpp{} programmers can control CPU load data in the load balancing database
 before a load balancing phase is started (which is the time when load balancing
@@ -162,7 +158,7 @@ has measured for the current array element.
 This is useful when the users want to derive a new CPU load based on the 
 existing one.
 
-\subsubsection{Model-based Load Balancing}
+\section{Model-based Load Balancing}
 
 You can also choose to feed load balancer with their own CPU
 timing of each Chare based on certain computational model of the applications.
@@ -189,7 +185,7 @@ This function serves as a callback that is called on each chare object when
 load balancer framework. {\em setObjTime()} described above can be used for
 this.
 
-\subsubsection{Writing a new load balancing strategy}
+\section{Writing a new load balancing strategy}
 
 \charmpp{} programmers can choose an existing load balancing strategy from
 \charmpp{}'s built-in strategies(see ~\ref{lbStrategy}) for the best performance
@@ -235,7 +231,7 @@ balancing strategy}
 Incorporating this strategy into the \charmpp{} build framework is explained in
 the next section.
 
-\subsubsection{Adding a load balancer to \charmpp{}}
+\section{Adding a load balancer to \charmpp{}}
 
 Let us assume that we are writing a new centralized load balancer called FooLB.
 The next few steps explain the steps of adding the load balancer to the \charmpp{}
@@ -268,8 +264,7 @@ strategy files.
 \end{enumerate}
 
 
-\subsubsection{Understand Load Balancing Database Data Structure}
-
+\section{Understand Load Balancing Database Data Structure}
 \label{lbdatabase}
 
 To write a load balancing strategy, you need to know 
index edae82e61c8de22114f3070b8f9e3aaa270bad1c..3ad3e2171bf5be0a1b9de0355afb5502844d6599 100644 (file)
@@ -1,8 +1,3 @@
-\subsection{Delegation}
-
-\index{Delegation}
-\label{delegation}
-
 {\em Delegation} is a means by which a library writer can 
 intercept messages sent via a proxy.  This is typically
 used to construct communication libraries.
@@ -15,7 +10,7 @@ very small client-side interface to enable delegation,
 and a more complex manager-side interface to handle
 the resulting redirected messages.
 
-\subsubsection{Client Interface}
+\section{Client Interface}
 
 All proxies (Chare, Group, Array, ...) in \charmpp\ 
 support the following delegation routines.
@@ -67,7 +62,7 @@ and messages for virtual chares that have not yet been created
 are never delegated.  Instead, these kinds of entry methods
 execute as usual, even if the proxy is delegated.
 
-\subsubsection{Manager Interface}
+\section{Manager Interface}
 
 A delegation manager is a group which inherits from
 \kw{CkDelegateMgr} and overrides certain virtual methods. 
index d0d1415aca376fa40fe60a5c0b9e8c5ded18b5f6..038bf666354b30649b0397c14873968c34bbaa7c 100644 (file)
@@ -1,5 +1,4 @@
-\subsection{Group Objects}
-
+\section{Group Objects}
 \label{sec:group}
 
 So far, we have discussed chares separately from the underlying hardware resources 
@@ -18,7 +17,7 @@ where \uw{ClassName} is the name of group's \CC{} class
 \footnote{Older, deprecated syntax allows groups to inherit directly from the
 system-defined class \kw{Group}}.
 
-\subsubsection{Group Definition}
+\subsection{Group Definition}
 
 In the interface ({\tt .ci}) file, we declare
 
@@ -47,7 +46,7 @@ class Foo : public CBase\_Foo \{
 \};
 \end{alltt}
 
-\subsubsection{Group Creation}
+\subsection{Group Creation}
 
 Groups are created in a manner similar to chares and chare arrays, i.e. 
 through \kw{ckNew}. Given the declarations and definitions of group {\tt Foo}
@@ -111,7 +110,7 @@ Note that there can be several instances of each group type.
 In such a case, each instance has a unique group identifier, and its own set
 of branches.
 
-\subsubsection{Method Invocation on Groups}
+\subsection{Method Invocation on Groups}
 
 An asynchronous entry method can be invoked on a particular branch of a
 group through a proxy of that group. If we have a group with a proxy
index b3a59ed79cf3f1b974871dd5934be2c5031405d7..c975d3dd9c55b45a9282e7cc4771c4bd48e5f661 100644 (file)
@@ -1,9 +1,3 @@
-%\subsection{Load Balancing}
-
-\label{loadbalancing}
-
-%(This introduction added on 11/12/2003)
-
 Load balancing in \charmpp{} is enabled by its ability to place, or
 migrate, chares or chare array elements.  Typical application usage to
 exploit this feature will construct many more chares than processors, and
@@ -43,8 +37,8 @@ processor. The seed balancer will handle such work as it arises.
 
 Examples are in {\tt examples/charm++/load\_balancing} and {\tt
   tests/charm++/load\_balancing}
-\subsubsection{Measurement-based Object Migration Strategies}
 
+\section{Measurement-based Object Migration Strategies}
 \label{lbFramework}
 \label{migrationlb}
 
@@ -87,8 +81,7 @@ hierarchical load balancers.
 %
 \end{itemize}
 
-\subsubsection{Available Load Balancing Strategies}
-
+\section{Available Load Balancing Strategies}
 \label{lbStrategy}
 
 Load balancing can be performed in either a centralized, a fully distributed,
@@ -150,7 +143,7 @@ section~\ref{lbOption}.
 %an aggressive load balancer such as GreedyRefLB in the first load balancing
 %step, and use RefineLB for the later load balancing steps.
 
-\subsubsection{Load Balancing Chare Arrays}
+\section{Load Balancing Chare Arrays}
 \label{lbarray}
 
 The load balancing framework is well integrated with chare array implementation
@@ -251,8 +244,7 @@ the automatic Load balancing mode.
 %
 \end{enumerate}
 
-\subsubsection{Migrating objects}
-
+\section{Migrating objects}
 \label{lbmigobj}
 
 Load balancers migrate objects automatically.
@@ -292,7 +284,7 @@ and allocation of the data items is done in the element's \uw{pup} routine.
 Deallocation is done in the element destructor as usual.
 
 
-\subsubsection{Other utility functions}
+\section{Other utility functions}
 
 There are several utility functions that can be called in applications to
 configure the load balancer, etc. These functions are:
@@ -326,8 +318,7 @@ LBSetPeriod(5.0);
       Alternatively, one can specify +LBPeriod \{seconds\} at command line.
 \end{itemize}
 
-\subsubsection{Compiler and runtime options to use load balancing module}
-
+\section{Compiler and runtime options to use load balancing module}
 \label{lbOption}
 
 Load balancing strategies are implemented as libraries in \charmpp{}. This
@@ -462,8 +453,7 @@ computation after migrations are completed on all processors.
 
 \end{enumerate}
 
-\subsubsection{Seed load balancers - load balancing Chares at creation time}
-
+\section{Seed load balancers - load balancing Chares at creation time}
 \label{seedlb}
 
 Seed load balancing involves the movement of object creation messages, or
@@ -556,7 +546,7 @@ under charm/lib, named as {\em libcldb-foo.a}, where {\em foo} is the strategy
 name used above. Now one can use {\bf -balance foo} as compile time option
 to {\bf charmc} to link with the {\em foo} seed load balancer.
 
-\subsubsection{Simple Load Balancer Usage Example - Automatic with Sync LB}
+\section{Simple Load Balancer Usage Example - Automatic with Sync LB}
 \label{lbexample}
 
 A simple example of how to use a load balancer in sync mode in one's
index 8c95b0e60c5c2c1fb26555d3de9ff0b8d33657fc..b00ca487e18f037bc78e6529235288b261ba0c71 100644 (file)
@@ -48,6 +48,7 @@ node, PE, ranks?, smp-mode and non-smp mode terminology. etc.
   \input{pup}
 
 \chapter{Load Balancing}
+\label{loadbalancing}
   \input{loadb}
 
 \chapter{Processor-Aware Chare Collections}
@@ -90,6 +91,7 @@ node, PE, ranks?, smp-mode and non-smp mode terminology. etc.
   \input{advancedpup}
 
 \chapter{More Load Balancing}
+\label{advancedlb}
   \input{advancedlb}
 
 \chapter{Checkpoint/Restart}
@@ -112,7 +114,9 @@ node, PE, ranks?, smp-mode and non-smp mode terminology. etc.
 \label{python}
   \input{python}
 
-\chapter{Writing Libraries for Custom Messaging}
+\chapter{Intercepting Messages via Delegation}
+\index{Delegation}
+\label{delegation}
   \input{delegation}
 
 % TO BE MOVED TO ITS OWN MANUAL
index ef9cb148dca94adce80dbb444cc308a1408fffc6..dce573a3cb0643e9cfb2974f90bf97a3b7e1e918 100644 (file)
@@ -1,4 +1,4 @@
-\subsection{NodeGroup Objects}
+\section{NodeGroup Objects}
 
 The {\em node group} construct \index{node groups} \index{nodegroup} \index{Nodegroup} is 
 similar to the group construct discussed above. 
@@ -12,7 +12,7 @@ Therefore, each logical node hosts a single branch of the
 node group.  When an entry method of a
 node group is executed on one of its branches, it executes on {\em some} PE within the node.
 
-\subsubsection{NodeGroup Declaration} 
+\subsection{NodeGroup Declaration} 
 
 Node groups are defined in a similar way to groups.  \footnote{As with groups,
 older syntax allows node groups to inherit from \kw{NodeGroup} instead of a
@@ -47,7 +47,7 @@ branches.
 %executing.
 
 
-\subsubsection{Method Invocation on NodeGroups}
+\subsection{Method Invocation on NodeGroups}
 
 As with chares, chare arrays and groups, entry methods are invoked on
 NodeGroup branches via proxy objects. 
@@ -81,7 +81,7 @@ program, please consult \S~\ref{sec:nodegroups/exclusive} (below).
 %executed by only one processor at a time, the method should be flagged
 %\index{exclusive}\kw{exclusive} in the interface file. 
 
-\subsubsection{NodeGroups and \kw{exclusive} Entry Methods}
+\subsection{NodeGroups and \kw{exclusive} Entry Methods}
 \ref{sec:nodegroups/exclusive}
 
 Node groups may have \index{exclusive}\kw{exclusive} entry methods.  The execution of an \kw{exclusive}
@@ -104,7 +104,7 @@ An entry method can be marked exclusive by tagging it with the \kw{exclusive} at
 as explained in \S~\ref{attributes}.
 
 
-\subsubsection{Accessing the Local Branch of a NodeGroup}
+\subsection{Accessing the Local Branch of a NodeGroup}
 
 The local \index{branch}branch of a \kw{NodeGroup} \uw{NG}, and hence its
 member fields and methods, can be accessed through the method \kw{NG*