Przemek, Maurilio:

[Maurilio]
>> I did the change to the makefile, I get an immediate SIGSEGV simply >>starting
>> hbrun.
>> (E:\repository\harbour-svn\tests)\harbour\bin\hbrun mt\mttest01.prg
>> Killed by SIGSEGV

[Przemek]
>Then there is probably sth wrong with your build.
>I would like to wait for David's confirmation with
>current SVN code. It's possible that the problem
>is caused by some stupid typo in today modifications
>for speed improvement. But if not and it works for David
>then it has to be sth local to OS2-GCC builds and I'm
>afraid that it will be out of my knowledge to resolve
>the problem. You know much more about OS2.
>For sure it works for me in Linux and W32 cross builds.
>BTW today I committed modification with TLS preloading.
>If you synced SVN then you should make clean build

Please fix this. I fixed it locally:
  config/os2/gcc.cf:24: *** missing separator.  Stop.

Current Harbour compile/run fine
I use newest
  set HB_OS2_NEW_TCP=yes
but not agree with name   :-)
When it is "New TCP" ? three years ago, now, two years ahead, ... ?

I renamed original hbrun.exe as hbrun_st.exe and created new hbrun_mt.exe with hbvmmt.a
23/09/08  4:55p     2,711,279    124 a---  hbrun_st.exe
23/09/08  5:16p     2,729,903    124 a---  hbrun_mt.exe

Using same execution as Maurilio with MT:
"(E:\repository\harbour-svn\tests)\harbour\bin\hbrun mt\mttest01.prg"
--------------------
[E:\harbour809mt\harbour\tests]e:\harbour809mt\harbour\bin\hbrun_mt.exe mt\mttest01.prg

Harbour 1.1.0dev (Rev. 9483)
join: .T.
result: Hello World!!! Hello World!!! Hello World!!!
static var type: B
     12345.678
     12346.678
--------------------

and checking with ST it must fail as well:
--------------------
[E:\harbour809mt\harbour\tests]e:\harbour809mt\harbour\bin\hbrun_st.exe mt\mttes
t01.prg

Harbour 1.1.0dev (Rev. 9483)
Error BASE/3012  Argument error: HB_THREADJOIN
Called from HB_THREADJOIN(0)
Called from MAIN(25)
Called from HB_HRBRUN(0)
Called from _APPMAIN(109)
--------------------

and mttest01 compiled with MT
--------------------
[E:\harbour809mt\harbour\tests]mt\mttest01.exe

Harbour 1.1.0dev (Rev. 9483)
join: .T.
result: Hello World!!! Hello World!!! Hello World!!!
static var type: B
     12345.678
     12346.678
--------------------


Everything worked fine here with current Harbour (9483, fresh build) and eComStation 1.2MR with set HB_OS2_NEW_TCP=yes ( without -DTCPV40HDRS )


I include tests with:

speedtst.prg compiled with MT
-----------------------------
  total application time:                              51.98
  total real time:                                     51.98

speedtst.prg executed with hbrun_mt.exe
---------------------------------------
[E:\harbour809mt\harbour\tests]e:\harbour809mt\harbour\bin\hbrun_mt.exe speedtst.prg
  total application time:                              53.01
  total real time:                                     53.01

Recent was:
ST
    total application time:                              47.13
    total real time:                                     47.14
MT
    total application time:                              55.08
    total real time:                                     55.08

So MT continue falling near ST  :-)
I know that "mileage may vary" due to concurrent tasks

>Now we reach level which cannot be improved too much more
>though I'll commit in a while yet another modification which
>will buffer TLS access by preloading hb_stack pointer to C
>stack functions local variable. It should give some additional
>speed improvement on some platforms/C compilers, f.e. in BCC
>builds which seems the have very expensive cost of native
>TLS variables.

Maybe this is the reason

>> I have not started MT tests in Win32 / Linux yet. Both will be in
>> Core2Duo 2.0 so a great speed difference should be expected respect to
>> current Athlon 2200+ tests

>Not in sppedtst.prg test. It's classic single thread program
>which will use only one CPU.

My expects are not exactly for multi-CPU, but for comparing two generations of processors

In previous tests with highly extensive calculations program, the core2duo 2.0 terminate in half of time against a PentiumIV 3.3 Mhz HT
Same Windows XP

I made that program around 15 years ago. Is a computer simulation of an polymer extruder involving numerical methods and finite differences in 3-D grids calculating velocity, pressure, temperature, ... profiles It that time a run used near 2 hours (486/DX ?), now core2duo made it in 3 minutes

Program are still in 16 bits with Clipper 5.3 (latest compiled in 1997)
Perhaps later I will try with (x)Harbour, it will be a good test  :-)

David Macias

_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to