Using dual SMP CPU nodes in Beowulf/HPC clusters is a good way to add extra processors at a low cost. Often times however, the amount of work that is delivered by the extra CPU is unknown. As almost all clusters utilize a batch system where both CPUs may be used independently, the issue of efficiency becomes important. The overall efficiency of a parallel program is a complex problem to solve and is made more difficult when it does not have exclusive use of a compute node. In this report, we will take a first look at memory contention issues.
To measure the effect of two programs running on a dual node we can measure the time it takes for a single copy of a program and then measure the time it takes for two copies of the same program to run concurrently. If the program scales perfectly then the times should be identical. If the program does not scale perfectly the time should be between one and two times the single program time. A speedup measure can be calculated as follows:
Where CTIME1 is the time for running program copy1 concurrently with copy2 of the program, CTIME2 is the time for running program copy2 concurrently with copy1 of the program, and STIME is the time to run one copy of the program.
From this equation we see that if CTIME1=CTIME2=STIME (perfect speed up) we get a speedup of 2. If (CTIME1+CTIME2)=2*STIME (no speedup) we get an answer of 1 which indicates no speed-up.