doc: cleanup section on entry methods
authorRamprasad Venkataraman <ramv@illinois.edu>
Tue, 24 Jul 2012 19:27:10 +0000 (14:27 -0500)
committerRamprasad Venkataraman <ramv@illinois.edu>
Tue, 24 Jul 2012 19:36:34 +0000 (14:36 -0500)
Shovel some text over into ch 2. WIP

doc/charm++/marshalling.tex
doc/charm++/overview.tex

index 1ff2206c9873a8fa67fb66575da21e23c17d7cb3..4a16be8b8697944d9b64f674e9f13bd3a0ea0090 100644 (file)
@@ -1,42 +1,27 @@
 \subsection{Entry Methods}
-
 \label{entry}
 
-In \charmpp, \index{chare}chares, \index{group}groups and \index{nodegroup}
-nodegroups communicate using remote method invocation.  These ``remote entry'' methods may either take marshalled parameters, described in the next section; or special objects called messages.  Messages are lower level, more efficient, more flexible, and more difficult to use than parameter marshalling.
-
-An entry method is always a part of a chare--
-there are no global entry methods in \charmpp{}.
-Entry methods are declared in the the interface file as:
-
+Member functions in the user program which function as entry methods have to be
+defined in public scope within the class definition.
+Entry methods typically do not return data and have a ``void'' return type.
+An entry method with the same name as its enclosing class is a constructor entry method
+and is used to create or spawn chare objects during execution.
+Class member functions are annotated as entry methods by declaring them in the
+the interface file as:
 \begin{alltt}
 entry void \uw{Entry1}(\uw{parameters});
 \end{alltt}
 
-\uw{Parameters} is either a list of marshalled parameters,
-(e.g., ``int i, double x''), or a message description (e.g.,
-``MyMessage *msg'').  See section~\ref{marshalling} and
-section~\ref{messages} for details on these types of
-parameters.
-
-Entry methods typically do not return data-- in \CC, they have
-return type ``void''.  An entry method with the same name
-as its enclosing class is a constructor.  Constructors in \CC
-have no return type.  Finally, sync methods, described below,
-may return a message.
-
-\subsection{Entry Method Invocation}
+\uw{Parameters} is either a list of serializable parameters, (e.g., ``int i,
+double x''), or a message type (e.g., ``MyMessage *msg'').
+Since parameters get marshalled into a message before being sent across the
+network, in this manual we use ``message'' to mean either a message type or a
+set of marshalled parameters.
 
-\label{marshalling}
+%Constructors in \CC have no return type.
+%Finally, sync methods, described below, may return a message.
 
-In \charmpp, \index{chare}chares, \index{group}groups and \index{nodegroup}
-nodegroups communicate by invoking each others methods. 
-The methods may either take several parameters, described here; 
-or take a special message object as described in the next section.
-Since parameters get marshalled into a message before being
-sent across the network, in this manual we use ``message''
-to mean either a literal message object or a set of marshalled
-parameters.
+Messages are lower level, more efficient, more flexible to use than parameter marshalling.
 
 For example, a chare could have this entry method declaration in 
 the interface ({\tt .ci}) file:
@@ -44,7 +29,7 @@ the interface ({\tt .ci}) file:
   entry void foo(int i,int k);
 \end{alltt}
 Then invoking foo(2,3) on the chare proxy will eventually
-invoke foo(2,3) on the remote chare.
+invoke foo(2,3) on the chare object.
 
 Since \charmpp\ runs on distributed memory machines, we cannot
 pass an array via a pointer in the usual \CC\ way.  Instead,
index e29ae90536698288962f786cb6ef52804751061a..96531deb9f5c2b278364b1f8a2b17d6921a25921 100644 (file)
@@ -1,9 +1,10 @@
-\section{Basic Constructs and Program Structure}
+\section{Basic Constructs}
 
-\charmpp\ is an object oriented parallel language. What sets \charmpp\ apart
-from traditional programming models such as message passing and shared variable
-programming is that the execution model of \charmpp\ is message-driven.
-Therefore, computations in \charmpp\ are triggered based on arrival of
+\charmpp\ is an object-based parallel programming paradigm.
+%What sets \charmpp\ apart
+%from traditional programming models such as message passing and shared variable
+%programming is that the execution model of \charmpp\ is message-driven.
+Computations in \charmpp\ are triggered based on arrival of
 associated messages. These computations in turn can fire off more messages to
 other (possibly remote) processors that trigger more computations on those
 processors.
@@ -224,3 +225,14 @@ 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.
 
+\subsubsection{Entry Methods}
+In \charmpp, \index{chare}chares, \index{group}groups and \index{nodegroup}
+nodegroups communicate using remote method invocation.  These ``remote entry'' methods may either take marshalled parameters, described in the next section; or special objects called messages.
+
+\charm programs are open to the full gamut of program design techniques that are possible in
+\CC. One may view the role of the programming model as providing a platform for
+addressing and interacting with remote objects.
+However, \charmpp does not provide a full global address space. Each process in
+the parallel execution has its own address space and \charmpp does not
+implicitly share or synchronize global or static variables.
+