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