Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: glory of windows

Author: Eugene Nalimov

Date: 13:52:17 08/03/03

Go up one level in this thread


Sorry, I'll be clearer this time:

(Talking about claim that Windows kernel is written in the assembler)

SARCASM ON:

This is definitely so, especially if you take into account that NT/2k/XP
variants were commercially sold not only for x86, but for PowerPC, MIPS, Alpha,
and IA-64 CPUs. Of course MS wrote 5 kernels in the different assembler
languages...

SARCASM OFF.

Vincent is the only source from which I hear that fact. And if I have to choose
between Vincent's words and NT source code on one of my developer's machine,
I'll trust the later...

Thanks,
Eugene

Thanks,
Eugene


On August 03, 2003 at 15:22:19, Vincent Diepeveen wrote:

>On August 03, 2003 at 14:49:12, Eugene Nalimov wrote:
>
>>On August 03, 2003 at 11:12:15, Vincent Diepeveen wrote:
>>
>>>On August 03, 2003 at 06:14:06, Bo Persson wrote:
>>>
>>>>On August 02, 2003 at 18:22:58, Vincent Diepeveen wrote:
>>>>
>>>>>On August 02, 2003 at 09:15:26, Bo Persson wrote:
>>>>>
>>>>>>On August 01, 2003 at 14:13:18, Kim Roper Jensen wrote:
>>>>>>
>>>>>>>On August 01, 2003 at 14:00:18, Eugene Nalimov wrote:
>>>>>>>
>>>>>>>>I see quite different result on AMD64 when Crafty is compiled by 64-bit Visual
>>>>>>>>C. :-)
>>>>>>>>
>>>>>>>>Thanks,
>>>>>>>>Eugene
>>>>>>>>
>>>>>>>
>>>>>>>Sorry for asking but what did you see ?? :)
>>>>>>
>>>>>>
>>>>>>A non-disclosure agreement in his employment contract?  :-)
>>>>>>
>>>>>>I'm sure we will see the numbers about 2 seconds after the compiler is released.
>>>>>
>>>>>Not really. What you need first is a windows version that can run the stuff 64
>>>>>bits native at opteron.
>>>>
>>>>Yes, of course. Do you care to make a guess on what MS is using their Opteron
>>>>compiler for. :-)
>>>
>>>I guess they are working hard and basic problem is not only that m$ is 32 bits
>>>in some respects (file systems and such already long period ago 64 bits in 1995)
>>>but especially that their kernel stuff is written in assembly.
>>
>>This is definitely so, especially if you take into account that NT/2k/XP
>>variants were commercially sold not only for x86, but for PowerPC, MIPS, Alpha,
>>and IA-64 CPUs. Of course MS wrote 5 kernels in the different assembler
>>languages...
>
>It is hard for me to understand why so much is in assembler and why there
>seemingly is no x bits 'C' version which they can compile on any hardware with
>little effort.
>
>All you need then is a good compiler and perhaps just a bit of handtuning here
>and there.
>
>Even a way slower C version of such an OS would kick of course incredible butt
>already for the different testsets. Now and in the future.
>
>In the meantime what i'm using is:
>
>bash-2.05$ uname -a
>Linux a1.teras.sara.nl 2.4.20-sgi220r3 #1 SMP Wed Jun 4 16:43:37 PDT 2003 ia64
>unknown
>
>bash-2.05$ cat /proc/sys/kernel/shmmax
>90387103744
>
>This REMINDS me of a problem i have with windows. In order to get for different
>processes pointers in shared memory at the same virtual adress space i use next:
>
>      TreeFileMap = OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,
>       "DiepMapFile_Tree");
>      if( TreeFileMap == NULL )
>        mprint("Fatal Error Mapping File: 'tree' for proces %i\n",
>         ProcessNumber);
>      tree = (TreeInfo *)MapViewOfFileEx(TreeFileMap,
>       FILE_MAP_ALL_ACCESS,0,0,0,(LPVOID)0x01000000);
>
>and of course createfilemapping to create it. The problem is that last parameter
>in mapviewoffileex. I put it hardcoded at a certain adress in the memory. What i
>fear is that some software like the JRE and some databases (oracle?) are using
>similar adresses to map stuff into the same adress space.
>
>If they take my adress then i have bad luck simply.
>
>In Linux/IRIX/UNIX there is a way around that because i use ftok to get an
>unique Key not yet in use by other software. Then shmget/shmat puts
>automatically the allocated memory in the same adress space for the processes.
>
>Any way to prevent other processes taking care diep can't start parallel?
>
>>Thanks,
>>Eugene
>>
>>>That's one of the reasons why the kernel is much faster practically than linux
>>>for applications (if i put of old diep versions which aren't NUMA 2 processes to
>>>search at a single cpu machine then it runs *way* faster on NT, about factor 2
>>>to 4 than under linux kernel).
>>>
>>>So using their own compiler for their own kernel is not exactly what they can
>>>do.
>>>
>>>A big challenge of opteron is that it is NUMA.
>>>
>>>I am sure m$ will be very happy supporting the AMD platforms. Competition in the
>>>hardware branche is good for microsoft. So in the highest levels of the
>>>organisations the x86-64 platforms will have a lot of support.
>>>
>>>Even if microsoft wouldn't want to support it, they still MUST support it
>>>because x86 is history within a few years and we all will be running x86-64
>>>platforms only. Either with intel OR amd sticker.
>>>
>>>I guess even the biggest cpu amateurs will understand by now that intel is
>>>developing their own x86-64 processor generations. Perhaps even giving it a 'p4'
>>>sticker though it's an entirely new core.
>>>
>>>The only thing we do not know is *when* they will release their x86-64 cpu's.
>>>AMD simply has advantage there now.
>>>
>>>We can very shortly describe the x86-64 architecture. Cheap. High clockable and
>>>superior to everything out there including itanium. Especially superior to
>>>itanium.
>>>
>>>I'm running at a cpu or 64 now (itanium2-madison 1.3Ghz 3MB) and they are great
>>>for the highend but a joke even when compared to x86 for the average user.
>>>
>>>Intel plans to mass produce itaniums for the 'low-end' market have been put into
>>>the fridge a long while ago. The only reason intel is continuing this processor
>>>now (seemingly) is because they probably can't go back. Or perhaps they wait
>>>until they have x86-64 cpu's available.
>>>
>>>How can GCC 2.96 without profile recompilation be just 15% slower than intel c++
>>>7.0 using profile information (prof_use) at the itanium platform?
>>>
>>>The problem of the itanium platform is they can't clock it high despite working
>>>for years already at that problem, it is too expensive, and it is impossible to
>>>write software for it.
>>>
>>>Even the current generations of supercomputers with itaniums that get delivered
>>>are missing major software support for it. Like crucial fortran libraries.
>>>
>>>This where > 60% of the total system time of supercomputers goes to gflops used
>>>by fortran libraries.
>>>
>>>If you add up the picture then it is a matter of time before the x86-64 will
>>>dominate everything.
>>>
>>>However it is sad to realize that most likely the linux world will be too late
>>>again. Despite that microsoft must convert their assembly libraries to new
>>>opteron assembly, we know they must be very far already with that conversion.
>>>
>>>This where the linux plans to write a NUMA kernel for kernel 2.6 have been just
>>>defined a few weeks ago. Not to mention the years it will take to carry out an
>>>effective implementation.
>>>
>>>For those who still do not understand what i'm talking about. When you have more
>>>than 1 opteron processor, so a dual opteron or even more processors, then it is
>>>of crucial importance that the kernel can run locally on each kernel for the
>>>jobs that can be done locally.
>>>
>>>Local memory at opteron is way faster than global memory.
>>>
>>>In fact the opteron asks for a cc-NUMA operating system which until recently was
>>>only getting used by very big non-real time supercomputer systems.
>>>
>>>I would not be surprised if microsoft is years sooner in releasing a version
>>>that works well than the linux community, despite that everyone will understand
>>>that bugfixing assembly code is a lot harder than fixing a bit of C code.
>>>
>>>Best regards,
>>>Vincent
>>>
>>>>
>>>>Bo Persson
>>>>bop2@telia.com



This page took 0.01 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.