Enable support for building mpi-win-x86_64-gcc
[charm.git] / doc / charm++ / history.tex
blob8e1158d90d4b57b2ced4e0e0ec75d1a3049fcb9e
1 The {\sc Charm} software was developed as a group effort of the Parallel
2 Programming Laboratory at the University of Illinois at Urbana-Champaign.
3 Researchers at the Parallel Programming Laboratory keep \charmpp\ updated for
4 the new machines, new programming paradigms, and for supporting and simplifying
5 development of emerging applications for parallel processing. The earliest
6 prototype, Chare Kernel(1.0), was developed in the late eighties. It consisted
7 only of basic remote method invocation constructs available as a library. The
8 second prototype, Chare Kernel(2.0), a complete re-write with major design
9 changes. This included C language extensions to denote Chares, messages and
10 asynchronous remote method invocation. {\sc Charm}(3.0) improved on this
11 syntax, and contained important features such as information sharing
12 abstractions, and chare groups (called Branch Office Chares). {\sc Charm}(4.0)
13 included \charmpp\ and was released in fall 1993. \charmpp\ in its initial
14 version consisted of syntactic changes to \CC\ and employed a special
15 translator that parsed the entire \CC\ code while translating the syntactic
16 extensions. {\sc Charm}(4.5) had a major change that resulted from a
17 significant shift in the research agenda of the Parallel Programming
18 Laboratory. The message-driven runtime system code of the \charmpp\ was
19 separated from the actual language implementation, resulting in an
20 interoperable parallel runtime system called {\sc
21 Converse}. The \charmpp\ runtime system was
22 retargetted on top of {\sc Converse}, and popular programming paradigms such as
23 MPI and PVM were also implemented on {\sc Converse}. This allowed
24 interoperability between these paradigms and \charmpp. This release also
25 eliminated the full-fledged \charmpp\ translator by replacing syntactic
26 extensions to \CC\ with \CC\ macros, and instead contained a small language and
27 a translator for describing the interfaces of \charmpp\ entities to the runtime
28 system. This version of \charmpp, which, in earlier releases was known as {\em
29 Interface Translator \charmpp}, is the default version of \charmpp\ now, and
30 hence referred simply as {\bf \charmpp}. In early 1999, the runtime system of
31 \charmpp\
32 %was formally named the Charm Kernel, and
33 was rewritten in \CC.
34 Several new features were added. The interface language underwent significant
35 changes, and the macros that replaced the syntactic extensions in original
36 \charmpp, were replaced by natural \CC\ constructs. Late 1999, and early
37 2000 reflected several additions to \charmpp{}, when a load balancing
38 framework and migratable objects were added to \charmpp{}.