docs: added text for sync and threaded entry methods
[charm.git] / doc / charm++ / manual.tex
1 \documentclass[10pt]{report}
2
3 \usepackage{../pplmanual} \input{../pplmanual} \usepackage{html}
4 \usepackage{listings}
5 \usepackage{textcomp}
6 %sadly latex2html does not understand listings
7 %this hack will at least give you the program listing instead of garbage
8 \begin{htmlonly}
9   \usepackage{verbatim}
10   \providecommand{\lstinputlisting}[2][]{\verbatiminput{#2}}
11   \providecommand{\lstset}[2][]{}
12 \end{htmlonly}
13
14 \begin{document}
15
16 \title{The\\ \charm\\ Parallel Programming System\\ Manual}
17 \version{6.4.0}
18 \credits{\hspace{0 in}}
19 \maketitle
20
21
22 \chapter{Basic Concepts}
23 \input{intro}
24 \input{overview}
25 \input{machineModel}
26
27 \part{Basic \charm Programming}
28
29 \chapter{Program Structure, Compilation and Utilities}
30   \input{modules}       
31   \input{utilities}
32   \input{helloworld}
33
34 \chapter{Basic Syntax}
35   \input{marshalling}   
36   \input{chares}
37   \input{readonly}
38
39 \chapter{Chare Arrays}
40   \input{arrays}
41
42 \chapter{Structured Control Flow: Structured Dagger}
43 \label{sec:sdag}
44   \input{sdag}
45
46 \chapter{Serialization Using the PUP Framework}
47   \input{pup}
48
49 \chapter{Load Balancing}
50 \label{loadbalancing}
51   \input{loadb}
52
53 \chapter{Processor-Aware Chare Collections}
54   \input{groups}
55   \input{nodegroups}
56
57 \chapter{Initializations at Program Startup}
58   \input{startuporder}
59
60 \part{Advanced Programming Techniques}
61
62 \chapter{Optimizing Entry Method Invocation}
63   \input{messages}
64   \input{entry}
65   \input{order}
66
67 \chapter{Callbacks}
68   \input{callbacks}
69
70 \chapter{Waiting on Completion}
71   \section{Asynchronous Barriers}
72   \input{threaded}
73   \input{sync}
74   \input{futures}
75   \input{quiesce}
76
77 \chapter{More Chare Array Features}
78 \label{advanced arrays}
79   \input{advancedarrays}
80
81 \chapter{Sections: Subsets of a Chare Array}
82 \label{array section}
83   \input{sections}
84
85 \chapter{Chare Inheritance and Templates}
86 \label{inheritance and templates}
87   \input{inhertmplt}
88
89 \chapter{Collectives}
90   \input{reductions}
91 %  \input{alltoall} TO BE UPDATED WITH NDMESHSTREAMER INTERFACE
92
93 \chapter{Serializing Complex Types}
94   \input{advancedpup}
95
96 \chapter{Querying Network / Node Topology}
97 \index{topomanager}
98 \index{cputopology}
99 \label{topo}
100   \input{topology}
101
102 \chapter{Checkpoint/Restart}
103 \index{Checkpoint/Restart}
104 \label{sec:checkpoint}
105   \input{checkpoint}
106
107 \chapter{Managing Hardware Heterogeneity}
108 \index{accel}
109 \label{sec:hetero}
110   \input{hetero}
111
112
113 \part{Tools for the Development Cycle}
114
115 \chapter{Compiling \charm Programs}
116 \label{sec:compile}
117   \index{charmc}
118   \input{compile}
119
120 \chapter{Running \charm Programs}
121 \label{sec:run}
122   \index{charmrun}
123   \input{run}
124
125 \chapter{Performance Tracing for Analysis}
126 \index{projections}
127 \label{sec:trace-projections}
128   \input{../projections/tracing}
129
130
131 \part{Expert-Level Functionality}
132
133 \chapter{Tuning and Developing Load Balancers}
134 \label{advancedlb}
135   \input{advancedlb}
136
137 \chapter{Dynamic Code Injection}
138 \label{python}
139   \input{python}
140
141 \chapter{Intercepting Messages via Delegation}
142 \index{Delegation}
143 \label{delegation}
144   \input{delegation}
145
146 % TO BE MOVED TO ITS OWN MANUAL
147 %\input{msa.tex}
148
149
150 \part{Experimental Features}
151
152 \chapter{Control Point Automatic Tuning}
153 \index{Control Point Automatic Tuning}
154 \label{sec:controlpoint}
155   \input{controlpoints}
156
157 \chapter{Loop-level Parallelism}
158 \index{ckloop}
159 \label{sec:ckloop}
160   \input{ckloop}
161
162
163 \part{Appendix}
164 \appendix
165
166 % TO BE MOVED TO ITS OWN MANUAL
167 %\input{quickbigsim}
168
169 \chapter{History}
170   \input{history}
171
172 \chapter {Acknowledgements}
173   \input{credits}
174
175 \input{index}
176
177 \end{document}