Author: Robert Hyatt
Date: 18:36:52 08/04/03
Go up one level in this thread
On August 04, 2003 at 16:22:11, Vincent Diepeveen wrote: >On August 04, 2003 at 11:12:16, Robert Hyatt wrote: > >>On August 03, 2003 at 19:08:15, Vincent Diepeveen wrote: >> >>>On August 03, 2003 at 16:52:17, Eugene Nalimov wrote: >>> >>> >>> >>>>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... >>> >>>So there is a C version too. Cool to know. >>> >>>But for your notice, yes the released thing has major assembly parts in the >>>kernel. Of course you don't know what the other divisions of microsoft are >>>doing. I guess you are in the compiler division? >>> >>>I know that most people do not count inline assembly (johan de koning) as being >>>assembly, but call it 'C code' even when it is the important part of the >>>software that is in assembly. If you belong to that gang just raise a hand. >>> >>>>Thanks, >>>>Eugene >> >>Your pompousness and ego never cease to amaze me. >> >>1. _all_ operating systems have _some_ assembly language in them. There >>is no way to do some things in C. Yes, inline assembly is possible, but it >>is _non-portable_ and it is not easy to read/write. > >And it is very easy to figure out. Compiler generated assembly is a lot diff >from hand written assembly. > >I am really amazed that initially it was denied that *any* source was assembly >where everyone knows the crucial routines, which is about whole of the kernel >that practically gives you services during the run of your software, is >assembly. Who "denied" this? Not Eugene. The kernel is _not_ "mainly assembly". It is probably just like every _other_ O/S/ kernel, mostly C/C++ with a little assembly thrown in where needed, say to fiddle with interrupts, or virtual memory mapping, or whatever else there is that C has no clue about doing. The "whole of the kernel" is _not_ assembly. Regardless of what you keep saying. > >It is trivial that the majority of code which is drivers and other DLL stuff >doesn't need to be in assembly with a few exceptions (certain hardware drivers >are very crucial so they're in assembly) > >>2. Suggesting that you know more than Eugene about the internals of Windows >>is so far beyond ridiculous, it takes light 3 years to get from ridiculous to >>you. > >Eugene initially suggested that nothing at his machine is assembly. Now he's >already saying something quite different. I am sure you have not noticed that. > He is saying the _same_ thing he said to start with. _most_ of the kernel is in C/C++. You said "most of the kernel is in assembly". I know who _I_ believe. The man with the source in his hand, not the man with his brain disconnected from his mouth. >>_nobody_ writes an O/S in assembly today... > >You keep forgetting a crucial aspect. *when* did the NT kernel in x86 started to >get created by microsoft? Who cares? Unix has been around since 1970. _it_ was written in C, with a very little assembly to go along with it. VMS for the vax was the same. As was every other O/S of the era, all the way to current windows and linux kernels. > >Right at a time where hardware was very very slow and where assembly was the >only option. Without exception the commercial chess programs at the time were in >assembly back then: Hiarcs, Genius, Rebel, Quest, Kallisto, Schach (not >commercial though). So what? > >Same was of course true for the NT kernel. They just maintained it like that. > >And it *is* fast. Let's face it. and it *is* C/C++. Face that too... > >If intel would write hardware processors only in a general language which is >portable, then AMD would be laughing for another 10 years. What is a "hardware processor"??? > >Everything is manual. The interest is too big simply. > >Only the big processors like itanium and such get sold so little that it doesn't >make sense writing special assembly kernel for it. > >So if that longhorn stuff from Nalimov is meant for itanium2 i can very well >understand it doesn't have any assembly in it :) > >> >> >>>> >>>>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 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.