The BigSim Simulator is distributed as part of the Charm++ standard distribution. One needs to download Charm++ and compile the BigSim Simulator. This process should begin with downloading Charm++ from the website: http://charm.cs.uiuc.edu.
Please refer to ``Charm++ Installation and Usage Manual'' and also the file README in the source code for detailed instructions on how to compile Charm++. In short, the ``build'' script is the main tool for compiling CHARM++. One needs to provide target and platform selections:
./build <target> <platform> [options ...] [charmc-options ...]
For example, to compile on a Linux machine, one would type:
./build charm++ net-linux -O
which builds essential CHARM++ kernel using UDP sockets as the communication method; alternatively, it is possible to build the Charm++ kernel on MPI using:
./build charm++ mpi-linux -O
For other platforms, net-linux should be replaced by whatever platform is being used. See the charm/README file for a complete list of supported platforms.
The BigSim Emulator is implemented on top of Converse in Charm++. To compile the BigSim Emulator, one can compile Emulator libraries directly on top of normal CHARM++ using ``bigsim'' as the compilation target, like
./build bigsim net-linux -O
With Emulator libraries, one can write BigSim applications using its low level machine API.
In order to build Charm++ on top of BigSim Emulator (which itself is implemented on top of Converse), a special build option ``bigsim'' needs to be specified:
./build bigsim net-linux bigsim -O
The first ``bigsim'' is the compilation target that tells ``build'' to compile BigSim Emulator libraries in addition to CHARM++ kernel libraries. The second ``bigsim'' is a build option to platform ``net-linux'', which tells ``build'' to build Charm++ on top of the BigSim Emulator. To build AMPI on BigSim, one should use ``bgampi'' as the make target, which subsumes the target ``bigsim":
./build bgampi net-linux bigsim -O
The above ``build" command creates a directory named ``net-linux-bigsim" under charm, which contains all the header files and libraries needed for compiling a user application.
October 08, 2008
Charm Homepage