Switched from 'report' document class back to 'article'; was wreaking havoc
authorTerry L. Wilmarth <wilmarth@uiuc.edu>
Mon, 26 Feb 2001 22:36:04 +0000 (22:36 +0000)
committerTerry L. Wilmarth <wilmarth@uiuc.edu>
Mon, 26 Feb 2001 22:36:04 +0000 (22:36 +0000)
with dvips on thrift.

17 files changed:
doc/charm++/arrays.tex
doc/charm++/chares.tex
doc/charm++/further.tex
doc/charm++/groups.tex
doc/charm++/inhertmplt.tex
doc/charm++/intro.tex
doc/charm++/io.tex
doc/charm++/manual.tex
doc/charm++/messages.tex
doc/charm++/modules.tex
doc/charm++/nodegroups.tex
doc/charm++/othercalls.tex
doc/charm++/overview.tex
doc/charm++/quiesce.tex
doc/charm++/readonly.tex
doc/charm++/sdag.tex
doc/charm++/seqobjs.tex

index 2131a6c1869dcf5e9c35e3ddc2c7735cc2b43fa8..ed6049410aa9aa8dfe6f4e4ae2e78d7e97baf452 100644 (file)
@@ -1,4 +1,4 @@
-\section{Chare Arrays}
+\subsection{Chare Arrays}
 
 Chare arrays \index{arrays} are arbitrarily-sized collections of chares.  The
 entire array is has a globally unique identifier of type \kw{CkArrayID}, and
@@ -13,7 +13,7 @@ Array elements can be migrated at any time, allowing arrays to be efficiently
 load balanced.  Array elements can also receive array broadcasts and
 contribute to array reductions.\r
 
-\subsection{Declaring a 1D Array}
+\subsubsection{Declaring a 1D Array}
 
 You can declare a one-dimentional \index{array}\index{chare array}chare array
 as:
@@ -63,7 +63,7 @@ Read the section ``Migratable Array Elements'' for more
 information on the \kw{CkMigrateMessage} constructor. 
 \r
 \r
-\subsection{Declaring 2D, 3D, or User-defined Index Arrays}\r
+\subsubsection{Declaring 2D, 3D, or User-defined Index Arrays}\r
 \r
 \charmpp{} contains direct support for 1D, 2D, 3D, and user-defined\r
 index arrays.  These arrays can be declared as:\r
@@ -101,7 +101,7 @@ field; a 2D via ``thisIndex.x'' and ``thisIndex.y'', and a 3D via
 index array can access its index as ``thisIndex''.\r
 \r
 
-\subsection{Creating an Array}\r
+\subsubsection{Creating an Array}\r
 
 You create an array using the \kw{CProxy\_Array::ckNew}
 routine.  This returns a proxy object, which can\r
@@ -191,7 +191,7 @@ a3(x,y,z).destroy();
 After destroying an element, you may insert a new element at
 its index.
 
-\subsection{Messages and Broadcasts}
+\subsubsection{Messages and Broadcasts}
 \r
 To send a \index{Array message} message to an array element, index the proxy \r
 and call the method name, possibly passing a message:\r
@@ -223,7 +223,7 @@ element exactly once.  Broadcasts work properly even with ongoing
 migrations, insertions, and deletions.\r
 \r
 \r
-\subsection{Reductions on Chare Arrays}\r
+\subsubsection{Reductions on Chare Arrays}\r
 A \index{Array reduction}reduction applies a single operation (e.g. add,\r
 max, min, ...) to data items scattered across many processors and\r
 collects the result in one place.  \charmpp{} supports reductions on the\r
@@ -296,7 +296,7 @@ handler can use \uw{param}, \uw{dataSize}, and the data in any
 fashion; but the data will be deleted after the handler returns.\r
 \r
 \r
-\subsection{Built-in Array Reduction Types}\r
+\subsubsection{Built-in Array Reduction Types}\r
 \r
 \charmpp{} includes several built-in reduction types, used to combine the\r
 contributions from different array elements.  Any of them may be passed as an\r
@@ -371,7 +371,7 @@ if you need to know which array element gave a particular contribution.
 \r
 \r
 \r
-\subsection{User-defined array index type}\r
+\subsubsection{User-defined array index type}\r
 \r
 \index{Array index type, user-defined}\r
 \charmpp{} array indices are arbitrary collections of integers.\r
@@ -440,7 +440,7 @@ AF::AF()
 \end{alltt}\r
 \r
 
-\subsection{Migratable Array Elements}
+\subsubsection{Migratable Array Elements}
 Array objects can \index{migrate}migrate from one PE to another.
 For example, the load balancer (see section ``Load Balancing Chare Arrays'')
 might migrate array elements to better balance the load between
@@ -554,7 +554,7 @@ public:
 \end{alltt}
 
 
-\subsection{Load Balancing Chare Arrays}
+\subsubsection{Load Balancing Chare Arrays}
 \charmpp{} includes a run-time load balancer which works
 on array elements.  The idea is to run programs more efficiently
 by migrating array elements away from overloaded processors.
@@ -584,7 +584,7 @@ sent to an array element between its calls to \kw{AtSync} and
 a implemented as a global barrier.
 \r
 
-\subsection{Array Syntax Changes}
+\subsubsection{Array Syntax Changes}
 
 The syntax for arrays changed in April, 2000 in the following ways:
 
index 3be3e34cac410e43f7b3bfa5da6e0c57d9965d7b..8278ecc9e976c9ca3750cbda2f1683d4997ac304 100644 (file)
@@ -1,4 +1,4 @@
-\section{Chare Objects}
+\subsection{Chare Objects}
 
 \index{chare}Chares are concurrent objects with methods that can be invoked
 remotely.  These methods are known as \index{entry method}entry methods, and 
@@ -60,7 +60,7 @@ chare whose entry function or public function is currently executing.
 \kw{thishandle} can be used to set fields in a message. This  
 mechanism allows chares to send their handles to other chares.
 
-\subsection{Chare Creation}
+\subsubsection{Chare Creation}
 \label{chare creation}
 
 First, a \index{chare}chare needs to be declared, both in \texttt{.ci} file and
@@ -183,7 +183,7 @@ then creates a new \index{chare}chare of type \uw{C} on processor \uw{destPE}:}
 
 \end{enumerate}
 
-\subsection{Method Invocation on Chares}
+\subsubsection{Method Invocation on Chares}
 
 Before sending a \index{message}message to a \index{chare}chare via an
 \index{entry method}entry method, we need to get a \index{proxy}{\it proxy} of
index b32023a66d61636c16ad0f207e447b45af9b40a0..ea72fa88ff896145c249b301e52b2c244910270d 100644 (file)
@@ -1,13 +1,13 @@
-\chapter{Further Information}
+\section{Further Information}
 
-\section{Related Publications}
+\subsection{Related Publications}
 \label{publications}
 
 For starters, see the publications and reports as well
 as related manuals that can be found on the Parallel Programming
 Laboratory website: \texttt{http://charm.cs.uiuc.edu/}. 
 
-\section{Associated Tools and Libraries}
+\subsection{Associated Tools and Libraries}
 
 Several tools and libraries are provided for \charmpp{}. \projections{} 
 is an automatic performance analysis tool which provides
@@ -17,7 +17,7 @@ libraries is to reduce the time needed to develop parallel
 applications with the help of a set of efficient and re-usable modules.
 Most of the libraries have been described in a separate manual.
 
-\subsection{\projections}
+\subsubsection{\projections}
 
 \projections{} is a performance visualization and feedback tool. The system has
 a much more refined understanding of user computation than is possible in
@@ -32,7 +32,7 @@ separate units, and automatically analyzes each individual partition.
 Future versions will be able to provide recommendations/suggestions for
 improving performance as well.
 
-\subsection{Communication}
+\subsubsection{Communication}
 
 Communication optimizations tend to be specific to a particular architecture or
 an application. To improve portability and to reduce the cost of developing
@@ -46,7 +46,7 @@ communication patterns. It also provides the capability to do dynamic switching
 of strategies. This helps the library to adapt itself to the existing
 environment.
 
-\section{Contacts}
+\subsection{Contacts}
 \label{Distribution}
 
 While we can promise neither bug-free software nor immediate solutions   
index fcf6c5d6cbf2f5f77e28b3b7bb53888e717ffc34..9164e7e4efe0e2bd444d887b35258bc94e46ec6f 100644 (file)
@@ -1,4 +1,4 @@
-\section{Group Objects}
+\subsection{Group Objects}
 
 A \kw{group}\footnote{Originally called {\em Branch Office Chare} or 
 {\em Branched Chare}} \index{group}is a collection of chares where 
@@ -38,7 +38,7 @@ messages to all branches of a group.  There can be many instances corresponding
 to a group type.  Each instance has a different group handle, and its own set
 of branches.
 
-\subsection{Group Creation}
+\subsubsection{Group Creation}
 
 Given a \texttt{.ci} file as follows:
 
@@ -71,7 +71,7 @@ CkGroupID gid = CProxy_G::ckNew(m1);
 CProxy_G g(gid);
 \end{alltt}
 
-\subsection{Method Invocation on Groups}
+\subsubsection{Method Invocation on Groups}
 
 Before sending a message to a \index{group}group via an entry
 method, we need to get a proxy of that group using the group identifier (a
index 1720f7ac62e2a4a53dd98098a892db11db256f51..e96bf3d327c23241026bf3b719c93d033142ac79 100644 (file)
@@ -1,4 +1,4 @@
-\chapter{Inheritance and Templates in Charm++}
+\section{Inheritance and Templates in Charm++}
 \label{inheritance and templates}
 
 \charmpp\ supports inheritance among \charmpp\ objects such as
@@ -6,7 +6,7 @@ chares, groups, and messages. This, along with facilities for generic
 programming using \CC\ style templates for \charmpp\ objects, is a
 major enhancement over the previous versions of \charmpp.
 
-\section{Chare Inheritance}
+\subsection{Chare Inheritance}
 \index{inheritance}
 
 Chare inheritance makes it possible to remotely invoke methods of a base
@@ -92,7 +92,7 @@ with the chareID of the concrete derived chare. Invoking methods on this proxy
 object would invoke those methods remotely on the concrete derived class
 instance.
 
-\section{Inheritance for Messages}
+\subsection{Inheritance for Messages}
 \index{message inheritance}
 
 Similar to Chares, messages can also be derived from base messages. One needs
@@ -101,7 +101,7 @@ inheritance specification (that is, without the \kw{public} access specifier.)
 Message inheritance makes it possible to send a message of derived type to the
 method expecting a base class message.
 
-\section{Generic Programming Using Templates}
+\subsection{Generic Programming Using Templates}
 \index{templates}
 
 One can write ``templated'' code for Chares, Groups, Messages and other
index a28bcb223239fed03146e606f55236dffeab3d65..6563a230724abf08cfd357229fb0be5075d314dc 100644 (file)
@@ -1,4 +1,4 @@
-\chapter{Introduction}
+\section{Introduction}
 
 This manual describes \charmpp, an object oriented portable parallel
 programming language based on \CC. Its program structure, execution
@@ -44,7 +44,7 @@ run without changing the source on all these platforms.  Please see the
 \charmpp{}/\converse{} Installation and Usage Manual for details about
 installing, compiling and running \charmpp\ programs.
 
-\section{Overview}
+\subsection{Overview}
 
 \charmpp\ is an object oriented parallel language. What sets \charmpp\ apart
 from traditional programming models such as message passing and shared variable
@@ -100,7 +100,7 @@ can simplify otherwise arduous parallel programming tasks.
 The following sections provide detailed information about various features of
 \charmpp\ programming system.
 
-\section{History}
+\subsection{History}
 
 The {\sc Charm} software was developed as a group effort of the Parallel
 Programming Laboratory at the University of Illinois at Urbana-Champaign.
index b9238a690474c4dd486919e91c7f76dc6aa07cba..362bd731f9d367c5a213edfd8bee24b91262c6d1 100644 (file)
@@ -1,4 +1,4 @@
-\section{Terminal I/O}
+\subsection{Terminal I/O}
 
 \index{input/output}
 \charmpp\ provides both C and \CC\ style methods of doing terminal I/O.  
index 2c58053db5f2a12136db66eeb1448e2a1bbbf685..21d45a689e1ac61a2e4728f2fc6250632102cf58 100644 (file)
@@ -1,4 +1,4 @@
-\documentclass[10pt]{report}
+\documentclass[10pt]{article}
 
 \usepackage{../pplmanual}
 \input{../pplmanual}
@@ -58,7 +58,7 @@ for the changes to the system since the last release.
 
 \input{overview}
 
-\chapter{The \charmpp\ Language}
+\section{The \charmpp\ Language}
   \input{modules}      
   \input{messages}
   \input{seqobjs}
index 5260cc2265679e9905b6f60d376b895912e4881f..9d6d80b3afe1d198088be56a12c5ad5f0ed3cf02 100644 (file)
@@ -1,4 +1,4 @@
-\section{Messages}
+\subsection{Messages}
 
 In \charmpp, \index{chare}chares, \index{group}groups and \index{nodegroup}
 nodegroups communicate using messages. Sending a message \index{message} to an
@@ -54,7 +54,7 @@ is generated by the charm translator. Then message definition has the form:
 \end{alltt}
 
 
-\subsection{Message Creation and Deletion}
+\subsubsection{Message Creation and Deletion}
 \label{memory allocation}
 
 \index{message}Messages are allocated using the \CC\ \kw{new} operator:
@@ -116,7 +116,7 @@ runtime system.  It may be reused or deleted by the programmer.  Messages can
 be deleted using the standard \CC{} \kw{delete} operator.  
 
 
-\subsection{Message Packing}
+\subsubsection{Message Packing}
 \label{message packing}
 \index{message packing}
 \index{packed messages}
@@ -260,7 +260,7 @@ itself should be declared to be a flat struct.  This will allow the \CC\
 compiler to ensure proper alignment of all its member fields.
 
 
-\subsection{Variable Size Messages}
+\subsubsection{Variable Size Messages}
 \label{varsize messages}
 \index{variable size messages}
 \index{varsize message}
@@ -333,7 +333,7 @@ class VarsizeMessage : public CMessage_VarsizeMessage \{
 \}; 
 \end{alltt}
 
-\subsubsection{An Example}
+\bf{An Example}
 
 Suppose a \charmpp\ message contains two varsize fields:
 
@@ -466,7 +466,7 @@ p->secondArray[4] = 6.7;
 
 No special handling is needed for deleting \kw{varsize} message.
 
-\subsection{Prioritized Execution}
+\subsubsection{Prioritized Execution}
 \label{prioritized message passing}
 \index{prioritized execution}
 \index{prioritized message passing}
@@ -622,7 +622,7 @@ delivery order} you specify.
 However, it makes a serious attempt to be ``close'', so priorities
 can strongly affect the efficiency of your program.
 
-\subsection{Entry Method Attributes}
+\subsubsection{Entry Method Attributes}
 \label{attributes}
 
 \charmpp{}  provides a handful of special attributes that \index{entry
index 8b40742bc69e68fe5e2fe476e2ecda1c4d3d1759..429a3893216e522bf82b711e35f89627493f26a7 100644 (file)
@@ -1,6 +1,6 @@
-\section{Modules}
+\subsection{Modules}
 
-\subsection{Structure of a \charmpp\ Program}
+\subsubsection{Structure of a \charmpp\ Program}
 
 A \charmpp\ program is structurally similar to a \CC{} program.  Most of a
 \charmpp\ program {\em is} \CC{} code \footnote{\bf Constraint: The \CC{} code
@@ -133,7 +133,7 @@ will then print ``Hello World...'' and then call the \uw{Wait} method of
 called it (i.e., they have finished printing ``Hello World...''), and the
 \charmpp program exits.
 
-\subsection{Functions in the ``decl.h'' and ``def.h'' files}
+\subsubsection{Functions in the ``decl.h'' and ``def.h'' files}
 
 The \texttt{decl.h} file provides declarations for the proxy classes of the
 concurrent objects declared in the ``.ci'' file (from which the \texttt{decl.h}
index f37b90acd4bdb1652ca969287a13634cbf34e16f..cfaa25dddd1888894772695414c5add4b9475a9f 100644 (file)
@@ -1,4 +1,4 @@
-\section{Nodegroup Objects}
+\subsection{Nodegroup Objects}
 
 {\it Node groups}\experimental{} \index{node groups} \index{nodegroup} are very
 similar to the group objects already discussed in that node groups are
@@ -56,7 +56,7 @@ group type, and each instance has a different group handle, and its own set of
 branches.
 
 
-\subsection{Method Invocation on Nodegroups}
+\subsubsection{Method Invocation on Nodegroups}
 
 Methods can be invoked either on a particular \index{branch}branch of a
 \index{nodegroup}nodegroup by specifying a {\em node number} as a method
index 7eee614ba153b34483906ced0716b2fbcc0d99e8..e628bb3862ae947b478caeccbbec35f19d3223d1 100644 (file)
@@ -1,4 +1,4 @@
-\section{Other Calls}
+\subsection{Other Calls}
 
 \label{other Charm++ calls}
 
index 268f86884284c8b5dcdbf0a903f9a241e0da8f96..1ab3ad1266dfeba29f17f1f30b76323cd513246e 100644 (file)
@@ -1,4 +1,4 @@
-\chapter{\charmpp{} Overview}
+\section{\charmpp{} Overview}
 
 We think that \charmpp\ is easy to use if you are familiar with object-based
 programming. (But of course that is our opinion, if your opinion differs, you
@@ -52,7 +52,7 @@ some differences among the features they support, but the basic syntax and
 semantics almost always remains the same, and that is of invoking methods on
 the remote object by invoking methods on proxies.
 
-\section{\charmpp\ Execution Model}
+\subsection{\charmpp\ Execution Model}
 
 A \charmpp\ program consists of a number of \charmpp\ objects distributed
 across the available number of processors. Thus, the basic unit of parallel
@@ -132,11 +132,11 @@ processed and no entry methods are called after the currently executing entry
 method completes. \kw{CkExit} need not be called on all processors; it is
 enough to call it from just one processor at the end of the computation.
 
-\section{Entities in \charmpp\ programs}
+\subsection{Entities in \charmpp\ programs}
 
 This section describes various entities in a typical \charmpp\ program.
 
-\subsection{Sequential Objects}
+\subsubsection{Sequential Objects}
 
 A \charmpp\ program typically contains a number of sequential objects. These
 objects are similar to the objects in \CC, except that they {\em should not
@@ -151,7 +151,7 @@ their methods could be synchronously invoked only from the local processor.
 These objects are not known to the \charmpp\ runtime system, and thus they need
 not be mentioned in the module interface files.
 
-\subsection{Messages}
+\subsubsection{Messages}
 
 Messages supply data arguments to the asynchronous remote method invocation.
 These objects are treated differently from other objects in \charmpp\ by the
@@ -168,7 +168,7 @@ Varsize messages is an effective optimization on conditionally packed messages,
 and have to be made known to the \charmpp\ runtime using a special keyword in
 the interface file.
 
-\subsection{Chares}
+\subsubsection{Chares}
 
 Chares are the most important entities in a \charmpp\ program. These concurrent
 objects are different from sequential \CC\ objects in many ways. Syntactically,
@@ -188,7 +188,7 @@ have its constuctors as entry methods (with at most one message pointer
 parameter). These chares and their entry methods have to be specified in the
 interface file.
 
-\subsection{Chare Groups}
+\subsubsection{Chare Groups}
 
 Chare Groups\footnote{ These were called Branch Office Chares (BOC) in earlier
 version of Charm.} are a special type of concurrent objects.  Each chare group
@@ -202,7 +202,7 @@ class called \kw{Group}. The Charm kernel has to be notified that these chares
 are semantically different, and therefore chare groups have a different
 declaration in the interface specification file.
 
-\subsection{Chare Nodegroups}
+\subsubsection{Chare Nodegroups}
 
 Chare nodegroups are very similar to chare groups except that instead of having
 one groupmember on each processor, the nodegroup has one member on each shared
@@ -224,7 +224,7 @@ problems by allowing the programmer to specify an entry method of a nodegroup
 to be {\em exclusive}, thus guaranteeing that no other {\em exclusive} method
 of that nodegroup member can execute simultaneously within the node.
 
-\subsection{Chare Arrays}
+\subsubsection{Chare Arrays}
 
 Chare arrays are collections of chares. However unlike chare groups or
 nodegroups, arrays are not constrained by characteristics of the underlying
index b1becb3678fee90e8b251d140987b68edf1482d1..6f03b6bea400dcd6c8c5c097696d1f176a089359 100644 (file)
@@ -1,4 +1,4 @@
-\section{Quiescence Detection}
+\subsection{Quiescence Detection}
 
 In \charmpp, \index{quiescence}quiescence is defined as the state in which no
 processor is executing an entry point, and no messages are awaiting processing.
index e602b9941b44223877248aee2cd7e5f7e900d39a..d6c3948adc12270c896ff8c36ee47611f827eed6 100644 (file)
@@ -1,4 +1,4 @@
-\section{Read-only Variables, Messages and Arrays}
+\subsection{Read-only Variables, Messages and Arrays}
 
 Since \charmpp\ does not allow global variables for keeping programs portable
 across a wide range of machines, it provides a special mechanism for sharing
index 3b796eafdc84bf4a859f013fffebd45262eaa953..e91fc8f349bfec71fe570a189db7cf3ce40fc132 100644 (file)
@@ -1,4 +1,4 @@
-\chapter{Structured Dagger}
+\section{Structured Dagger}
 
 \charmpp\ is based on the Message-Driven parallel programming paradigm.  The
 message-drivern programming style avoids the use of blocking receives and
@@ -167,9 +167,9 @@ interface file. The implementation of the entry methods that contain the
 when-block is written using the \sdag\ language. Grammar of \sdag\ is given in
 the EBNF form below.
 
-\section{Grammar}
+\subsection{Grammar}
 
-\subsection{Tokens}
+\subsubsection{Tokens}
 
 \begin{alltt}
   <ident> = Valid \CC{} identifier 
@@ -177,7 +177,7 @@ the EBNF form below.
   <\CC{}-code> = Valid \CC{} code 
 \end{alltt}
 
-\subsection{Grammar in EBNF Form}
+\subsubsection{Grammar in EBNF Form}
 
 \begin{alltt}
 <sdag> := <class-decl> <sdagentry>+ 
index cb7f03e099aeb54deb306d5cb8c64ddfd36c668e..ef323b77d85e8cc712a632e1d528df16b79f2450 100644 (file)
@@ -1,4 +1,4 @@
-\section{Sequential Objects}
+\subsection{Sequential Objects}
 \index{sequential objects} 
 
 These are the same as \CC{} classes and functions.  All \CC{} features can