Actually, the problem of devising this sort of a market (buyers appear at various times and don't want to wait, supply is unlimited) is pretty interesting and not impossible. The field of online mechanism design (where online means participants show up at various times) is quite popular these days, although I can't say I know too much about it...
However, it took about twenty seconds to see that there's already a paper that discusses a market virtually identical to this one (in theoretical terms). See:
Incentive-Compatible Online Auctions for Digital Goods (2002),
Ziv Bar-Yossef, Kirsten Hildrum, Felix Wu
.
Their analysis:
We first show that no deterministic online auction is competitive relative to the optimal fixed price revenue.
Hmm... doesn't sound like Apple needs to run out and implement an online auction market for itunes quite yet...
For those who use VMware ESX server, note that you can prevent one virtual machine from using this attack on another virtual machine in the same physical system. You can set sched.cpu.htsharing=none in a VM's config file to effectively disable HT for this vm only. You can also try:
sched.cpu.htsharing=internal for an SMP VM to disallow it from sharing a package with vcpus from another VM, but allow the two vcpus from this VM to share. More is explained in the hyperthreading (8) man page and in the HT whitepapper: http://www.vmware.com/pdf/esx21_hyperthreading.pdf
If you have only a single VM with untrusted users on a given box, you could set that VM to "none" sharing while allowing other VMs to continue to take advantage of HT.
I don't know how many Slashdotters use ESX, but you've got it admit it has some pretty cool features.
Microsoft Virtual Server is the most extreme example of vaporware I've seen in a LOOONG time. Connectix announced it in 2002, and now Microsoft is saying that it won't be ready until 2004. Meanwhile, ESX has been used in production at Fortune 500 companies for 2 years+. Hmm...
Well, their market cap is $3.4 billion (http://www.google.com/search?hl=en&lr=&ie=UTF-8&o e=UTF-8&prev=/search%3Fq%3DUIS%26hl%3Den%26lr%3D%2 6ie%3DUTF-8%26oe%3DUTF-8%26sa%3DG&q=stocks:UIS+)...
Not exactly MSFT-levels, but not quite irrelevant either.
According to the filing, this student had shared several songs from his own collection, which apparently includes "music" from Blink-182 and Everclear. Yuck, string him up.
Yes, I have to agree with many other/. peons. PLEASE don't go to brushed metal as the default theme for apple apps. I'm strongly considering a switch from wintel/lintel to Mac when ppc64 comes to consumer processors, but that's mainly because OSX is so damn pretty. Metal themes, OTOH, have been played out since Mario64. Please... aqua is neat, the jaguar logo theme is cute, but brushed metal!?!? sooo 1999.... --JRZ
Let's hope that the few major ISVs and hardware vendors who still support SCO (e.g. Oracle, HP/Compaq) have the guts to drop support for both SCO Linux and UNIX like a bag of rocks, even though IBM is their competitor. Surely they understand that this kind of pathetic IP leechery is a disaster for everyone with an interest in Linux.
Furthermore, I'll be really disappointed if SuSE fails to kick SCO the hell out of the UnitedLinux group.
- "creating Unix on Intel processors needed expertise that SCO developed but IBM lacked"
- "It is not possible for Linux to rapidly reach Unix performance standards for complete enterprise functionality without the misappropriation of Unix code"
Oops, mod that down, please, I hit submit by accident. I wanted to mention that the Itanium2 actually has 4 integer units, so it's not a simple FP/integer imbalance that leads to its disappointing integer performance. Rather, the IA-64 instruction set relies on the compiler to detect parallelism and present it explicitly to the processor (EPIC = explicitly parallel instruction computing). The scientific-type codes used in specFP are easier to analyze and parallelize than those in specINT. The compiler makes an incredible difference in IA-64, and as these mature, the architecture will dramatically improve its performance. Look at the jump from 1170 to 1430 in sepcFP when switching from HP's (fairly good) compiler to Intel's (very good) one.
We shouldn't imagine that IA-64 is just for float, however. If you look at real, commercial software benchmarks (like http://sap.com/benchmark), you can see that a 4-way Itanium 1 ghz handily beats a 4-way 1 ghz Alpha (no scores posted for newer Alphas) on the SAP benchmark, which is certainly not floating point code.
As for retail pricing, I agree that people don't pay full price. However, they're likely to get similar discounts from both intel/hp and alpha/hp, so this is irrelevant. Knock 30% of each price in your head if you want.
Still, my original point stands. If you have primarily integer/commercial code, IA-32 provides superior price performance over the Alpha. If you have primarily float/scientific code, IA-64 provides superior price/performance over the Alpha.
Actually, I was suggesting that you should look at your problem domain and realize that you can trash the alpha's price/performance and raw performance for either float-intensive or integer-intensive calculations.
You're utterly misinformed on all counts. The best (1ghz, 3MB cache) Itanium2 lists for under $8,000 (see http://www.shopblt.com/cgi-bin/shop/shop.cgi?actio n=Enter&thispage=011003002001_B567007P.shtml&order _id=!ORDERID!) for a quote, or just search for itanium2 pricing). The best current Alpha (1.25 ghz ev68 for the ES45) will cost you $17,000, plus the huge premium that you pay on the server itself. For pricing details, you have to download compaq's crappy alpha configuration utility (http://h18003.www1.hp.com/alphaserver/acu/index.h tml) for Windows.
Meanwhile, you can check out the SpecFP base of 1019 for the Alpha and 1427 for the Itanium and figure out the price/performance for yourself. If you're more of an integer performance kind of guy, go to SPEC's web page and note that the standard 3.0 ghz Pentium IV (at, what, $750 on a bad day?) beats up the Alpha on integer performance.
As for partitioning, HP-UX on PA-RISC and AIX on POWER4 both offer far superior (and more mature) dynamic partitioning capabilities and workload management.
It is also ridiculous to say that POWER processors are a niche market. AIX on POWER has 30% of the unix market while Tru64 on Alpha has a mere 10%, by revenue. The exact same POWER chips are also used in IBM's iSeries (aka AS/400) line, further increasing their penetration.
Don't get me wrong, I'm not saying that the EV7 will be a bad processor, but I can't stand it when people malign perfectly fantastic chips (POWER and Itanium) with no information to back up those claims.
You should at least evaluate VMware workstation (free trial link: http://www.vmware.com/vmwarestore/newstore/wkst_ev al_login.jsp). You could move to Linux or Windows, run VMware, and run the app within a DOS virtual machine. Since you'd run the exact same app on (if you wish) the exact same version of DOS, you wouldn't have to worry about porting, compatibility, or hardware issues.
--JRZ
- First, Qt (www.trolltech.com) is awesome. High performance, excellent portability (including all the UNIX platforms you mentioned, plus Linux/Windows/MacOS X), legacy integration (with Motif, etc.), multithreading, etc. There are also third party toolkits to integrate more advanced visualization into Qt (http://www.trolltech.com/company/announce.html?Ac tion=Show&AID=108).
Nowadays, Qt doesn't just handle GUIs. It also includes networking and threading abstractions, with really nice object oriented interfaces to them.
- Second, think about what IDE features you're looking for. If it's a GUI builder (which seems doubtful, considering that you probably spend a lot more time writing visualization algorithms than dialog boxes), then you could use Qt Designer.
But, if you're more generally interested in project management, integrated debugging, and source browsing, I'd suggest you take a look at Visual SlickEdit (http://www.slickedit.com), which integrates all those features into an amazing, cross-platform IDE/editor.
To finish the comment, imagine the following scenario:
- node A, which owns the drive, hangs
- node B takes over and starts writing
- node A recovers from its hang, thinks it still owns the disk, and goes back to writing happily
- you experience massive data corruption and get fired
- the economy sucks so you can't find a new job with "corrupted critical files because of my cheap-ass attempt to share a SCSI drive" on your resume
- your significant other leaves you, because he/she doesn't want to date an unemployed loser
- you spend the rest of your life alone and friendless, wishing you had heeded my sage advice
Clustering packages typically include features to STONITH (Shoot The Other Node In The Head) to prevent problems like this one. Red Hat Advanced Server and Kimberlite (on which RHAS clustering is based) include a number of other nice manageability features as well.
Get yourself a copy of Red Hat Advanced Server 2.1 or Kimberlite from Mission Critical Linux. At least read the clustering whitepapers on these two sites!
Imagine the following scenario--
- the node "owning" the disk hangs
- the backup node takes over the connection and starts working
Yeah, another difficulty -- USB provides power from the host (about 500 mA).
Perhaps the USB-bluetooth adapter could fire a series of small lighting bolts?
Oh, hey, I forgot an important point about why fork-per-request isn't as reliable as the mainframe method. Mainframes handle requests separately to guarantee consistency and reliability by giving each request the same execution environment. However, in the fork-per-request model, there's still a central process that touches each request and is vulnerable to change. Imagine, for a trivial example, a case where the central process keeps a counter of requests handled so far. Clearly, this changes with each request and it's vulnerable to standard bugs (say, overflow errors). This sounds stupid, but it's a real problem, especially as you handle large numbers of complex and varied requests, since the amount of work done by the central process quickly becomes nontrivial.
On the mainframe, this "central process" would be replaced by something like CICS, which has a ridiculously long track record of testing in hundreds of mission-critical environments around the world. It also includes a lot of highly-reliable features to automate common OLTP tasks, to eliminate yet another source of bugs.
Basically, what I'm saying is: mainframe software infrastructure is really, really reliable. Way better than Linux. If you need an OLTP system that runs on a mainframe and doesn't crash, use OS/390, not Linux.
Yes, someone has tried this. It's called a fork-per-request server. However, preforking servers (the style used by Apache 1.x) tend to perform much better. You should check out Unix Network Programming by Richard W. Stevens. It has an excellent breakdown of the various server concurrency strategies available under Unix operating systems. --JRZ
At last, we have a solution to the real problem plaguing our legal system: cute girls who cry when they pulled over and thus get away with speeding, running red lights, and occasionally murder.
Actually, the problem of devising this sort of a market (buyers appear at various times and don't want to wait, supply is unlimited) is pretty interesting and not impossible. The field of online mechanism design (where online means participants show up at various times) is quite popular these days, although I can't say I know too much about it...
However, it took about twenty seconds to see that there's already a paper that discusses a market virtually identical to this one (in theoretical terms). See: Incentive-Compatible Online Auctions for Digital Goods (2002), Ziv Bar-Yossef, Kirsten Hildrum, Felix Wu .
Their analysis: We first show that no deterministic online auction is competitive relative to the optimal fixed price revenue.
Hmm... doesn't sound like Apple needs to run out and implement an online auction market for itunes quite yet...
For those who use VMware ESX server, note that you can prevent one virtual machine from using this attack on another virtual machine in the same physical system. You can set sched.cpu.htsharing=none in a VM's config file to effectively disable HT for this vm only. You can also try:
f
sched.cpu.htsharing=internal for an SMP VM to disallow it from sharing a package with vcpus from another VM, but allow the two vcpus from this VM to share. More is explained in the hyperthreading (8) man page and in the HT whitepapper: http://www.vmware.com/pdf/esx21_hyperthreading.pd
If you have only a single VM with untrusted users on a given box, you could set that VM to "none" sharing while allowing other VMs to continue to take advantage of HT.
I don't know how many Slashdotters use ESX, but you've got it admit it has some pretty cool features.
Microsoft Virtual Server is the most extreme example of vaporware I've seen in a LOOONG time. Connectix announced it in 2002, and now Microsoft is saying that it won't be ready until 2004. Meanwhile, ESX has been used in production at Fortune 500 companies for 2 years+. Hmm...
Yup, g4s and g3s use substantially less power than their x86 foes, but the g5 is a different story altogether.
e /Developer_Notes/Macintosh_CPUs-G5/PowerMacG5/Powe rMacG5.pdf.
Each g5 dissipates a whopping 97 watts (see http://www.eet.com/sys/news/OEG20030623S0092, which is why the new powermacs have such absurd cooling systems and massive, mostly empty cases. The high-end powermacs actually come with an OUTRAGEOUS 600 watt power supply (http://developer.apple.com/documentation/Hardwar
Let's be clear, this power supply is not for peripherals: the g5 powermac only supports 3 drive bays and 3 pci slots.
The numbers cited by the author come from an early projection of power consumption for lower-spec ppc970 processors.
Well, their market cap is $3.4 billion (http://www.google.com/search?hl=en&lr=&ie=UTF-8&o e=UTF-8&prev=/search%3Fq%3DUIS%26hl%3Den%26lr%3D%2 6ie%3DUTF-8%26oe%3DUTF-8%26sa%3DG&q=stocks:UIS+).. .
Not exactly MSFT-levels, but not quite irrelevant either.
According to the filing, this student had shared several songs from his own collection, which apparently includes "music" from Blink-182 and Everclear. Yuck, string him up.
Yes, I have to agree with many other /. peons. PLEASE don't go to brushed metal as the default theme for apple apps. I'm strongly considering a switch from wintel/lintel to Mac when ppc64 comes to consumer processors, but that's mainly because OSX is so damn pretty. Metal themes, OTOH, have been played out since Mario64. Please... aqua is neat, the jaguar logo theme is cute, but brushed metal!?!? sooo 1999....
--JRZ
What about hyperthreading?
Let's hope that the few major ISVs and hardware vendors who still support SCO (e.g. Oracle, HP/Compaq) have the guts to drop support for both SCO Linux and UNIX like a bag of rocks, even though IBM is their competitor. Surely they understand that this kind of pathetic IP leechery is a disaster for everyone with an interest in Linux.
Furthermore, I'll be really disappointed if SuSE fails to kick SCO the hell out of the UnitedLinux group.
From News.com:
p 82597b.HTM)
- "creating Unix on Intel processors needed expertise that SCO developed but IBM lacked"
- "It is not possible for Linux to rapidly reach Unix performance standards for complete enterprise functionality without the misappropriation of Unix code"
Apparently they didn't notice that IBM owns Sequent, which has been shipping 32-processor Intel boxes since the mid-90s... (e.g. http://www.intel.com/pressroom/archive/releases/s
#!/bin/bash
grep -i "britney" song_titles.txt
Perhaps it's appropriate that the very first Unix systems were used to process patents for Bell labs. See: http://www.english.uga.edu/hc/unixhistory.html
What goes around, comes around...
Oops, mod that down, please, I hit submit by accident. I wanted to mention that the Itanium2 actually has 4 integer units, so it's not a simple FP/integer imbalance that leads to its disappointing integer performance. Rather, the IA-64 instruction set relies on the compiler to detect parallelism and present it explicitly to the processor (EPIC = explicitly parallel instruction computing). The scientific-type codes used in specFP are easier to analyze and parallelize than those in specINT. The compiler makes an incredible difference in IA-64, and as these mature, the architecture will dramatically improve its performance. Look at the jump from 1170 to 1430 in sepcFP when switching from HP's (fairly good) compiler to Intel's (very good) one.
We shouldn't imagine that IA-64 is just for float, however. If you look at real, commercial software benchmarks (like http://sap.com/benchmark), you can see that a 4-way Itanium 1 ghz handily beats a 4-way 1 ghz Alpha (no scores posted for newer Alphas) on the SAP benchmark, which is certainly not floating point code.
As for retail pricing, I agree that people don't pay full price. However, they're likely to get similar discounts from both intel/hp and alpha/hp, so this is irrelevant. Knock 30% of each price in your head if you want.
Still, my original point stands. If you have primarily integer/commercial code, IA-32 provides superior price performance over the Alpha. If you have primarily float/scientific code, IA-64 provides superior price/performance over the Alpha.
Actually, I was suggesting that you should look at your problem domain and realize that you can trash the alpha's price/performance and raw performance for either float-intensive or integer-intensive calculations.
You're utterly misinformed on all counts. The best (1ghz, 3MB cache) Itanium2 lists for under $8,000 (see http://www.shopblt.com/cgi-bin/shop/shop.cgi?actio n=Enter&thispage=011003002001_B567007P.shtml&order _id=!ORDERID!) for a quote, or just search for itanium2 pricing). The best current Alpha (1.25 ghz ev68 for the ES45) will cost you $17,000, plus the huge premium that you pay on the server itself. For pricing details, you have to download compaq's crappy alpha configuration utility (http://h18003.www1.hp.com/alphaserver/acu/index.h tml) for Windows.
Meanwhile, you can check out the SpecFP base of 1019 for the Alpha and 1427 for the Itanium and figure out the price/performance for yourself. If you're more of an integer performance kind of guy, go to SPEC's web page and note that the standard 3.0 ghz Pentium IV (at, what, $750 on a bad day?) beats up the Alpha on integer performance.
As for partitioning, HP-UX on PA-RISC and AIX on POWER4 both offer far superior (and more mature) dynamic partitioning capabilities and workload management.
It is also ridiculous to say that POWER processors are a niche market. AIX on POWER has 30% of the unix market while Tru64 on Alpha has a mere 10%, by revenue. The exact same POWER chips are also used in IBM's iSeries (aka AS/400) line, further increasing their penetration.
Don't get me wrong, I'm not saying that the EV7 will be a bad processor, but I can't stand it when people malign perfectly fantastic chips (POWER and Itanium) with no information to back up those claims.
You should at least evaluate VMware workstation (free trial link: http://www.vmware.com/vmwarestore/newstore/wkst_ev al_login.jsp). You could move to Linux or Windows, run VMware, and run the app within a DOS virtual machine. Since you'd run the exact same app on (if you wish) the exact same version of DOS, you wouldn't have to worry about porting, compatibility, or hardware issues.
--JRZ
If you read the article, you would care, because you'd see that IBM is also introducing the first 7200 RPM drives for laptops. Finally!
- First, Qt (www.trolltech.com) is awesome. High performance, excellent portability (including all the UNIX platforms you mentioned, plus Linux/Windows/MacOS X), legacy integration (with Motif, etc.), multithreading, etc. There are also third party toolkits to integrate more advanced visualization into Qt (http://www.trolltech.com/company/announce.html?Ac tion=Show&AID=108).
Nowadays, Qt doesn't just handle GUIs. It also includes networking and threading abstractions, with really nice object oriented interfaces to them.
- Second, think about what IDE features you're looking for. If it's a GUI builder (which seems doubtful, considering that you probably spend a lot more time writing visualization algorithms than dialog boxes), then you could use Qt Designer.
But, if you're more generally interested in project management, integrated debugging, and source browsing, I'd suggest you take a look at Visual SlickEdit (http://www.slickedit.com), which integrates all those features into an amazing, cross-platform IDE/editor.
Good luck!
--JRZ
To finish the comment, imagine the following scenario:
- node A, which owns the drive, hangs
- node B takes over and starts writing
- node A recovers from its hang, thinks it still owns the disk, and goes back to writing happily
- you experience massive data corruption and get fired
- the economy sucks so you can't find a new job with "corrupted critical files because of my cheap-ass attempt to share a SCSI drive" on your resume
- your significant other leaves you, because he/she doesn't want to date an unemployed loser
- you spend the rest of your life alone and friendless, wishing you had heeded my sage advice
Clustering packages typically include features to STONITH (Shoot The Other Node In The Head) to prevent problems like this one. Red Hat Advanced Server and Kimberlite (on which RHAS clustering is based) include a number of other nice manageability features as well.
Good luck!
--JRZ
Get yourself a copy of Red Hat Advanced Server 2.1 or Kimberlite from Mission Critical Linux. At least read the clustering whitepapers on these two sites!
Imagine the following scenario--
- the node "owning" the disk hangs
- the backup node takes over the connection and starts working
Yeah, another difficulty -- USB provides power from the host (about 500 mA).
Perhaps the USB-bluetooth adapter could fire a series of small lighting bolts?
Oh, hey, I forgot an important point about why fork-per-request isn't as reliable as the mainframe method. Mainframes handle requests separately to guarantee consistency and reliability by giving each request the same execution environment. However, in the fork-per-request model, there's still a central process that touches each request and is vulnerable to change. Imagine, for a trivial example, a case where the central process keeps a counter of requests handled so far. Clearly, this changes with each request and it's vulnerable to standard bugs (say, overflow errors). This sounds stupid, but it's a real problem, especially as you handle large numbers of complex and varied requests, since the amount of work done by the central process quickly becomes nontrivial.
On the mainframe, this "central process" would be replaced by something like CICS, which has a ridiculously long track record of testing in hundreds of mission-critical environments around the world. It also includes a lot of highly-reliable features to automate common OLTP tasks, to eliminate yet another source of bugs.
Basically, what I'm saying is: mainframe software infrastructure is really, really reliable. Way better than Linux. If you need an OLTP system that runs on a mainframe and doesn't crash, use OS/390, not Linux.
Yes, someone has tried this. It's called a fork-per-request server. However, preforking servers (the style used by Apache 1.x) tend to perform much better. You should check out Unix Network Programming by Richard W. Stevens. It has an excellent breakdown of the various server concurrency strategies available under Unix operating systems.
--JRZ
Disk space: Need 600MB free to allocate to this experiment.
Wow.
At last, we have a solution to the real problem plaguing our legal system: cute girls who cry when they pulled over and thus get away with speeding, running red lights, and occasionally murder.