*** empty log message ***
[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.00}
7 \credits{Charm++ Blue Gene Emulator was developed by Arun Singla, Neelam Saboo
8 and Joshua Unger under the guidance of Prof. L. V. Kale. The new Converse 
9 Blue Gene Emulator is completely rewritten by Gengbin Zheng. Converse Blue Gene 
10 Emulator is the only version under maintenance now. Charm++ and Adaptive MPI
11 (AMPI) was ported onto the Blue Gene Emulator by Gengbin Zheng. The parallel
12 performance simulator was developed by Gengbin Zheng and 
13 Gunavardhan Kakulapati. A postmortem network simulator was developed by 
14 Terry Wilmarth, 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 (BG/L) machine
29 being built by IBM will have 64,000 dual-processor nodes with 360 teraflops
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 Blue Gene/C project, in this manual, 
41 we also call 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 the low level machine API; 
50 \item a message driven programming language (Charm++) running on top of the emulator; 
51 \item adaptive MPI (an implementation of MPI on top of Charm++) environment; 
52 \item a parallel online mode simulator for performance prediction. 
53 \item a parallel postmoterm mode network simulator for performance prediction. 
54 \end{enumerate}
55
56 \subsection{History}
57
58 The first version of Blue Gene emulator was written in Charm++, a 
59 parallel object language in fall, 2001. 
60
61 The second version of Blue Gene emulator was completely rewritten on top 
62 of Converse instead of Charm++ in spring 2002. 
63 While the API supported by the original emulator remains almost same,
64 many new features were added.
65 % - support of thread-committed messages that 
66 %can be send to a specific thread in a Blue Gene node; support of Blue Gene 
67 %node level broadcast.
68 The new emulator was implemented on a portable low layer communication 
69 library - Converse in order to achieve better 
70 performance by avoiding the cross layer overhead.
71 %Another advantage is that the lighter weighted emulator makes it easier
72 %to port higher level of programming language onto the emulator.
73
74 Charm++ was soon ported to the emulator in 2002 which provided the
75  first parallel language model on top of the emulator.
76
77 A performance simulation capability was added to the emulator in spring 2003.
78 The new simulator was renamed to BigSim at the same time.
79 During the same year, we developed a POSE-based postmortem mode network
80 simulator called BigNetSim.
81
82
83 In the following sections, we will first describe how to download and compile
84 Blue Gene simulator(Section ~\ref{install}). Section~\ref{bgemulator} will describe
85 the low level machine API in detail. 
86
87
88 \input{install}
89 \input{emulator}
90 \input{simulator}
91 \input{bignetsim}
92 \input{bgapi}
93
94 \input{index}
95 \end{document}
96
97