b9033b0461f1a03fbbc0e10099c2642456317d72
[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 for 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 Topology}
97 \index{topomanager}
98 \index{cputopology}
99 \label{topo}
100   \input{topology}
101
102 \chapter{Checkpoint/Restart-Based Fault Tolerance}
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{Expert-Level Functionality}
114
115 \chapter{Tuning and Developing Load Balancers}
116 \label{advancedlb}
117   \input{advancedlb}
118
119 \chapter{Dynamic Code Injection}
120 \label{python}
121   \input{python}
122
123 \chapter{Intercepting Messages via Delegation}
124 \index{Delegation}
125 \label{delegation}
126   \input{delegation}
127
128 % TO BE MOVED TO ITS OWN MANUAL
129 %\input{msa.tex}
130
131
132 \part{Experimental Features}
133
134 \chapter{Control Point Automatic Tuning}
135 \index{Control Point Automatic Tuning}
136 \label{sec:controlpoint}
137   \input{controlpoints}
138
139 \chapter{Support for Loop-level Parallelism}
140 \index{ckloop}
141 \label{sec:ckloop}
142 \input{ckloop}
143
144 \chapter{Charm-MPI Interoperation}
145 \index{MPI Interoperation}
146 \label{sec:interop}
147   \input{mpi-interop}
148
149 \part{Appendix}
150 \appendix
151
152 % TO BE MOVED TO ITS OWN MANUAL
153 %\input{quickbigsim}
154
155 \chapter{Installing \charm}
156 \label{sec:install}
157   \index{build}
158   \input{install}
159
160 \chapter{Compiling \charm Programs}
161 \label{sec:compile}
162   \index{charmc}
163   \input{compile}
164
165 \chapter{Running \charm Programs}
166 \label{sec:run}
167   \index{charmrun}
168   \input{run}
169
170 \chapter{Performance Tracing for Analysis}
171 \index{projections}
172 \label{sec:trace-projections}
173   \input{../projections/tracing}
174
175
176 \chapter{History}
177   \input{history}
178
179 \chapter {Acknowledgements}
180   \input{credits}
181
182 \input{index}
183
184 \end{document}