b97bfa5160f906063b404a5869f90790d18b2c51
[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{Programming and Execution Model}
23 \input{intro}
24 \input{overview}
25
26 \chapter{Machine Model}
27 node, PE, ranks?, smp-mode and non-smp mode terminology. etc.
28
29 \input{machineModel}
30
31 \part{Basic Usage}
32
33 \chapter{Program Structure, Compilation and Utilities}
34   \input{modules}       
35   \input{utilities}
36   \input{helloworld}
37
38 \chapter{Basic Syntax}
39   \input{marshalling}   
40   \input{chares}
41   \input{readonly}
42
43 \chapter{Chare Arrays}
44   \input{arrays}
45
46 \chapter{Structured Control Flow: Structured Dagger}
47 \label{sec:sdag}
48   \input{sdag}
49
50 \chapter{Serialization Using the PUP Framework}
51   \input{pup}
52
53 \chapter{Load Balancing}
54 \label{loadbalancing}
55   \input{loadb}
56
57 \chapter{Processor-Aware Chare Collections}
58   \input{groups}
59   \input{nodegroups}
60
61 \chapter{Initializations at Program Startup}
62   \input{startuporder}
63
64 \part{Advanced Usage}
65
66 \chapter{Optimizing Entry Method Invocation}
67   \input{messages}
68   \input{entry}
69   \input{order}
70
71 \chapter{Callbacks}
72   \input{callbacks}
73
74 \chapter{Waiting on Completion}
75   \section{Asynchronous Barriers}
76   \section{Threaded Entry Methods}
77   \section{Sync Entry Methods}
78   \input{futures}
79   \input{quiesce}
80
81 \chapter{More Chare Array Features}
82 \label{advanced arrays}
83   \input{advancedarrays}
84
85 \chapter{Chare Array Sections}
86 \label{array section}
87   \input{sections}
88
89 \chapter{Chare Inheritance and Templates}
90 \label{inheritance and templates}
91   \input{inhertmplt}
92
93 \chapter{Collectives}
94   \input{reductions}
95   \input{alltoall}
96
97 \chapter{Serializing Complex Types}
98   \input{advancedpup}
99
100 \chapter{Querying Network / Node Topology}
101 \index{topomanager}
102 \index{cputopology}
103 \label{topo}
104   \input{topology}
105
106 \chapter{Checkpoint/Restart}
107 \index{Checkpoint/Restart}
108 \label{sec:checkpoint}
109   \input{checkpoint}
110
111 \chapter{Managing Hardware Heterogeneity}
112 \index{accel}
113 \label{sec:hetero}
114   \input{hetero}
115
116 \chapter{Performance Tracing for Analysis}
117 \index{projections}
118 \label{sec:trace-projections}
119   \input{tracing}
120
121
122 \part{Expert Usage}
123
124 \chapter{Tuning and Developing Load Balancers}
125 \label{advancedlb}
126   \input{advancedlb}
127
128 \chapter{Dynamic Code Injection}
129 \label{python}
130   \input{python}
131
132 \chapter{Intercepting Messages via Delegation}
133 \index{Delegation}
134 \label{delegation}
135   \input{delegation}
136
137 % TO BE MOVED TO ITS OWN MANUAL
138 %\input{msa.tex}
139
140
141 \part{Experimental Features}
142
143 \chapter{Control Point Automatic Tuning}
144 \index{Control Point Automatic Tuning}
145 \label{sec:controlpoint}
146   \input{controlpoints}
147
148 \chapter{Loop-level Parallelism}
149 \index{ckloop}
150 \label{sec:ckloop}
151   \input{ckloop}
152
153 \part{Appendix}
154 \appendix
155
156 % TO BE MOVED TO ITS OWN MANUAL
157 %\input{quickbigsim}
158
159 \chapter{Further Information}
160   \input{further}
161
162 \chapter{History}
163   \input{history}
164
165 \chapter {Acknowledgements}
166   \input{credits}
167
168 \input{index}
169
170 \end{document}