use cmireduce during recovery
[charm.git] / doc / bigsim / manual.tex
1 \documentclass[10pt]{article}
2 \usepackage{../pplmanual}
3 \input{../pplmanual}
4
5 \title{BigSim Parallel Simulator for Extremely Large Parallel Machines}
6 \version{1.01}
7         \credits{The Charm++ BigSim Emulator was developed by Arun Singla,
8 Neelam Saboo and Joshua Unger under the guidance of Prof. L. V. Kale. The new
9 Converse BigSim Emulator was completely rewritten by Gengbin Zheng. The
10 Converse BigSim Emulator is the only version under maintenance now. Charm++ and
11 Adaptive MPI (AMPI) were ported onto the BigSim Emulator by Gengbin Zheng. The
12 parallel performance simulator was developed by Gengbin Zheng and Gunavardhan
13 Kakulapati. A postmortem network simulator was developed by Terry Wilmarth,
14 Eric Bohm and Gengbin Zheng}
15
16 \begin{document}
17 \maketitle
18
19 \section{Introduction}
20
21 %One approach for building the next generation of parallel computers
22 %is based on large aggregates of multiprocessor chips with support
23 %for hardware multithreading. 
24 %An initial design for IBM's Blue Gene/C project exemplifies this approach.
25 %Blue Gene/C was a proposed one million processor machine from IBM.
26
27 Parallel machines with an extremely large number of processors are now
28 being designed and built. For example, the BlueGene/L (BG/L) machine
29 built by IBM has 64,000 dual-processor nodes with 360 teraflops of
30 peak performance. Another more radical design from IBM,
31 code-named Cyclops (BlueGene/C), had over one million floating point units,
32 fed by 8 million instructions streams supported by individual thread units,
33 targeting 1 petaflops of peak performance.
34
35
36 It is important that one can study the programming issues and performance
37 of parallel applications on such machines even before the machine is built.
38 Thus, we have developed a parallel simulator -- BigSim, to facilitate this research.
39
40 Since our research was initiated by the BlueGene/C project, in previous
41 editions of this manual we also called our simulator as Blue Gene Simulator.
42 Our simulator is capable of simulating a broad class of "Massively Parallel
43 Processors-In-Memory", or MPPIM machines. 
44
45 \subsection{Simulator system components}
46
47 Our simulator system includes these components: 
48 \begin{enumerate}
49 \item a parallel emulator which emulates a low level machine API targeting an architecture like BlueGene; 
50 \item a message driven programming language (Charm++) running on top of the emulator; 
51 \item the Adaptive MPI (an implementation of MPI on top of Charm++) environment; 
52 \item a parallel post-mortem mode simulator for performance prediction, including network simulation. 
53 \end{enumerate}
54
55 \subsection{History}
56         The first version of the BlueGene emulator was written in Charm++, a
57 parallel object language, in fall 2001.  The second version of the BlueGene
58 emulator was completely rewritten on top of Converse instead of Charm++ in
59 spring 2002.  While the API supported by the original emulator remains almost
60 the same, many new features were added.
61 % - support of thread-committed messages that 
62 %can be send to a specific thread in a Blue Gene node; support of Blue Gene
63 %node level broadcast.
64 The new emulator was implemented on a portable low layer communication library
65 - Converse, in order to achieve better performance by avoiding the cross layer
66 overhead.
67 %Another advantage is that the lighter weighted emulator makes it easier to
68 %port higher level of programming language onto the emulator.
69
70         Charm++ was ported to the emulator in 2002, providing the first
71 parallel language model on top of the emulator.
72
73 A performance simulation capability was added to the emulator in spring 2003.
74 The new simulator was renamed to BigSim at the same time.
75 During the same year, we developed a POSE-based postmortem mode network
76 simulator called BigNetSim. In fall 2006, we renamed BigNetSim as simply
77 BigSim simulator.
78
79 In the following sections, we will first describe how to download and compile
80 the BigSim system (Section~\ref{install}). Section~\ref{bgemulator} describes
81 the BigSim Emulator and the low level machine API in detail. 
82
83
84 \input{install}
85
86 \input{emulator}
87
88 % \input{simulator}
89
90 \input{interpolation}
91
92 \input{bgapi}
93
94 \input{index}
95
96 \end{document}
97