Run multiple applications simultaneously

537 views
Skip to first unread message

Yatish Turakhia

unread,
Jul 13, 2012, 4:29:22 PM7/13/12
to snip...@googlegroups.com
Hi,

Is it possible to run multiple multi-threaded applications on sniper? Also can we get traces of each thread of a multi-threaded workload?


Thanks in advance.

Trevor E. Carlson

unread,
Jul 19, 2012, 2:57:11 PM7/19/12
to snip...@googlegroups.com
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
--
--
You received this message because you are subscribed to the Google
Groups "Sniper simulator" group.
To post to this group, send email to snip...@googlegroups.com
To unsubscribe from this group, send email to
snipersim+...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/snipersim?hl=en


Yatish Turakhia

unread,
Aug 4, 2012, 12:31:14 PM8/4/12
to snip...@googlegroups.com
Hi Trevor,

Thank you for your reply. I needed the traces to only have a copy for
future use.

I tried this new feature in Sniper but I have a question. How is it
that the instruction counts when I schedule 2 different benchmarks so
different from the case when I schedule benchmarks individually with
same number of threads? I tried fft with n=2 and radix with n=2 and
then both simultaneously but got really high counts for the latter
case. How are the threads being scheduled? Can you please explain?

Besides is there a possibility of having MPI support anytime soon?

Thanks again

-Yatish

Wim Heirman

unread,
Aug 7, 2012, 6:14:14 AM8/7/12
to snip...@googlegroups.com
Hi Yatish,

Note that the ROI markers are ignored in multi/multi mode. We have not
yet implemented a way to send ROI begin/end through the trace, and
also, it's an open question of how different ROI begins and ends of
multiple applications should be combined. Therefore, if you're running
multiple multi-threaded workloads, you'll see all instructions of each
application, not just the ROI. In contrast, when using the Pin
frontend for a single multi-threaded workload, the ROI does work
properly and you'll only see the parallel part. This might account for
the difference in instruction counts you're seeing.

Regarding MPI support, we have been debating this internally whether
to add support for this (and what would be the additional research
questions this will allow us to answer), we haven't reached a
conclusion yet. What is the use case you're targeting, is it to run
multiple single-threaded MPI ranks of one application on a single
simulated machine, or something else?

Regards,
Wim

Adwait Jog

unread,
Aug 9, 2012, 5:59:55 PM8/9/12
to snip...@googlegroups.com, wim.h...@elis.ugent.be
Is it possible to run SPEC and PARSEC together with this methodology?
Also, it will be great if you can provide binaries of SPEC benchmarks 
which runs on 64 bit Sniper built. (just a suggestion, like Multi2Sim

Thanks
Adwait
Reply all
Reply to author
Forward
0 new messages