0

I want to measure scalability and performances of one mpi program I wrote. Till now I used the MPI_Barrier function and the stopwatch library in order to count the time. The thing is that the computation time depends a lot on the current use of my cpu and ram so all the time I get different results. Moreover my program runs on a virtual machine vmware which I need in order to use Unix. I wanted to ask...how can I have an objective measure of the times? I want to see if my program has a good scalability or not.

Jonathan Dursi
  • 50,107
  • 9
  • 127
  • 158
user73793
  • 151
  • 8
  • Ultimately, you can only get sensible results if what you're measuring is what you want to know about. If you want to find out how it would scale on bare metal on large system but what you're measuring is timing within a VM on a shared, small system, you're never going to get useful information. – Jonathan Dursi Jun 04 '14 at 20:21
  • I would suggest to use a tool to analyze the performance of your program instead of implementing it yourself. There are many open source and commercial tools available. You can find a non exhaustive listing in [this answer](http://stackoverflow.com/a/18205748/620382) – Zulan Jun 06 '14 at 14:26

1 Answers1

1

In general, the way most people measure time in their MPI programs is to use MPI_WTIME since it's supposed to be a portable way to get the system time. That will give you a decent realtime result.

If you're looking to measure CPU time instead of real time, that's a very different and much more difficult problem. Usually the way most people handle that is to run their benchmarks on an otherwise quiet system.

Wesley Bland
  • 8,816
  • 3
  • 44
  • 59