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. Any software, not in processor-dependent instructions, could have a consistent performance on different processor architectures. LAIPE 2 is one of them, with no special instructions but only in a standard programming language. It could expect a consistent performance. This post uses timing results to show it.
TESTING EXAMPLE
Perform [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).
This example calls the LAIPE2 subroutine laipe$matmul_4 and links against the library neuloop4 for homogeneous soft core computing, with the optimization option -O3. GFORTRAN, a Fortran compiler, did the compilation.
COMPUTER 1
Computer: a Dell PowerEdge R815 with quad Opteron 6168, 48 cores.
Operating System: Core of Windows Server 2008 R2
COMPUTER 2
Computer: a Dell PoweEdge R810 with quad Intel Xeon L7555, 32 physical cores. Because L7555 can run at a higher frequency when using two or fewer cores, this example disabled the processor's turbo boost to measure speedup. Further, it also disabled the logical core (e.g., hyper-threading) for the same purpose.
Operating System: Core of Windows Server 2008 R2
SPEEDUP AND PARALLEL EFFICIENCY ON AMD OPTERON First, let us see a performance on AMD Opteron. The computer has 48 cores. The table below listed speedup and parallel efficiency. From the table, we can see one to twenty cores can yield an almost perfect speedup; 35 cores yield efficiency of 90%; 48 cores can speed up the computation to 39x. Matrix multiplication is a good example of parallel computing. This post appends the detailed timing results for reference.
SPEEDUP AND PARALLEL EFFICIENCY ON INTEL XEON Next, let us see the performance of Intel Xeon. The computer has 32 physical cores. The table below lists speedup and parallel efficiency. It also shows an example of high performance of efficiency, consistent with results on AMD Opteron. Twenty-eight cores speeded the computation up to 27x, 97% parallel performance, which is almost perfect; Thirty-two cores improved the computing speed up to 28x and yielded a parallel efficiency of 87%. The performance was consistent with the one on AMD Opteron. This post appends the detailed timing results 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 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||