Awesome !!!!
I don't know if scalability is better but processor time went down from
100% to 62% in average on same machine.
Also sacalability improved a little
See attached...
If my compiling settings are ok I can upload a new set of tests to
rapidshare including this last one.
HTH
Angel
PD: I know almost nothing about hardware sorry. This machine is a
production server I have.
PD2: My next app server will be in SUSE + Harbour I hope ;)
Przemyslaw Czerpak escribió:
On Sun, 29 Mar 2009, Angel Pais wrote:
Hi,
I couldn't recompile harbour
Here the error:
cl.exe -nologo -I. -I../../../../../include -Gs -TP -W4 -wd4127 -Ot2b1
-EHs-c- -MT -DHB_FM_STATISTICS_OFF -DHB_FM_DLMT_ALLOC -DHB_MT_VM -c
../../../fm.c -Fofm.obj
fm.c
../../../fm.c(403) : error C2440: '=' : cannot convert from 'mspace' to
'mspace *'
Conversion from 'void*' to pointer to non-'void' requires an
explicit cast
../../../fm.c(415) : error C2440: '=' : cannot convert from 'mspace' to
'mspace *'
Conversion from 'void*' to pointer to non-'void' requires an
explicit cast
I've just fixed it but it will not help to improve scalability in your
case. I've just seen you full results from previous tests.
Please look at my answer. I'd rather look for some switch which
enables/disables dynamic CPU clock update. It's also possible that
your results are limited by hardware and when two CPU are used then
the the do not give linear speed improvement. I'm not hardware
specialist so I cannot say too much about different PIV constructions.
best regards,
Przemek
Compiler and Enviroment:
set HB_COMPILER=msvc
set HB_VISUALC_VER=90
set HB_USER_CFLAGS=-DHB_FM_STATISTICS_OFF -DHB_FM_DLMT_ALLOC
Program built with: hbmk2.exe speedtst.prg -mt -gc3 -b -l -ko
03/29/09 15:42:55 Windows Server 2003 / XP x64 5.2.3790
Harbour 1.1.0dev (Rev. 10718) (MT)+ Microsoft Visual C++ 14.0.24999 (32-bit)
THREADS: 2
N_LOOPS: 1000000
1 th. 2 th. factor
============================================================================
[ T001: x := L_C ]____________________________________ 0.30 0.23 -> 1.27
[ T002: x := L_N ]____________________________________ 0.19 0.17 -> 1.09
[ T003: x := L_D ]____________________________________ 0.16 0.14 -> 1.12
[ T004: x := S_C ]____________________________________ 0.28 0.30 -> 0.95
[ T005: x := S_N ]____________________________________ 0.19 0.17 -> 1.09
[ T006: x := S_D ]____________________________________ 0.19 0.16 -> 1.20
[ T007: x := M->M_C ]_________________________________ 0.33 0.30 -> 1.11
[ T008: x := M->M_N ]_________________________________ 0.22 0.20 -> 1.08
[ T009: x := M->M_D ]_________________________________ 0.25 0.20 -> 1.23
[ T010: x := M->P_C ]_________________________________ 0.27 0.25 -> 1.06
[ T011: x := M->P_N ]_________________________________ 0.25 0.20 -> 1.23
[ T012: x := M->P_D ]_________________________________ 0.22 0.19 -> 1.17
[ T013: x := F_C ]____________________________________ 0.84 0.97 -> 0.87
[ T014: x := F_N ]____________________________________ 0.70 0.56 -> 1.25
[ T015: x := F_D ]____________________________________ 0.36 0.38 -> 0.96
[ T016: x := o:Args ]_________________________________ 0.59 0.59 -> 1.00
[ T017: x := o[2] ]___________________________________ 0.45 0.38 -> 1.21
[ T018: round( i / 1000, 2 ) ]________________________ 0.70 0.59 -> 1.18
[ T019: str( i / 1000 ) ]_____________________________ 1.83 1.72 -> 1.06
[ T020: val( s ) ]____________________________________ 0.92 0.77 -> 1.20
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________ 1.61 1.48 -> 1.08
[ T022: dtos( d - i % 10000 ) ]_______________________ 1.64 1.38 -> 1.19
[ T023: eval( { || i % 16 } ) ]_______________________ 6.34 9.00 -> 0.70
[ T024: eval( bc := { || i % 16 } ) ]_________________ 4.76 6.06 -> 0.79
[ T025: eval( { |x| x % 16 }, i ) ]___________________ 5.42 7.58 -> 0.72
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________ 4.72 5.78 -> 0.82
[ T027: eval( { |x| f1( x ) }, i ) ]__________________ 10.48 14.94 -> 0.70
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________ 9.47 13.17 -> 0.72
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ]_______ 4.42 5.44 -> 0.81
Compiler and Enviroment:
set HB_COMPILER=msvc
set HB_VISUALC_VER=90
set HB_USER_CFLAGS=-DHB_FM_STATISTICS_OFF -DHB_FM_DLMT_ALLOC
Program built with: hbmk2.exe speedtst.prg -mt -gc3 -b -l -ko
03/29/09 16:11:48 Windows Server 2003 / XP x64 5.2.3790
Harbour 1.1.0dev (Rev. 10726) (MT)+ Microsoft Visual C++ 14.0.24999 (32-bit)
THREADS: 2
N_LOOPS: 1000000
1 th. 2 th. factor
============================================================================
[ T001: x := L_C ]____________________________________ 0.28 0.25 -> 1.13
[ T002: x := L_N ]____________________________________ 0.16 0.14 -> 1.11
[ T003: x := L_D ]____________________________________ 0.17 0.14 -> 1.21
[ T004: x := S_C ]____________________________________ 0.30 0.28 -> 1.06
[ T005: x := S_N ]____________________________________ 0.19 0.17 -> 1.09
[ T006: x := S_D ]____________________________________ 0.19 0.17 -> 1.09
[ T007: x := M->M_C ]_________________________________ 0.33 0.31 -> 1.05
[ T008: x := M->M_N ]_________________________________ 0.27 0.20 -> 1.31
[ T009: x := M->M_D ]_________________________________ 0.23 0.22 -> 1.07
[ T010: x := M->P_C ]_________________________________ 0.30 0.27 -> 1.12
[ T011: x := M->P_N ]_________________________________ 0.23 0.20 -> 1.15
[ T012: x := M->P_D ]_________________________________ 0.25 0.20 -> 1.23
[ T013: x := F_C ]____________________________________ 3.41 4.00 -> 0.85
[ T014: x := F_N ]____________________________________ 4.17 3.73 -> 1.12
[ T015: x := F_D ]____________________________________ 2.92 2.63 -> 1.11
[ T016: x := o:Args ]_________________________________ 2.75 1.38 -> 2.00
[ T017: x := o[2] ]___________________________________ 2.36 2.17 -> 1.09
[ T018: round( i / 1000, 2 ) ]________________________ 1.06 0.77 -> 1.39
[ T019: str( i / 1000 ) ]_____________________________ 7.97 5.53 -> 1.44
[ T020: val( s ) ]____________________________________ 3.19 0.99 -> 3.24
[ T021: val( a [ i % 16 + 1 ] ) ]_____________________ 6.01 5.09 -> 1.18
[ T022: dtos( d - i % 10000 ) ]_______________________ 2.38 1.86 -> 1.28
[ T023: eval( { || i % 16 } ) ]_______________________ 19.24 17.55 -> 1.10
[ T024: eval( bc := { || i % 16 } ) ]_________________ 11.01 9.34 -> 1.18
[ T025: eval( { |x| x % 16 }, i ) ]___________________ 13.51 10.67 -> 1.27
[ T026: eval( bc := { |x| x % 16 }, i ) ]_____________ 8.77 6.48 -> 1.35
[ T027: eval( { |x| f1( x ) }, i ) ]__________________ 35.42 25.73 -> 1.38
[ T028: eval( bc := { |x| f1( x ) }, i ) ]____________ 28.83 23.36 -> 1.23
[ T029: eval( bc := &("{ |x| f1( x ) }"), i ) ]_______ 9.47 8.13 -> 1.17
[ T030: x := &( "f1(" + str(i) + ")" ) ]______________ 67.81 59.00 -> 1.15
[ T031: bc := &( "{|x|f1(x)}" ), eval( bc, i ) ]______ 89.09 77.45 -> 1.15
[ T032: x := valtype( x ) + valtype( i ) ]___________ 1.58 1.49 -> 1.06
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ] 8.55 6.78 -> 1.26
[ T034: x := a[ i % 16 + 1 ] == s ]___________________ 4.88 3.20 -> 1.52
[ T035: x := a[ i % 16 + 1 ] = s ]____________________ 5.78 5.24 -> 1.10
[ T036: x := a[ i % 16 + 1 ] >= s ]___________________ 5.64 5.31 -> 1.06
[ T037: x := a[ i % 16 + 1 ] <= s ]___________________ 5.63 5.14 -> 1.09
[ T038: x := a[ i % 16 + 1 ] < s ]____________________ 5.02 5.14 -> 0.98
[ T039: x := a[ i % 16 + 1 ] > s ]____________________ 3.80 5.19 -> 0.73
[ T040: ascan( a, i % 16 ) ]__________________________ 1.27 5.72 -> 0.22
[ T041: ascan( a, { |x| x == i % 16 } ) ]_____________168.95 125.30 -> 1.35
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s ] 5.55 4.66 -> 1.19
[ T043: x := a ]______________________________________ 0.33 0.30 -> 1.10
[ T044: x := {} ]_____________________________________ 1.00 1.03 -> 0.97
[ T045: f0() ]________________________________________ 3.00 2.72 -> 1.10
[ T046: f1( i ) ]_____________________________________ 3.63 3.55 -> 1.02
[ T047: f2( c[1...8] ) ]______________________________ 3.89 3.59 -> 1.08
[ T048: f2( c[1...40000] ) ]__________________________ 3.70 3.61 -> 1.03
[ T049: f2( @c[1...40000] ) ]_________________________ 3.58 3.58 -> 1.00
[ T050: f2( @c[1...40000] ), c2 := c ]________________ 3.91 3.84 -> 1.02
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]__________ 12.17 12.24 -> 0.99
[ T052: f2( a ) ]_____________________________________ 3.86 3.83 -> 1.01
[ T053: x := f4() ]___________________________________ 5.92 6.33 -> 0.94
[ T054: x := f5() ]___________________________________ 4.05 4.11 -> 0.98
[ T055: x := space(16) ]______________________________ 1.08 1.14 -> 0.95
[ T056: f_prv( c ) ]__________________________________ 6.36 6.20 -> 1.03
============================================================================
[ TOTAL ]_________________________________________595.36 497.64 -> 1.20
============================================================================
[ total application time: ]..................................1266.23
[ total real time: ].........................................1093.11
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour