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