-
Notifications
You must be signed in to change notification settings - Fork 64
FAQ
See GettingStarted. Are you running Debian Lenny? (Ubuntu or other Debian flavors don’t count.) Have you installed all of the dependencies (PIN, boost, etc.)? If so, shoot us an email!
Configuration is contained in the file “carbon_sim.cfg” in the root directory. There are lot of options, and it can be overwhelming. Some of the options are obvious (cache size), while others may not be obvious at all or have obscure implications. Unfortunately, the best way to find this out currently is to search the source to see where the option is used:
| $ git grep [option-name] |
How do I view the simulation outputs (e.g, cache miss rate, network latencies, instruction count, etc)?
Graphite writes all simulation outputs to a directory which can configured using the parameter “general/output_dir” in the file “carbon_sim.cfg” (by default, this directory is “./output_files”). Look at “sim.out” in this output directory to view the simulation outputs.
Graphite requires no source code modification, but it does require the application to be built in a specific way. Also note that new applications have the potential to expose hitherto unknown bugs in Graphite, such as unimplemented syscall emulation.
If you want to use our test infrastructure, the simplest place to start is to look at the makefile for one of the current application or unit tests. “/tests/apps/hello_world/Makefile”, for example. If you want to see a more complicated example of how to integrate with another projects make system, look at the makefiles for the SPLASH2 benchmarks (e.g., “/tests/benchmarks/fmm/Makefile”).
If you want to approach the problem from the opposite direction, you modify your own makefiles to support Graphite. This approach is much less tested, however. A good start is to look at the build flags passed when building an existing benchmark, say by executing:
| $ make hello_world_app_test$ |
In particular, the application must be built statically and linked with our library (libcarbon_sim.a). Other libraries, such as the Pin threading library (libos-services.a) and boost may need to be added. You must also force definition of certain symbols in the output binary so that they are available to Graphite at runtime, specifically “CarbonStartSim” and “CarbonStopSim” by passing “-u CarbonStartSim -u CarbonStopSim” to the link line.