Equation Solution  
    High Performance by Design
 
Navigation Tree  
Home
'- - Programming Tools
'- - Parallel Computing
'- - Blog
'- - In-Situ Evaluation
'- - Numerical Analysis
'- - Structural Mechanics
|     '- - IFAS
|     '- - mCable
'- - Write Us
|     '- - Feedback  
|     '- - Info  
|     '- - Support  
|     '- - Webmaster  
'- - Privacy Policy
 


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.

Number
of Cores
Elapsed
Time (sec)
Speedup Efficiency
(%)
1 3493.63 1.0000 100.00
2 1730.18 2.0192 100.96
3 1151.58 3.0338 101.13
4 865.85 4.0349 100.87
5 691.38 5.0531 101.06
6 580.70 6.0162 100.27
7 497.99 7.0155 100.22
8 434.81 8.0348 100.43
9 387.62 9.0130 100.14
10 350.72 9.9613 99.61
11 323.08 10.8135 98.30
12 295.59 11.8192 98.46
13 271.01 12.8912 99.16
14 254.64 13.7199 98.00
15 238.63 14.6404 97.60
16 225.39 15.5004 96.88
17 214.50 16.2873 95.81
18 201.57 17.3321 96.29
19 192.85 18.1158 95.35
20 183.69 19.0192 95.10
21 175.14 19.9476 94.99
22 169.01 20.6711 93.96
23 161.34 21.6538 94.15
24 156.10 22.3807 93.25
25 148.01 23.6040 94.42
26 144.46 24.1841 93.02
27 138.31 25.2594 93.55
28 135.66 25.7528 91.97
29 129.12 27.0572 93.30
30 127.03 27.5024 91.67
31 123.46 28.2977 91.28
32 119.61 29.2085 91.28
33 116.50 29.9882 90.87
34 114.44 30.5280 89.79
35 110.90 31.5025 90.01
36 108.17 32.2976 89.72
37 105.57 33.0930 89.44
38 103.37 33.7973 88.94
39 102.02 34.2446 87.81
40 100.34 34.8179 87.04
41 96.71 36.1248 88.11
42 96.21 36.3125 86.46
43 94.50 36.9696 85.98
44 92.76 37.6631 85.60
45 92.32 37.8426 84.09
46 90.62 38.5525 83.81
47 90.62 38.5525 82.03
48 88.58 39.4404 82.17


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.

Number
of Cores
Elapsed
Time (sec)
Speedup Efficiency
(%)
1 5678.17 1.0000 100.00
2 2839.25 1.9999 99.99
3 1896.50 2.9940 99.80
4 1420.37 3.9977 99.94
5 1136.58 4.9958 99.92
6 955.10 5.9451 99.09
7 820.92 3.9168 98.81
8 745.72 7.6143 95.18
9 63.60 8.8225 98.03
10 574.71 9.8801 98.80
11 548.58 10.3507 94.10
12 489.73 11.5945 96.62
13 457.27 12.4175 95.52
14 418.39 13.5715 96.94
15 406.26 13.9767 93.18
16 383.34 14.8124 92.58
17 357.17 15.8977 93.52
18 323.36 17.5599 97.56
19 325.95 17.4204 91.69
20 291.63 19.4705 97.35
21 277.24 20.4811 97.53
22 263.85 21.5204 97.82
23 255.29 22.2420 96.70
24 256.92 22.1009 92.09
25 240.10 23.6492 94.60
26 250.77 22.6429 87.09
27 243.02 23.3650 86.54
28 208.07 27.2897 97.46
29 224.42 25.3015 87.25
30 219.13 25.9123 86.37
31 213.16 26.6381 85.93
32 204.39 27.7811 86.82


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