Equation Solution High Performance by Design |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
LAIPE2 Exhibits a Consistent Performance On Intel and AMD Processors
[Posted by Jenn-Ching Luo on July 23, 2016 ]
A consistent performance of LAIPE2 on Intel Xeon and AMD Opteron could be predictable. Generally, any software, not in any special instructions, could have a consistent performance on different processor architectures. LAIPE 2 is one of them, without any special instructions. A consistent performance could be expected. This post uses timing results to show it.
TESTING EXAMPLE
Compute [C]=[A][B], where matrices [A], [B] and [C] are 4-byte real matrix. Matrix [A] is of order (15,000-by-11,000), and matrix [B] is of order (11,000-by-12,000), and matrix [C] is of order (15,000-by-12,000).
The LAIPE2 subroutine laipe$matmul_4 is called to perform the computation. gfortran is the compiler for the executable. The compilation option included -O3, and the executable was linked against neuloop4. neuloop4 is a library for homogeneous soft core computing.
COMPUTER 1
Computer: a Dell PowerEdge R815 with quad Opteron 6168, a total of 48 cores.
Operating System: Core of Windows Server 2008 R2
COMPUTER 2
Computer: a Dell PoweEdge R810 with quad Intel Xeon L7555, a total of 32 physical cores. Because L7555 can run at a higher frequency when using 2 or less cores, processor's turbo boost was disabled for the purpose to measure speedup. Further, logical core (e.g., hyper-threading) was also disabled for the same purpose.
Operating System: Core of Windows Server 2008 R2
SPEEDUP AND PARALLEL EFFICIENCY ON AMD OPTERON First, let us see performance on AMD Opteron. The computer has 48 cores. Speedup and parallel efficiency are listed in the table below. From the table, we can see one to twenty cores can yield an almost perfect speedup; 35 cores yields an efficiency 90%; 48 cores can speed up the computation to 39x. Matrix multiplication is a good example of parallel computing. The detailed timing results are appended in this post for reference.
SPEEDUP AND PARALLEL EFFICIENCY ON INTEL XEON Next, let us see performance on Inten Xeon. The computer has 32 physical cores. Speedup and parallel efficiency are listed in the table below. It also shows a performance of high efficiency, consistent to results on AMD Opteron. On 28 cores, the computation was speeded up to 27x, 97% parallel performance, which is almost perfect; 32 cores improved the computing up to 28x, and yielded a parallel efficiency 87%. The performance was consistent to the one on AMD Opteron. The detailed timing results are appended in this post for reference.
TIMING RESULTS ON AMD OPTERON The following has detailed timing results implemented on AMD Opteron.
number of cores: 1
Elapsed Time (Seconds): 3493.63 CPU Time in User Mode (Seconds): 3491.97 CPU Time in Kernel Mode (Seconds): 1.31 Total CPU Time (Seconds): 3493.28 number of cores: 2 Elapsed Time (Seconds): 1730.18 CPU Time in User Mode (Seconds): 3452.29 CPU Time in Kernel Mode (Seconds): 0.16 Total CPU Time (Seconds): 3452.44 number of cores: 3 Elapsed Time (Seconds): 1151.58 CPU Time in User Mode (Seconds): 3452.69 CPU Time in Kernel Mode (Seconds): 0.36 Total CPU Time (Seconds): 3453.05 number of cores: 4 Elapsed Time (Seconds): 865.85 CPU Time in User Mode (Seconds): 3453.10 CPU Time in Kernel Mode (Seconds): 0.41 Total CPU Time (Seconds): 3453.50 number of cores: 5 Elapsed Time (Seconds): 691.38 CPU Time in User Mode (Seconds): 3454.36 CPU Time in Kernel Mode (Seconds): 0.44 Total CPU Time (Seconds): 3454.80 number of cores: 6 Elapsed Time (Seconds): 580.70 CPU Time in User Mode (Seconds): 3456.53 CPU Time in Kernel Mode (Seconds): 0.44 Total CPU Time (Seconds): 3456.97 number of cores: 7 Elapsed Time (Seconds): 497.99 CPU Time in User Mode (Seconds): 3460.30 CPU Time in Kernel Mode (Seconds): 0.31 Total CPU Time (Seconds): 3460.62 number of cores: 8 Elapsed Time (Seconds): 434.81 CPU Time in User Mode (Seconds): 3463.38 CPU Time in Kernel Mode (Seconds): 0.70 Total CPU Time (Seconds): 3464.08 number of cores: 9 Elapsed Time (Seconds): 387.62 CPU Time in User Mode (Seconds): 3468.37 CPU Time in Kernel Mode (Seconds): 0.30 Total CPU Time (Seconds): 3468.67 number of cores: 10 Elapsed Time (Seconds): 350.72 CPU Time in User Mode (Seconds): 3472.94 CPU Time in Kernel Mode (Seconds): 0.53 Total CPU Time (Seconds): 3473.47 number of cores: 11 Elapsed Time (Seconds): 323.08 CPU Time in User Mode (Seconds): 3479.23 CPU Time in Kernel Mode (Seconds): 0.45 Total CPU Time (Seconds): 3479.68 number of cores: 12 Elapsed Time (Seconds): 295.59 CPU Time in User Mode (Seconds): 3488.31 CPU Time in Kernel Mode (Seconds): 0.50 Total CPU Time (Seconds): 3488.81 number of cores: 13 Elapsed Time (Seconds): 271.01 CPU Time in User Mode (Seconds): 3483.75 CPU Time in Kernel Mode (Seconds): 0.51 Total CPU Time (Seconds): 3484.27 number of cores: 14 Elapsed Time (Seconds): 254.64 CPU Time in User Mode (Seconds): 3505.55 CPU Time in Kernel Mode (Seconds): 0.39 Total CPU Time (Seconds): 3505.94 number of cores: 15 Elapsed Time (Seconds): 238.63 CPU Time in User Mode (Seconds): 3529.73 CPU Time in Kernel Mode (Seconds): 0.62 Total CPU Time (Seconds): 3530.35 number of cores: 16 Elapsed Time (Seconds): 225.39 CPU Time in User Mode (Seconds): 3536.64 CPU Time in Kernel Mode (Seconds): 0.78 Total CPU Time (Seconds): 3537.42 number of cores: 17 Elapsed Time (Seconds): 214.50 CPU Time in User Mode (Seconds): 3565.95 CPU Time in Kernel Mode (Seconds): 0.73 Total CPU Time (Seconds): 3566.68 number of cores: 18 Elapsed Time (Seconds): 201.57 CPU Time in User Mode (Seconds): 3550.77 CPU Time in Kernel Mode (Seconds): 0.44 Total CPU Time (Seconds): 3551.21 number of cores: 19 Elapsed Time (Seconds): 192.85 CPU Time in User Mode (Seconds): 3573.61 CPU Time in Kernel Mode (Seconds): 0.81 Total CPU Time (Seconds): 3574.42 number of cores: 20 Elapsed Time (Seconds): 183.69 CPU Time in User Mode (Seconds): 3577.45 CPU Time in Kernel Mode (Seconds): 0.64 Total CPU Time (Seconds): 3578.09 number of cores: 21 Elapsed Time (Seconds): 175.14 CPU Time in User Mode (Seconds): 3585.39 CPU Time in Kernel Mode (Seconds): 0.78 Total CPU Time (Seconds): 3586.17 number of cores: 22 Elapsed Time (Seconds): 169.01 CPU Time in User Mode (Seconds): 3603.50 CPU Time in Kernel Mode (Seconds): 1.01 Total CPU Time (Seconds): 3604.51 number of cores: 23 Elapsed Time (Seconds): 161.34 CPU Time in User Mode (Seconds): 3605.79 CPU Time in Kernel Mode (Seconds): 0.86 Total CPU Time (Seconds): 3606.65 number of cores: 24 Elapsed Time (Seconds): 156.10 CPU Time in User Mode (Seconds): 3608.88 CPU Time in Kernel Mode (Seconds): 0.86 Total CPU Time (Seconds): 3609.74 number of cores: 25 Elapsed Time (Seconds): 148.01 CPU Time in User Mode (Seconds): 3621.45 CPU Time in Kernel Mode (Seconds): 0.86 Total CPU Time (Seconds): 3622.31 number of cores: 26 Elapsed Time (Seconds): 144.46 CPU Time in User Mode (Seconds): 3626.06 CPU Time in Kernel Mode (Seconds): 0.81 Total CPU Time (Seconds): 3626.87 number of cores: 27 Elapsed Time (Seconds): 138.31 CPU Time in User Mode (Seconds): 3626.41 CPU Time in Kernel Mode (Seconds): 0.97 Total CPU Time (Seconds): 3627.38 number of cores: 28 Elapsed Time (Seconds): 135.66 CPU Time in User Mode (Seconds): 3641.73 CPU Time in Kernel Mode (Seconds): 1.08 Total CPU Time (Seconds): 3642.81 number of cores: 29 Elapsed Time (Seconds): 129.12 CPU Time in User Mode (Seconds): 3646.65 CPU Time in Kernel Mode (Seconds): 0.83 Total CPU Time (Seconds): 3647.48 number of cores: 30 Elapsed Time (Seconds): 127.03 CPU Time in User Mode (Seconds): 3655.20 CPU Time in Kernel Mode (Seconds): 0.89 Total CPU Time (Seconds): 3656.09 number of cores: 31 Elapsed Time (Seconds): 123.46 CPU Time in User Mode (Seconds): 3669.52 CPU Time in Kernel Mode (Seconds): 1.03 Total CPU Time (Seconds): 3670.55 number of cores: 32 Elapsed Time (Seconds): 119.61 CPU Time in User Mode (Seconds): 3673.14 CPU Time in Kernel Mode (Seconds): 1.03 Total CPU Time (Seconds): 3674.17 number of cores: 33 Elapsed Time (Seconds): 116.50 CPU Time in User Mode (Seconds): 3688.46 CPU Time in Kernel Mode (Seconds): 0.98 Total CPU Time (Seconds): 3689.44 number of cores: 34 Elapsed Time (Seconds): 114.44 CPU Time in User Mode (Seconds): 3695.40 CPU Time in Kernel Mode (Seconds): 0.76 Total CPU Time (Seconds): 3696.16 number of cores: 35 Elapsed Time (Seconds): 110.90 CPU Time in User Mode (Seconds): 3707.72 CPU Time in Kernel Mode (Seconds): 0.80 Total CPU Time (Seconds): 3708.52 number of cores: 36 Elapsed Time (Seconds): 108.17 CPU Time in User Mode (Seconds): 3725.34 CPU Time in Kernel Mode (Seconds): 0.90 Total CPU Time (Seconds): 3726.24 number of cores: 37 Elapsed Time (Seconds): 105.57 CPU Time in User Mode (Seconds): 3745.55 CPU Time in Kernel Mode (Seconds): 1.00 Total CPU Time (Seconds): 3746.55 number of cores: 38 Elapsed Time (Seconds): 103.37 CPU Time in User Mode (Seconds): 3757.44 CPU Time in Kernel Mode (Seconds): 1.05 Total CPU Time (Seconds): 3758.49 number of cores: 39 Elapsed Time (Seconds): 102.02 CPU Time in User Mode (Seconds): 3773.71 CPU Time in Kernel Mode (Seconds): 1.33 Total CPU Time (Seconds): 3775.04 number of cores: 40 Elapsed Time (Seconds): 100.34 CPU Time in User Mode (Seconds): 3801.43 CPU Time in Kernel Mode (Seconds): 0.98 Total CPU Time (Seconds): 3802.42 number of cores: 41 Elapsed Time (Seconds): 96.71 CPU Time in User Mode (Seconds): 3818.86 CPU Time in Kernel Mode (Seconds): 0.92 Total CPU Time (Seconds): 3819.78 number of cores: 42 Elapsed Time (Seconds): 96.21 CPU Time in User Mode (Seconds): 3843.96 CPU Time in Kernel Mode (Seconds): 1.15 Total CPU Time (Seconds): 3845.11 number of cores: 43 Elapsed Time (Seconds): 94.50 CPU Time in User Mode (Seconds): 3854.24 CPU Time in Kernel Mode (Seconds): 1.22 Total CPU Time (Seconds): 3855.46 number of cores: 44 Elapsed Time (Seconds): 92.76 CPU Time in User Mode (Seconds): 3879.04 CPU Time in Kernel Mode (Seconds): 1.29 Total CPU Time (Seconds): 3880.34 number of cores: 45 Elapsed Time (Seconds): 92.32 CPU Time in User Mode (Seconds): 3910.18 CPU Time in Kernel Mode (Seconds): 1.26 Total CPU Time (Seconds): 3911.44 number of cores: 46 Elapsed Time (Seconds): 90.62 CPU Time in User Mode (Seconds): 3942.27 CPU Time in Kernel Mode (Seconds): 1.31 Total CPU Time (Seconds): 3943.58 number of cores: 47 Elapsed Time (Seconds): 90.62 CPU Time in User Mode (Seconds): 3984.56 CPU Time in Kernel Mode (Seconds): 1.11 Total CPU Time (Seconds): 3985.67 number of cores: 48 Elapsed Time (Seconds): 88.58 CPU Time in User Mode (Seconds): 4025.09 CPU Time in Kernel Mode (Seconds): 1.12 Total CPU Time (Seconds): 4026.21 TIMING RESULTS ON INTEL XEON The following has detailed timing results implemented on Intel Xeon.
number of cores: 1
Elapsed Time (Seconds): 5678.17 CPU Time in User Mode (Seconds): 5677.11 CPU Time in Kernel Mode (Seconds): 0.72 Total CPU Time (Seconds): 5677.83 number of cores: 2 Elapsed Time (Seconds): 2839.25 CPU Time in User Mode (Seconds): 5677.53 CPU Time in Kernel Mode (Seconds): 0.30 Total CPU Time (Seconds): 5677.83 number of cores: 3 Elapsed Time (Seconds): 1896.50 CPU Time in User Mode (Seconds): 5678.12 CPU Time in Kernel Mode (Seconds): 0.27 Total CPU Time (Seconds): 5678.39 number of cores: 4 Elapsed Time (Seconds): 1420.37 CPU Time in User Mode (Seconds): 5679.28 CPU Time in Kernel Mode (Seconds): 0.41 Total CPU Time (Seconds): 5679.68 number of cores: 5 Elapsed Time (Seconds): 1136.58 CPU Time in User Mode (Seconds): 5680.54 CPU Time in Kernel Mode (Seconds): 0.41 Total CPU Time (Seconds): 5680.95 number of cores: 6 Elapsed Time (Seconds): 955.10 CPU Time in User Mode (Seconds): 5682.24 CPU Time in Kernel Mode (Seconds): 0.59 Total CPU Time (Seconds): 5682.84 number of cores: 7 Elapsed Time (Seconds): 820.92 CPU Time in User Mode (Seconds): 5694.96 CPU Time in Kernel Mode (Seconds): 0.64 Total CPU Time (Seconds): 5695.60 number of cores: 8 Elapsed Time (Seconds): 745.72 CPU Time in User Mode (Seconds): 5911.72 CPU Time in Kernel Mode (Seconds): 0.95 Total CPU Time (Seconds): 5912.67 number of cores: 9 Elapsed Time (Seconds): 643.60 CPU Time in User Mode (Seconds): 5737.51 CPU Time in Kernel Mode (Seconds): 0.56 Total CPU Time (Seconds): 5738.08 number of cores: 10 Elapsed Time (Seconds): 574.71 CPU Time in User Mode (Seconds): 5726.95 CPU Time in Kernel Mode (Seconds): 0.59 Total CPU Time (Seconds): 5727.55 number of cores: 11 Elapsed Time (Seconds): 548.58 CPU Time in User Mode (Seconds): 5964.87 CPU Time in Kernel Mode (Seconds): 0.55 Total CPU Time (Seconds): 5965.42 number of cores: 12 Elapsed Time (Seconds): 489.73 CPU Time in User Mode (Seconds): 5822.60 CPU Time in Kernel Mode (Seconds): 0.45 Total CPU Time (Seconds): 5823.05 number of cores: 13 Elapsed Time (Seconds): 457.27 CPU Time in User Mode (Seconds): 5874.45 CPU Time in Kernel Mode (Seconds): 0.62 Total CPU Time (Seconds): 5875.08 number of cores: 14 Elapsed Time (Seconds): 418.39 CPU Time in User Mode (Seconds): 5794.88 CPU Time in Kernel Mode (Seconds): 0.58 Total CPU Time (Seconds): 5795.45 number of cores: 15 Elapsed Time (Seconds): 406.26 CPU Time in User Mode (Seconds): 5994.48 CPU Time in Kernel Mode (Seconds): 0.51 Total CPU Time (Seconds): 5994.99 number of cores: 16 Elapsed Time (Seconds): 383.34 CPU Time in User Mode (Seconds): 6040.25 CPU Time in Kernel Mode (Seconds): 0.45 Total CPU Time (Seconds): 6040.70 number of cores: 17 Elapsed Time (Seconds): 357.17 CPU Time in User Mode (Seconds): 5978.49 CPU Time in Kernel Mode (Seconds): 0.51 Total CPU Time (Seconds): 5979.00 number of cores: 18 Elapsed Time (Seconds): 323.36 CPU Time in User Mode (Seconds): 5758.32 CPU Time in Kernel Mode (Seconds): 0.53 Total CPU Time (Seconds): 5758.85 number of cores: 19 Elapsed Time (Seconds): 325.95 CPU Time in User Mode (Seconds): 6084.05 CPU Time in Kernel Mode (Seconds): 0.53 Total CPU Time (Seconds): 6084.58 number of cores: 20 Elapsed Time (Seconds): 291.63 CPU Time in User Mode (Seconds): 5802.43 CPU Time in Kernel Mode (Seconds): 0.73 Total CPU Time (Seconds): 5803.16 number of cores: 21 Elapsed Time (Seconds): 277.24 CPU Time in User Mode (Seconds): 5759.42 CPU Time in Kernel Mode (Seconds): 0.76 Total CPU Time (Seconds): 5760.18 number of cores: 22 Elapsed Time (Seconds): 263.85 CPU Time in User Mode (Seconds): 5726.13 CPU Time in Kernel Mode (Seconds): 0.55 Total CPU Time (Seconds): 5726.67 number of cores: 23 Elapsed Time (Seconds): 255.29 CPU Time in User Mode (Seconds): 5791.99 CPU Time in Kernel Mode (Seconds): 0.67 Total CPU Time (Seconds): 5792.66 number of cores: 24 Elapsed Time (Seconds): 256.92 CPU Time in User Mode (Seconds): 6060.16 CPU Time in Kernel Mode (Seconds): 0.70 Total CPU Time (Seconds): 6060.86 number of cores: 25 Elapsed Time (Seconds): 240.10 CPU Time in User Mode (Seconds): 5938.63 CPU Time in Kernel Mode (Seconds): 0.66 Total CPU Time (Seconds): 5939.29 number of cores: 26 Elapsed Time (Seconds): 250.77 CPU Time in User Mode (Seconds): 6365.71 CPU Time in Kernel Mode (Seconds): 0.81 Total CPU Time (Seconds): 6366.53 number of cores: 27 Elapsed Time (Seconds): 243.02 CPU Time in User Mode (Seconds): 6399.21 CPU Time in Kernel Mode (Seconds): 0.90 Total CPU Time (Seconds): 6400.11 number of cores: 28 Elapsed Time (Seconds): 208.07 CPU Time in User Mode (Seconds): 5764.52 CPU Time in Kernel Mode (Seconds): 0.78 Total CPU Time (Seconds): 5765.30 number of cores: 29 Elapsed Time (Seconds): 224.42 CPU Time in User Mode (Seconds): 6353.00 CPU Time in Kernel Mode (Seconds): 0.61 Total CPU Time (Seconds): 6353.61 number of cores: 30 Elapsed Time (Seconds): 219.13 CPU Time in User Mode (Seconds): 6402.33 CPU Time in Kernel Mode (Seconds): 0.59 Total CPU Time (Seconds): 6402.92 number of cores: 31 Elapsed Time (Seconds): 213.16 CPU Time in User Mode (Seconds): 6407.62 CPU Time in Kernel Mode (Seconds): 0.67 Total CPU Time (Seconds): 6408.29 number of cores: 32 Elapsed Time (Seconds): 204.39 CPU Time in User Mode (Seconds): 6345.79 CPU Time in Kernel Mode (Seconds): 0.69 Total CPU Time (Seconds): 6346.48 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||