manual: added a section on MeshStreamer
[charm.git] / doc / charm++ / manual.tex
1 \documentclass[10pt]{article}
2
3 \usepackage{../pplmanual} \input{../pplmanual} \usepackage{html}
4 \usepackage{listings}
5 %sadly latex2html does not understand listings
6 %this hack will at least give you the program listing instead of garbage
7 \begin{htmlonly}
8   \usepackage{verbatim}
9   \providecommand{\lstinputlisting}[2][]{\verbatiminput{#2}}
10   \providecommand{\lstset}[2][]{}
11 \end{htmlonly}
12
13
14 \title{The\\ \charmpp\\ Programming Language\\ Manual} \version{6.0
15   (Release 1)} \credits{ {\small The Charm software was developed as a
16     group effort.  The earliest prototype, Chare Kernel(1.0), was
17     developed by Wennie Shu and Kevin Nomura working with Laxmikant
18     Kale.  The second prototype, Chare Kernel(2.0), a complete
19     re-write with major design changes, was developed by a team
20     consisting of Wayne Fenton, Balkrishna Ramkumar, Vikram Saletore,
21     Amitabh B. Sinha and Laxmikant Kale. The translator for Chare
22     Kernel(2.0) was written by Manish Gupta.  Charm(3.0), with
23     significant design changes, was developed by a team consisting of
24     Attila Gursoy, Balkrishna Ramkumar, Amitabh B.  Sinha and
25     Laxmikant Kale, with a new translator written by Nimish Shah.  The
26     \charmpp\ implementation was done by Sanjeev Krishnan.  Charm(4.0)
27     included \charmpp\ and was released in fall 1993.  Charm(4.5) was
28     developed by Attila Gursoy, Sanjeev Krishnan, Milind Bhandarkar,
29     Joshua Yelon, Narain Jagathesan and Laxmikant Kale.  Charm(4.8),
30     developed by the same team included Converse, a parallel runtime
31     system that allows interoperability among modules written using
32     different paradigms within a single application. \charmpp\ runtime
33     system was re-targetted at Converse. Syntactic extensions in
34     \charmpp\ were dropped, and a simple interface translator was
35     developed (by Sanjeev Krishnan and Jay DeSouza) that, along with
36     the \charmpp\ runtime, became the \charmpp\ language.  Charm
37     (5.4R1) included the following: a complete rewrite of the
38     \charmpp\ runtime system (using \CC) and the interface translator
39     (done by Milind Bhandarkar), several new features such as Chare
40     Arrays (developed by Robert Brunner and Orion Lawlor), various
41     libraries (written by Terry Wilmarth, Gengbin Zheng, Laxmikant
42     Kale, Zehra Sura, Milind Bhandarkar, Robert Brunner, and Krishnan
43     Varadarajan.) A coordination language ``Structured Dagger'' was
44     been implemented on top of \charmpp\ (Milind Bhandarkar), dynamic
45     seed-based load balancing (Terry Wilmarth and Joshua Yelon), a
46     client-server interface for Converse programs, and debugging
47     support by Parthasarathy Ramachandran, Jeff Wright, and Milind
48     Bhandarkar, Projections, the performance visualization and
49     analysis tool, was redesigned and rewritten using Java by Michael
50     Denardo. The test suite for \charmpp\ was developed by Michael
51     Lang, Jackie Wang, and Fang Hu. Converse was been ported to ASCI
52     Red (Joshua Yelon), Cray T3E (Robert Brunner), and SGI Origin2000
53     (Milind Bhandarkar). For the current version Charm 6.0 (R1),
54     Converse has been ported to new platforms including BlueGene/[LP]
55     (Kumar, Huang, Bhatele), Cray XT3/4 (Zheng), Apple G5, Myrinet
56     (Zheng), and Infiniband (Chakravorty).  Charm 6.0 introduces a
57     dedicated no network SMP multicore Converse layer for stand-alone
58     workstation experimenters (Zheng, Chakravorty, Kale, Jetley).
59     Charm 6.0 also includes cross platform network topology aware
60     chare placement for 3D tori and mesh networks (Kumar, Huang,
61     Bhatele, Bohm). The test suite was extended for automated testing
62     on all supported platforms by Gengbin Zheng.  The Projection tool
63     was substantially improved by Chee Wai Lee and Isaac Dooley. The
64     Control Point performance tuning framework was created by Isaac
65     Dooley. Debugging support was enhanced with memory inspection
66     features by Filippo Gioachin. The Charisma orchestration language
67     was implemented on top of Charm++ by Chao Huang and Sanjay Kale.
68     Sanjay Kale, Orion Lawlor, Gengbin Zheng, Terry Wilmarth, Filippo
69     Gioachin, Sayantan Chakravorty, Chao Huang, David Kunzman, Isaac
70     Dooley, Eric Bohm, Sameer Kumar, Chao Mei, Pritish Jetley, and
71     Abhinav Bhatele, have been responsible for the changes to the
72     system since the last release.  } }
73
74 \begin{document}
75
76 \maketitle
77
78 \input{intro}
79
80 \input{overview}
81
82 \section{The \charmpp\ Language}
83   \input{modules}       
84   \input{entry}
85   \input{marshalling}   
86   \input{messages}
87   \input{order.tex}
88   \input{chares}
89   \input{readonly}    
90   \input{arrays}
91   \input{groups}
92   \input{nodegroups}
93   \input{loadb}
94   \input{advancedlb}
95   \input{futures}
96   \input{quiesce}
97   \input{reductions}
98   \input{callbacks}
99   \input{pup}
100   \input{io}
101   \input{othercalls}    
102   \input{delegation}    
103   \input{commlib}
104   \input{alltoall}
105   \input{python}
106 \input{inhertmplt}
107
108 \input{msa.tex}
109
110 \input{checkpoint}
111
112 \input{controlpoints}
113
114
115 \appendix
116
117 \input{sdag}
118
119 \input{further}
120
121 \input{index}
122
123 \end{document}