Yatish,
Yes, it is possible to run multi-threaded applications in
Sniper. With the recently released 3.04 version of Sniper, and the
updated integrated benchmarks directory, we have enabled multiple
multi-threaded workload support. Our goal is to make it easy to
use, and are always open to suggestions for improvement.
Additionally, there are some things that we are not currently
doing. All of the SimAPI commands are not passed through the SIFT
format, and therefore ROI and other commands are not supported.
Ideally, we would like to synchronize on ROI-start between all of
the processes, but for now ROI is not supported and therefore we
start the timing simulator in detailed simulation.
To get things going, you'll need to download and compile both
Sniper [1] and the integrated benchmark suite [2]. We've
integrated it into the benchmarks directly because it can be
tedious to set up all of the configuration parameters manually for
multiple multi-threaded applications. Additionally, once you
integrate your own custom benchmarks into the the benchmark suite,
they will gain the ability to run as a collection of
multi-threaded benchmarks out of the box.
To run a number of multi-threaded benchmarks together, we
introduced a new parameter to $BENCHMARKS_ROOT/run-sniper named
--benchmarks, that
takes a comma separated list of benchmark configurations. In the
example below, we are starting a total of 2 application processes,
each with two threads, and we also are starting the standalone
Sniper process to perform the timing simulation.
$ cd
$BENCHMARKS_ROOT
$ ./run-sniper
--benchmarks=splash2-fft-test-2,splash2-fft-test-2.
In the example above,
splash2 is the benchmark suite name,
fft is the
benchmark name,
test
is the input size and
2 is the number of threads we want to spawn
for this application.
Currently, the output of the applications are printed out to
the screen directly, and the output of each application can
intermingle. The output of the Sniper timing simulator is
currently saved to tracerecorder.err/out.
Definitely tell us if you run into any issues as this is a new
feature.
Regarding your last question about tracing each thread of the
simulation, it should be technically possible but isn't currently
supported. What are you trying to accomplish with this? Did you
just want to have a copy of the traces to use later? The problem
is that the multi-threaded traces aren't typical SIFT traces, but
they have been extended with additional synchronization commands
required for accurate timing simulation.
Please tell us if you have any other questions or issues,
Trevor
[1]
http://snipersim.org/w/Getting_Started
[2]
http://snipersim.org/w/Download_Benchmarks