Its interesting that all benchmarks seem to include mp3 compression or mpeg video creation etc.
Because it's the only thing the average user will ever do that really benefits from a processor of this power. I, for instance, do a lot of video encoding, because I regularly record home videos onto DVD and am too cheap to get a DVD recorder. Many users convert their CD collection to MP3.
So my question is [...] is who the hell is bothering to rate their processors by what REALLY counts? By this I mean MIPS [...] as opposed to GHz?
This figure is meaningless in modern CPUs as processors perform a variable number of instructions per cycle depending on (a) what instruction (b) whether data is in cache (c) whether there are pipeline stalls to account for. The best you can hope for is the number of cycles of some standardised performance test that are executed in a specific time, which is what articles like this one provide.
I've got to wonder if you read the article, 'cause if you did, you'd know that these processors run at a slower clock rate than existing ones, so you really wouldn't be accusing anyone of comparing GHz.
This is probably because the remaining 75% of sales will be lower end processors made with their old fabrication systems that can't cope with the small feature size on the newer processors. The entry level of this range costs $183. I doubt many more than 25% of computer buyers are willing to spend that much on a processor.
Presumably they'll be phasing these fabs out and replacing them with more capable ones over 2007, and by the end of 2007 we'll probably see the Pentium range completely phased out and the prices of this range dropping to the point where it can be considered entry level.
This is from the volume licensing terms for the "desktop applications - per copy per device" licensing model:
General License Terms. You have the rights below for each license you acquire. I)Installation and Use Rights. a)Licensed Device. The licensed device is the device on which you use the software. You may install and use one copy of the software, any component product of the software, and any prior Microsoft version of the software or any component on the licensed device.
(Emphasis mine). This applies to 32 different MS products, including most of their popular software except Windows (e.g. Office, Money, AutoRoute, Encarta, Virtual PC).
From the desktop operating systems (i.e. XP Home/Pro) volume license:
A. General License Terms. You have the rights below for each license you acquire. I)Installation and Use Rights. [...] c)You may run a prior version in place of the licensed version for either or both of the copies.
Note that this isn't limited to Win2K; any prior version of Windows is acceptable.
I think you misunderstood the original submitters question: as I read it, he's not considering thread-per-connection as is discussed in the paper you link, but rather a small number of threads (e.g. 4 on a dual-processor machine with hyperthreading) each running an event-based server, the idea being that putting everything in a single thread wastes CPU time as only 1 of the 4 CPUs presented by such a system can be used.
You'd have to write such a system carefully, but I think if it was done right you'd get better performance than a pure event-driven server.
Threaded code must be thread safe. Static variables, shared data structures, and factories all previously accessed through a singleton must now be protected with guard functions and semaphores.
Not necessarily. It is entirely possible to design code that is threadsafe without using locks for data access. Instead, in many cases you can ensure that due to program logic variables you are accessing can only be used by a single thread (e.g. by only allowing a single thread to work on a connection's state at once and storing all data in association with the connection, or by using thread-local data for shared resources like database connections); in others algorithms can be designed that work without a lock: generally you'd use this approach in the code that reacts to an incoming event and selects a thread to handle it.
But how do I do that if I have a Vista system and want to install a copy of XP?
Microsoft licenses typically allow you to run an older version of the same software in place of the current version if you wish. I'm not sure that this applies to the vista license, but I suspect it does.
The same question exists if I have an XP system and I want to install an XP virtual machine on it.
The XP license (at least the corporate one) allows you to run one virtual instance, in the same way the Vista one allows 4. All they're doing here is increasing the numbers.
I'm also annoyed by the fact that they are tied to a single device: it seems that because of this you aren't allowed to use the feature of some virtualisation systems that lets you take a virtual machine running on one PC and move it another.
You've misread the license for Web Server Edition, which includes the following term:
No Client Access Licenses (CALs) Required for Access. You do not need CALs for other devices to access your instances of the server software.
There's no external connector available for it because you don't need one.
Unfortunately, the other terms and conditions on Web Server Edition are pretty restrictive:
You may use the software only to deploy web pages, sites, applications and services, and to serve POP3 mail. You may run instances of the server software with the following types of software in the same physical or virtual operating system environment on the licensed server: Web serving software, such as Microsoft Internet Information Services; non-enterprise database engine software, such as Microsoft SQL Server Desktop Engine, licensed to support not more than 25 users at one time, and Web availability management software, such as Microsoft Application Center. The software above may access data from the following software on any of your servers: database software, such as Microsoft SQL Server; and business application software (for example, enterprise email, enterprise resource planning, and customer relationship management). No other use of the software is permitted.
Particularly concerning is the requirement that database engines aren't licensed for more than 25 users at a time. MySQL and PostgreSQL are both licensed for unlimited users, so probably cannot be used under these terms. Also note that this appears to be a blanket restriction on running any other kind of software than what's specifically mentioned, so there's no SMTP mail servers, IMAP mail servers, VNC remote access software (although presumably the Remote Desktop software included with the OS is acceptable), development software, etc. I'd be concerned about running a streaming media server under these terms, as it isn't explicitly mentioned and isn't technically a web site, application or service (although most users would probably categorise it as one).
Really? How often do you start up your web browser, email client, word processor, spreadsheet app, bit torrent, etc? Once a day or less, depending on the app. You load them, and they sit there, waiting for you to use them.
As you say, it depends on the app. But, yes, to take the example of a word processor, you load it once. This takes about 3-4MB of I/O (it's hard to tell exactly how much, because not everything will be loaded into memory). You'd then typically load a document, and maybe save it 10 or 20 times throughout the day while working on it. Typical document size = about 20K. That's 400K of I/O. The application load I/O time dwarfs the document I/O time.
Or does Windows suck so bad that you've got to close apps as soon as possible, to free up RAM for other apps?
No, actually Windows is pretty good at removing apps from memory in order to make additional RAM for others. It does this by removing the app's text pages without putting them into the paging file... they can be reloaded from the disk the app was run from, so it'd be a waste of I/O time and page fle space to copy it into there. So, when you switch back to the app after it has been paged out, you'll start loading it from the disk it was originally run from again, just as soon as it hits a page fault.
Linux does exactly the same, so the same arguments apply there too.
I forget the specifics, but the Minix Filesystem that Linux originally used only supported fairly short filenames. IIRC, they were longer than 8.3, but still fairly short.
Trying to write non-buggy, consistently-behaving programs with a case-insensitive filesystem is harder than you think.
While I do struggle to write non-buggy. consistently-behaving programs under Windows, I find the problem is very rarely with the filesystem naming conventions.
If you *really* need case sensitive filenames for your application, you can use FILE_FLAG_POSIX_SEMANTICS.
Because there's a very simple standard you can follow that is compatible with Posix *and* Windows. Which is what the article's about. There's a small set of characters you'll have to avoid, and you'll have to avoid creating files with names that differ only in case, but this isn't exactly a hardship.
The reason for that is more historical baggage. The early stage (text mode) of Windows installation can't handle filenames that violate 8.3 restrictions.
I think you're half true: you're right that that is where the restriction is, but it isn't just historical baggage, though. The point is that the first stage of the install process (copying the system onto your hard disk) has to be able to run under DOS, because that is the only way to be sure the installation process is compatible with everything that can run Windows (e.g. you may still have a machine whose BIOS isn't capable of booting the CD - I have one of those that's over minimum spec for XP).
Starting the install from DOS is also a good way to get around the Windows installer's stupid insistence on putting the system files on the first partition it can find that it can write to... whether or not there's enough space for the install to complete with them on there.
The behaviour still exists, but it isn't quite the same behaviour you think it is.
What windows *actually* does, is take any file on a FAT system that doesn't have an associated long filename (and therefore doesn't have any identifier of case, because that's associated with the long name entry), and convert it to first letter upper case and remainder lower case *for display purposes*.
But parts of this system ignore this convention, and if you make a copy of the file in some circumstances you'll get it all in block caps, because this is how it is stored on the disc.
Of course, in order for this to happen, you need to have a disc with files on it that don't have long name entries, which means either having old discs, discs that are accessed by devices that only use short names (some digital cameras fall into this category), or a system where you've disabled long name creation.
In fact I would say LDS is one of the most aggressive denominations in terms of evangelism.
Data point: the ONLY door-to-door evangelist who has ever knocked on my door opened his spiel with "Have you ever read the book of Mormon?". I therefore assume he was from LDS.
I've never seen anything similar from another denomination or religion, even Scientology (which strikes me as the most inclined to do such a thing).
A scientologist was the only one ever to pester me on the street. At least, a "dianetic technician" according to the badge she was wearing. I'm rather proud of my reply to this one: "No, I haven't ever had a f*ing stress test, and I don't f*ing want one. I'm late for a f*ing meeting. Get out of my way."
Marriage is contrary to the basic biological drive of fucking every attractive members of the opposite sex you can find.
Yes, but that's because that drive conflicts with the one that marriage is a recognition of: the drive to find a partner and raise children with that partner, at least until they are old enough to fend for themselves. Then you can go off and start finding more partners again.
Both are basic human behaviour patterns, and can also be witnessed in apes, etc.
Its interesting that all benchmarks seem to include mp3 compression or mpeg video creation etc.
Because it's the only thing the average user will ever do that really benefits from a processor of this power. I, for instance, do a lot of video encoding, because I regularly record home videos onto DVD and am too cheap to get a DVD recorder. Many users convert their CD collection to MP3.
So my question is [...] is who the hell is bothering to rate their processors by what REALLY counts? By this I mean MIPS [...] as opposed to GHz?
This figure is meaningless in modern CPUs as processors perform a variable number of instructions per cycle depending on (a) what instruction (b) whether data is in cache (c) whether there are pipeline stalls to account for. The best you can hope for is the number of cycles of some standardised performance test that are executed in a specific time, which is what articles like this one provide.
I've got to wonder if you read the article, 'cause if you did, you'd know that these processors run at a slower clock rate than existing ones, so you really wouldn't be accusing anyone of comparing GHz.
Fine, since you asked. The Intel Core 2 has 0.000004 MIPC.
0.000008, actually, since sometimes it can combine two instructions into a single execution unit.
OK, so you only get this if the only instructions you ever use are CMP and Jcc, but it must count for something...?
This is probably because the remaining 75% of sales will be lower end processors made with their old fabrication systems that can't cope with the small feature size on the newer processors. The entry level of this range costs $183. I doubt many more than 25% of computer buyers are willing to spend that much on a processor.
Presumably they'll be phasing these fabs out and replacing them with more capable ones over 2007, and by the end of 2007 we'll probably see the Pentium range completely phased out and the prices of this range dropping to the point where it can be considered entry level.
(Emphasis mine). This applies to 32 different MS products, including most of their popular software except Windows (e.g. Office, Money, AutoRoute, Encarta, Virtual PC).
From the desktop operating systems (i.e. XP Home/Pro) volume license:
Note that this isn't limited to Win2K; any prior version of Windows is acceptable.
Why would you want to debug Microsoft Windows?
You work for Microsoft, don't you?
I think you misunderstood the original submitters question: as I read it, he's not considering thread-per-connection as is discussed in the paper you link, but rather a small number of threads (e.g. 4 on a dual-processor machine with hyperthreading) each running an event-based server, the idea being that putting everything in a single thread wastes CPU time as only 1 of the 4 CPUs presented by such a system can be used.
You'd have to write such a system carefully, but I think if it was done right you'd get better performance than a pure event-driven server.
Threaded code must be thread safe. Static variables, shared data structures, and factories all previously accessed through a singleton must now be protected with guard functions and semaphores.
Not necessarily. It is entirely possible to design code that is threadsafe without using locks for data access. Instead, in many cases you can ensure that due to program logic variables you are accessing can only be used by a single thread (e.g. by only allowing a single thread to work on a connection's state at once and storing all data in association with the connection, or by using thread-local data for shared resources like database connections); in others algorithms can be designed that work without a lock: generally you'd use this approach in the code that reacts to an incoming event and selects a thread to handle it.
Dunno, but the same's true of XP: the XP corporate license lets you run one instance in a VM, but not the standard EULA.
IIRC VPC has no opengl/directx guest support. I doubt that you will ever see that feature in either product.
Hold on... I thought Direct3D support was a system requirement to run Vista?
I guess, by that logic, running multiple instances of MS Word, Internet Explorer or any other program on my computer is copyright infringement.
No, but installing multiple instances on your hard disc might be.
What a load of crap.
Probably true.
But how do I do that if I have a Vista system and want to install a copy of XP?
Microsoft licenses typically allow you to run an older version of the same software in place of the current version if you wish. I'm not sure that this applies to the vista license, but I suspect it does.
The same question exists if I have an XP system and I want to install an XP virtual machine on it.
The XP license (at least the corporate one) allows you to run one virtual instance, in the same way the Vista one allows 4. All they're doing here is increasing the numbers.
No, but that's software licensing for you.
I'm also annoyed by the fact that they are tied to a single device: it seems that because of this you aren't allowed to use the feature of some virtualisation systems that lets you take a virtual machine running on one PC and move it another.
No Client Access Licenses (CALs) Required for Access. You do not need CALs for other devices to access your instances of the server software.
There's no external connector available for it because you don't need one.
Unfortunately, the other terms and conditions on Web Server Edition are pretty restrictive:
Particularly concerning is the requirement that database engines aren't licensed for more than 25 users at a time. MySQL and PostgreSQL are both licensed for unlimited users, so probably cannot be used under these terms. Also note that this appears to be a blanket restriction on running any other kind of software than what's specifically mentioned, so there's no SMTP mail servers, IMAP mail servers, VNC remote access software (although presumably the Remote Desktop software included with the OS is acceptable), development software, etc. I'd be concerned about running a streaming media server under these terms, as it isn't explicitly mentioned and isn't technically a web site, application or service (although most users would probably categorise it as one).
Really? How often do you start up your web browser, email client, word processor, spreadsheet app, bit torrent, etc? Once a day or less, depending on the app. You load them, and they sit there, waiting for you to use them.
As you say, it depends on the app. But, yes, to take the example of a word processor, you load it once. This takes about 3-4MB of I/O (it's hard to tell exactly how much, because not everything will be loaded into memory). You'd then typically load a document, and maybe save it 10 or 20 times throughout the day while working on it. Typical document size = about 20K. That's 400K of I/O. The application load I/O time dwarfs the document I/O time.
Or does Windows suck so bad that you've got to close apps as soon as possible, to free up RAM for other apps?
No, actually Windows is pretty good at removing apps from memory in order to make additional RAM for others. It does this by removing the app's text pages without putting them into the paging file... they can be reloaded from the disk the app was run from, so it'd be a waste of I/O time and page fle space to copy it into there. So, when you switch back to the app after it has been paged out, you'll start loading it from the disk it was originally run from again, just as soon as it hits a page fault.
Linux does exactly the same, so the same arguments apply there too.
Yes. But that *doesn't* give you the right to use it.
I forget the specifics, but the Minix Filesystem that Linux originally used only supported fairly short filenames. IIRC, they were longer than 8.3, but still fairly short.
Max 16 characters, I think it was.
it will also keep working when the silly ~1 convention is abandoned.
N tfsDisable8dot3NameCreation to 1 and you're ready to go.
So now all you need to do is set HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\
Trying to write non-buggy, consistently-behaving programs with a case-insensitive filesystem is harder than you think.
While I do struggle to write non-buggy. consistently-behaving programs under Windows, I find the problem is very rarely with the filesystem naming conventions.
If you *really* need case sensitive filenames for your application, you can use FILE_FLAG_POSIX_SEMANTICS.
Because there's a very simple standard you can follow that is compatible with Posix *and* Windows. Which is what the article's about. There's a small set of characters you'll have to avoid, and you'll have to avoid creating files with names that differ only in case, but this isn't exactly a hardship.
The reason for that is more historical baggage. The early stage (text mode) of Windows installation can't handle filenames that violate 8.3 restrictions.
I think you're half true: you're right that that is where the restriction is, but it isn't just historical baggage, though. The point is that the first stage of the install process (copying the system onto your hard disk) has to be able to run under DOS, because that is the only way to be sure the installation process is compatible with everything that can run Windows (e.g. you may still have a machine whose BIOS isn't capable of booting the CD - I have one of those that's over minimum spec for XP).
Starting the install from DOS is also a good way to get around the Windows installer's stupid insistence on putting the system files on the first partition it can find that it can write to... whether or not there's enough space for the install to complete with them on there.
The behaviour still exists, but it isn't quite the same behaviour you think it is.
What windows *actually* does, is take any file on a FAT system that doesn't have an associated long filename (and therefore doesn't have any identifier of case, because that's associated with the long name entry), and convert it to first letter upper case and remainder lower case *for display purposes*.
But parts of this system ignore this convention, and if you make a copy of the file in some circumstances you'll get it all in block caps, because this is how it is stored on the disc.
Of course, in order for this to happen, you need to have a disc with files on it that don't have long name entries, which means either having old discs, discs that are accessed by devices that only use short names (some digital cameras fall into this category), or a system where you've disabled long name creation.
In fact I would say LDS is one of the most aggressive denominations in terms of evangelism.
Data point: the ONLY door-to-door evangelist who has ever knocked on my door opened his spiel with "Have you ever read the book of Mormon?". I therefore assume he was from LDS.
I've never seen anything similar from another denomination or religion, even Scientology (which strikes me as the most inclined to do such a thing).
A scientologist was the only one ever to pester me on the street. At least, a "dianetic technician" according to the badge she was wearing. I'm rather proud of my reply to this one: "No, I haven't ever had a f*ing stress test, and I don't f*ing want one. I'm late for a f*ing meeting. Get out of my way."
Marriage is contrary to the basic biological drive of fucking every attractive members of the opposite sex you can find.
Yes, but that's because that drive conflicts with the one that marriage is a recognition of: the drive to find a partner and raise children with that partner, at least until they are old enough to fend for themselves. Then you can go off and start finding more partners again.
Both are basic human behaviour patterns, and can also be witnessed in apes, etc.
True. :)