0

We've got a bunch of large (1TB+) NUMA machines at work and have been getting a lot of noise in benchmarking. We've noticed that run times for our application are very consistent from one run to the next when there is nothing else running on the machine but when there are other jobs, even minor seemingly insignificant jobs, entering the run state it can significantly impact the performance of our application. We suspect it may be due to on chip memory bus contention and we'd like to test this hypothesis. Our goal is not to maximize the performance of our application here but just to eliminate variability in it so that we can accurately measure the impact of performance optimizations.

Is there a way to specify to the OS that a job should run exclusively on a single processor chip? In our configuration, we have 8 processor chips each with 10 processor cores (the OS sees 80 processors) so we'd like for only one processor core to be used on each processor chip.

We're running SLES11u3 I think on this machine but also have access to RHEL5.8 (and SUSE10/RHEL4). We looked at taskset before but it only specifies affinity to a given processor without impacting the behavior of other jobs (and unfortunately, there are lots of little ones from the OS at a minimum).

dromodel
  • 287
  • 1
  • 4
  • 15
  • What chip? Your question is not clear and likely to be closed for that reason. – Ramhound Apr 25 '14 at 15:45
  • "Is there a way to specify to the OS that a job should run exclusively on a chip?" What kind of "chip" are you talking about? A CPU? RAM? Potato? Are you talking about preventing all processes expect one from using a logical CPU? – Ƭᴇcʜιᴇ007 Apr 25 '14 at 15:45
  • Related: [Set default processor affinity for all applications](http://superuser.com/questions/602837/set-default-processor-affinity-for-all-applications) – Ƭᴇcʜιᴇ007 Apr 25 '14 at 15:46
  • Edited to clarify – dromodel Apr 25 '14 at 16:12
  • Your benchmarking IS telling you something. It is telling you to expect non-uniform processing times on that architecture. You have to decide what you are going to test. Completing benchmarking on allocated resources only makes sense if you are going to continue to allocate those resources in exactly the same way... which might be unlikely if that is not already the desired architecture. – kmarsh Apr 25 '14 at 16:22
  • Or if you want to target the average performance. Unfortunately, the application takes too long to run (hours to days) to directly measure it. Let's try to stick to the question asked. Q&A doesn't lend itself well to side discussions from speculation about the question. – dromodel Apr 25 '14 at 17:40

0 Answers0