On Monday 06 October 2008 09:23:52 pm Przemyslaw Czerpak wrote:
> On Mon, 06 Oct 2008, Pritpal Bedi wrote:
>
> Hi Pritpal,
>
> > Here are attached the results on 2 computers  with different
> > number of processors and operating systems.
> > And below are attached those log files.
>
> Thank you very much.
> As I can see only Enrico can reach good scalability on Intel and
> Windows. Quite good results has also Maurilio with Intel and OS2.
> But all of them are much worse then in my
> AMD Phenom 8450 Triple-Core Processor.
> Please note that most of the test loop does not have even single
> internal lock and should be fully scalable to the number of CPUs.
> I begin to think that this test quite well show hardware scalability.
> The performance may strongly depend also on used mainboard.
>
> Has anyone else AMD multiprocessor system?
>
> Phil,
> I know that you have one :-)
> Can you build Harbour in this system and then compiler and run
> harbour/tests/speetst.prg f.e.:
>
>    hbmk -n -w -es2 -mt speedtst
>    ./speedtst --exclude=mem --scale --thread:2
>    ./speedtst --exclude=mem --scale --thread:4
>    ./speedtst --exclude=mem --scale --thread:6
>    ./speedtst --exclude=mem --scale --thread:8

Quad core Phenom 9600, 32 bit Fedora 9

[EMAIL PROTECTED] tests]$  ./speedtst --exclude=mem --scale 

10/07/08 00:26:04 Linux 2.6.26.3-29.fc9.i686 i686
Harbour 1.1.0dev (Rev. 9564) (MT) GNU C 4.3 (32 bit)
THREADS: 1                                          
N_LOOPS: 1000000                                    
excluded tests: 029 030 023 025 027 040 041 043 052 053 019 022 031 032 054
                                                        1 th.  1 th.  factor
============================================================================
[ T001: x := L_C ]____________________________________  0.14   0.14 ->  1.00
[ T002: x := L_N ]____________________________________  0.18   0.14 ->  1.27
[ T003: x := L_D ]____________________________________  0.14   0.14 ->  1.03
[ T004: x := S_C ]____________________________________  0.14   0.14 ->  1.01
[ T005: x := S_N ]____________________________________  0.14   0.18 ->  0.77
[ T006: x := S_D ]____________________________________  0.14   0.14 ->  1.00
[ T007: x := M_C ]____________________________________  0.16   0.15 ->  1.06
[ T008: x := M_N ]____________________________________  0.14   0.15 ->  0.92
[ T009: x := M_D ]____________________________________  0.14   0.14 ->  0.99
[ T010: x := P_C ]____________________________________  0.15   0.15 ->  0.98
[ T011: x := P_N ]____________________________________  0.14   0.14 ->  1.00
[ T012: x := P_D ]____________________________________  0.15   0.18 ->  0.85
[ T013: x := F_C ]____________________________________  0.28   0.27 ->  1.06
[ T014: x := F_N ]____________________________________  0.31   0.31 ->  1.01
[ T015: x := F_D ]____________________________________  0.18   0.18 ->  1.00
[ T016: x := o:GenCode ]______________________________  0.29   0.29 ->  1.01
[ T017: x := o[8] ]___________________________________  0.21   0.21 ->  1.00
[ T018: round( i / 1000, 2 ) ]________________________  0.44   0.43 ->  1.02
[ T020: val( s ) ]____________________________________  0.39   0.38 ->  1.00
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________  0.64   0.65 ->  0.97
[ T024: eval( bc := { || i % 16 } ) ]_________________  0.41   0.41 ->  0.99
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________  0.41   0.42 ->  0.98
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________  0.56   0.55 ->  1.02
[ T033: x := a[ i % 16 + 1 ] == s ]___________________  0.50   0.50 ->  0.99
[ T034: x := a[ i % 16 + 1 ] = s ]____________________  0.51   0.52 ->  0.97
[ T035: x := a[ i % 16 + 1 ] >= s ]___________________  0.49   0.50 ->  0.99
[ T036: x := a[ i % 16 + 1 ] <= s ]___________________  0.52   0.52 ->  0.99
[ T037: x := a[ i % 16 + 1 ] < s ]____________________  0.50   0.53 ->  0.94
[ T038: x := a[ i % 16 + 1 ] > s ]____________________  0.50   0.50 ->  1.00
[ T039: ascan( a, i % 16 ) ]__________________________  0.51   0.50 ->  1.01
[ T042: x := a ]______________________________________  0.15   0.15 ->  1.00
[ T044: f0() ]________________________________________  0.24   0.23 ->  1.04
[ T045: f1( i ) ]_____________________________________  0.31   0.30 ->  1.05
[ T046: f2( c[1...8] ) ]______________________________  0.30   0.29 ->  1.05
[ T047: f2( c[1...40000] ) ]__________________________  0.29   0.30 ->  0.97
[ T048: f2( @c[1...40000] ) ]_________________________  0.28   0.30 ->  0.94
[ T049: f2( @c[1...40000] ), c2 := c ]________________  0.36   0.37 ->  0.97
[ T050: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________  0.63   0.64 ->  0.99
[ T051: f2( a ) ]_____________________________________  0.29   0.31 ->  0.94
============================================================================
[   TOTAL   ]_________________________________________ 12.25  12.35 ->  0.99
============================================================================
[ total application time: ]....................................24.47        
[ total real time: ]...........................................24.61        

*************************************************************************************************************************

[EMAIL PROTECTED] tests]$  ./speedtst --exclude=mem --scale --thread=2          

10/07/08 00:27:00 Linux 2.6.26.3-29.fc9.i686 i686
Harbour 1.1.0dev (Rev. 9564) (MT)+ GNU C 4.3 (32 bit)
THREADS: 2
N_LOOPS: 1000000
excluded tests: 029 030 023 025 027 040 041 043 052 053 019 022 031 032 054
                                                        1 th.  2 th.  factor
============================================================================
[ T001: x := L_C ]____________________________________  0.29   0.47 ->  0.60
[ T002: x := L_N ]____________________________________  0.29   0.38 ->  0.76
[ T003: x := L_D ]____________________________________  0.30   0.39 ->  0.77
[ T004: x := S_C ]____________________________________  0.29   0.61 ->  0.47
[ T005: x := S_N ]____________________________________  0.27   0.38 ->  0.72
[ T006: x := S_D ]____________________________________  0.27   0.37 ->  0.73
[ T007: x := M_C ]____________________________________  0.30   0.48 ->  0.62
[ T008: x := M_N ]____________________________________  0.28   0.37 ->  0.76
[ T009: x := M_D ]____________________________________  0.28   0.38 ->  0.72
[ T010: x := P_C ]____________________________________  0.30   0.46 ->  0.65
[ T011: x := P_N ]____________________________________  0.27   0.41 ->  0.68
[ T012: x := P_D ]____________________________________  0.29   0.37 ->  0.79
[ T013: x := F_C ]____________________________________  0.54   0.62 ->  0.87
[ T014: x := F_N ]____________________________________  0.63   0.50 ->  1.26
[ T015: x := F_D ]____________________________________  0.38   0.40 ->  0.95
[ T016: x := o:GenCode ]______________________________  0.57   0.68 ->  0.84
[ T017: x := o[8] ]___________________________________  0.42   0.54 ->  0.77
[ T018: round( i / 1000, 2 ) ]________________________  0.85   0.82 ->  1.03
[ T020: val( s ) ]____________________________________  0.80   0.63 ->  1.26
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________  1.33   1.31 ->  1.02
[ T024: eval( bc := { || i % 16 } ) ]_________________  0.85   1.14 ->  0.74
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________  0.83   1.01 ->  0.81
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________  1.09   1.42 ->  0.77
[ T033: x := a[ i % 16 + 1 ] == s ]___________________  0.99   1.28 ->  0.77
[ T034: x := a[ i % 16 + 1 ] = s ]____________________  1.04   1.31 ->  0.80
[ T035: x := a[ i % 16 + 1 ] >= s ]___________________  1.04   1.30 ->  0.80
[ T036: x := a[ i % 16 + 1 ] <= s ]___________________  1.04   1.27 ->  0.82
[ T037: x := a[ i % 16 + 1 ] < s ]____________________  1.06   1.29 ->  0.82
[ T038: x := a[ i % 16 + 1 ] > s ]____________________  1.03   1.29 ->  0.79
[ T039: ascan( a, i % 16 ) ]__________________________  1.02   0.95 ->  1.07
[ T042: x := a ]______________________________________  0.32   0.53 ->  0.61
[ T044: f0() ]________________________________________  0.45   0.67 ->  0.68
[ T045: f1( i ) ]_____________________________________  0.65   0.79 ->  0.82
[ T046: f2( c[1...8] ) ]______________________________  0.58   0.88 ->  0.66
[ T047: f2( c[1...40000] ) ]__________________________  0.61   0.86 ->  0.71
[ T048: f2( @c[1...40000] ) ]_________________________  0.59   0.87 ->  0.68
[ T049: f2( @c[1...40000] ), c2 := c ]________________  0.72   1.05 ->  0.69
[ T050: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________  1.28   1.55 ->  0.82
[ T051: f2( a ) ]_____________________________________  0.60   0.88 ->  0.68
============================================================================
[   TOTAL   ]_________________________________________ 24.75  30.95 ->  0.80
============================================================================
[ total application time: ]....................................84.63
[ total real time: ]...........................................55.70

**************************************************************************************************************************

[EMAIL PROTECTED] tests]$  ./speedtst --exclude=mem --scale --thread=4

10/07/08 00:29:53 Linux 2.6.26.3-29.fc9.i686 i686
Harbour 1.1.0dev (Rev. 9564) (MT)+ GNU C 4.3 (32 bit)
THREADS: 4
N_LOOPS: 1000000
excluded tests: 029 030 023 025 027 040 041 043 052 053 019 022 031 032 054
                                                        1 th.  4 th.  factor
============================================================================
[ T001: x := L_C ]____________________________________  0.68   1.21 ->  0.56
[ T002: x := L_N ]____________________________________  0.69   1.00 ->  0.69
[ T003: x := L_D ]____________________________________  0.62   0.94 ->  0.66
[ T004: x := S_C ]____________________________________  0.58   1.53 ->  0.38
[ T005: x := S_N ]____________________________________  0.57   0.96 ->  0.60
[ T006: x := S_D ]____________________________________  0.57   0.97 ->  0.59
[ T007: x := M_C ]____________________________________  0.66   1.28 ->  0.51
[ T008: x := M_N ]____________________________________  0.61   1.07 ->  0.56
[ T009: x := M_D ]____________________________________  0.59   1.03 ->  0.57
[ T010: x := P_C ]____________________________________  0.61   1.08 ->  0.57
[ T011: x := P_N ]____________________________________  0.65   1.09 ->  0.60
[ T012: x := P_D ]____________________________________  0.67   1.01 ->  0.67
[ T013: x := F_C ]____________________________________  1.08   1.29 ->  0.84
[ T014: x := F_N ]____________________________________  1.26   0.95 ->  1.32
[ T015: x := F_D ]____________________________________  0.74   0.93 ->  0.80
[ T016: x := o:GenCode ]______________________________  1.19   1.55 ->  0.77
[ T017: x := o[8] ]___________________________________  0.86   1.34 ->  0.64
[ T018: round( i / 1000, 2 ) ]________________________  1.70   1.78 ->  0.95
[ T020: val( s ) ]____________________________________  1.63   1.45 ->  1.12
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________  2.63   2.84 ->  0.93
[ T024: eval( bc := { || i % 16 } ) ]_________________  1.72   2.72 ->  0.63
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________  1.73   2.37 ->  0.73
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________  2.33   3.37 ->  0.69
[ T033: x := a[ i % 16 + 1 ] == s ]___________________  2.06   3.10 ->  0.66
[ T034: x := a[ i % 16 + 1 ] = s ]____________________  2.17   3.09 ->  0.70
[ T035: x := a[ i % 16 + 1 ] >= s ]___________________  2.18   3.14 ->  0.69
[ T036: x := a[ i % 16 + 1 ] <= s ]___________________  2.11   3.16 ->  0.67
[ T037: x := a[ i % 16 + 1 ] < s ]____________________  2.10   3.25 ->  0.65
[ T038: x := a[ i % 16 + 1 ] > s ]____________________  2.10   3.05 ->  0.69
[ T039: ascan( a, i % 16 ) ]__________________________  2.16   2.01 ->  1.07
[ T042: x := a ]______________________________________  0.67   1.38 ->  0.49
[ T044: f0() ]________________________________________  1.02   1.63 ->  0.63
[ T045: f1( i ) ]_____________________________________  1.31   2.07 ->  0.63
[ T046: f2( c[1...8] ) ]______________________________  1.20   2.13 ->  0.56
[ T047: f2( c[1...40000] ) ]__________________________  1.21   2.13 ->  0.57
[ T048: f2( @c[1...40000] ) ]_________________________  1.25   2.15 ->  0.58
[ T049: f2( @c[1...40000] ), c2 := c ]________________  1.42   2.51 ->  0.57
[ T050: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________  2.55   4.07 ->  0.63
[ T051: f2( a ) ]_____________________________________  1.27   2.16 ->  0.59
============================================================================
[   TOTAL   ]_________________________________________ 51.13  74.80 ->  0.68
============================================================================
[ total application time: ]...................................331.97
[ total real time: ]..........................................125.94

**************************************************************************************************************************

[EMAIL PROTECTED] tests]$  ./speedtst --exclude=mem --scale --thread=6

10/07/08 00:33:21 Linux 2.6.26.3-29.fc9.i686 i686
Harbour 1.1.0dev (Rev. 9564) (MT)+ GNU C 4.3 (32 bit)
THREADS: 6
N_LOOPS: 1000000
excluded tests: 029 030 023 025 027 040 041 043 052 053 019 022 031 032 054
                                                        1 th.  6 th.  factor
============================================================================
[ T001: x := L_C ]____________________________________  0.95   1.80 ->  0.53
[ T002: x := L_N ]____________________________________  0.97   1.43 ->  0.68
[ T003: x := L_D ]____________________________________  0.89   1.51 ->  0.59
[ T004: x := S_C ]____________________________________  0.91   2.77 ->  0.33
[ T005: x := S_N ]____________________________________  0.99   1.51 ->  0.65
[ T006: x := S_D ]____________________________________  1.04   1.51 ->  0.69
[ T007: x := M_C ]____________________________________  0.90   2.13 ->  0.42
[ T008: x := M_N ]____________________________________  0.95   1.56 ->  0.61
[ T009: x := M_D ]____________________________________  0.99   1.53 ->  0.65
[ T010: x := P_C ]____________________________________  0.99   1.60 ->  0.62
[ T011: x := P_N ]____________________________________  1.06   1.49 ->  0.71
[ T012: x := P_D ]____________________________________  0.92   1.61 ->  0.57
[ T013: x := F_C ]____________________________________  1.76   1.98 ->  0.89
[ T014: x := F_N ]____________________________________  1.98   1.36 ->  1.45
[ T015: x := F_D ]____________________________________  1.20   1.39 ->  0.86
[ T016: x := o:GenCode ]______________________________  1.84   2.32 ->  0.79
[ T017: x := o[8] ]___________________________________  1.30   1.97 ->  0.66
[ T018: round( i / 1000, 2 ) ]________________________  2.65   2.67 ->  0.99
[ T020: val( s ) ]____________________________________  2.47   2.22 ->  1.12
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________  4.22   4.27 ->  0.99
[ T024: eval( bc := { || i % 16 } ) ]_________________  2.55   4.15 ->  0.61
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________  2.72   3.55 ->  0.76
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________  3.38   4.82 ->  0.70
[ T033: x := a[ i % 16 + 1 ] == s ]___________________  3.01   4.67 ->  0.64
[ T034: x := a[ i % 16 + 1 ] = s ]____________________  3.07   4.81 ->  0.64
[ T035: x := a[ i % 16 + 1 ] >= s ]___________________  3.11   4.77 ->  0.65
[ T036: x := a[ i % 16 + 1 ] <= s ]___________________  3.03   4.78 ->  0.63
[ T037: x := a[ i % 16 + 1 ] < s ]____________________  3.18   4.90 ->  0.65
[ T038: x := a[ i % 16 + 1 ] > s ]____________________  3.25   4.63 ->  0.70
[ T039: ascan( a, i % 16 ) ]__________________________  3.19   3.02 ->  1.05
[ T042: x := a ]______________________________________  0.95   2.00 ->  0.48
[ T044: f0() ]________________________________________  1.46   2.47 ->  0.59
[ T045: f1( i ) ]_____________________________________  1.99   3.02 ->  0.66
[ T046: f2( c[1...8] ) ]______________________________  1.82   3.15 ->  0.58
[ T047: f2( c[1...40000] ) ]__________________________  1.77   3.12 ->  0.57
[ T048: f2( @c[1...40000] ) ]_________________________  1.90   3.13 ->  0.61
[ T049: f2( @c[1...40000] ), c2 := c ]________________  2.29   3.76 ->  0.61
[ T050: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________  3.94   5.97 ->  0.66
[ T051: f2( a ) ]_____________________________________  1.93   3.20 ->  0.60
============================================================================
[   TOTAL   ]_________________________________________ 77.50 112.58 ->  0.69
============================================================================
[ total application time: ]...................................500.25
[ total real time: ]..........................................190.09

**************************************************************************************************************************

[EMAIL PROTECTED] tests]$  ./speedtst --exclude=mem --scale --thread=8

10/07/08 00:37:07 Linux 2.6.26.3-29.fc9.i686 i686
Harbour 1.1.0dev (Rev. 9564) (MT)+ GNU C 4.3 (32 bit)
THREADS: 8
N_LOOPS: 1000000
excluded tests: 029 030 023 025 027 040 041 043 052 053 019 022 031 032 054
                                                        1 th.  8 th.  factor
============================================================================
[ T001: x := L_C ]____________________________________  1.22   2.54 ->  0.48
[ T002: x := L_N ]____________________________________  1.27   1.97 ->  0.64
[ T003: x := L_D ]____________________________________  1.20   2.02 ->  0.59
[ T004: x := S_C ]____________________________________  1.12   3.07 ->  0.37
[ T005: x := S_N ]____________________________________  1.17   2.00 ->  0.58
[ T006: x := S_D ]____________________________________  1.22   1.96 ->  0.62
[ T007: x := M_C ]____________________________________  1.26   2.49 ->  0.51
[ T008: x := M_N ]____________________________________  1.32   2.17 ->  0.61
[ T009: x := M_D ]____________________________________  1.37   2.36 ->  0.58
[ T010: x := P_C ]____________________________________  1.23   2.15 ->  0.57
[ T011: x := P_N ]____________________________________  1.20   2.07 ->  0.58
[ T012: x := P_D ]____________________________________  1.27   2.04 ->  0.62
[ T013: x := F_C ]____________________________________  2.23   2.66 ->  0.84
[ T014: x := F_N ]____________________________________  2.63   2.05 ->  1.28
[ T015: x := F_D ]____________________________________  1.55   1.86 ->  0.84
[ T016: x := o:GenCode ]______________________________  2.38   3.14 ->  0.76
[ T017: x := o[8] ]___________________________________  1.71   2.78 ->  0.61
[ T018: round( i / 1000, 2 ) ]________________________  3.44   3.54 ->  0.97
[ T020: val( s ) ]____________________________________  3.15   3.02 ->  1.04
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________  5.13   5.65 ->  0.91
[ T024: eval( bc := { || i % 16 } ) ]_________________  3.36   5.59 ->  0.60
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________  3.40   4.81 ->  0.71
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________  4.52   6.61 ->  0.68
[ T033: x := a[ i % 16 + 1 ] == s ]___________________  3.87   6.31 ->  0.61
[ T034: x := a[ i % 16 + 1 ] = s ]____________________  4.29   6.23 ->  0.69
[ T035: x := a[ i % 16 + 1 ] >= s ]___________________  4.35   6.28 ->  0.69
[ T036: x := a[ i % 16 + 1 ] <= s ]___________________  4.14   6.50 ->  0.64
[ T037: x := a[ i % 16 + 1 ] < s ]____________________  4.11   6.24 ->  0.66
[ T038: x := a[ i % 16 + 1 ] > s ]____________________  4.26   6.16 ->  0.69
[ T039: ascan( a, i % 16 ) ]__________________________  4.20   4.03 ->  1.04
[ T042: x := a ]______________________________________  1.29   2.79 ->  0.46
[ T044: f0() ]________________________________________  2.02   3.27 ->  0.62
[ T045: f1( i ) ]_____________________________________  2.63   4.09 ->  0.64
[ T046: f2( c[1...8] ) ]______________________________  2.54   4.24 ->  0.60
[ T047: f2( c[1...40000] ) ]__________________________  2.60   4.22 ->  0.62
[ T048: f2( @c[1...40000] ) ]_________________________  2.44   4.22 ->  0.58
[ T049: f2( @c[1...40000] ), c2 := c ]________________  3.09   5.09 ->  0.61
[ T050: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________  5.10   8.00 ->  0.64
[ T051: f2( a ) ]_____________________________________  2.54   4.41 ->  0.58
============================================================================
[   TOTAL   ]_________________________________________101.79 150.62 ->  0.68
============================================================================
[ total application time: ]...................................672.29
[ total real time: ]..........................................252.42

-- 
"Ninety percent of politicians give the other 10 percent a bad name." -- Henry 
Kissinger
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to