Here I go responding to a tagline again. Someday I'll learn...
The easiest way to get shot is to carry a gun -- Atticus Finch
Not true at all, just go to San Diego and rush a cop with a gardening stake or a trowel in hand. In both such cases, the individual was shot and killed. The guy with the trowel was naked and in the middle of a major freeway (with a bunch of civilan onlookers). Someone simply carrying a gun would just be quietly arrested (unless of course a permit was involved).
If you want a gun-related sig, why not try:
"Abe Lincoln may have freed all men, but Sam Colt made them equal.";-)
What are we up to now? Three months to obsolescence? It was just last Fall that we heard about the ultra-mega-super Radeon 9700 that could render 47umptyzillion somethingorothers every picosecond (only $400 while supplies last)?
More importantly, it has a fully floating point graphics pipeline, and massive shader programmability (SIMD).
I wonder if we're ever going to get to a point where "this is the hardware. You have 10 years to do something cool with it" instead of "oh, look, your program is obsolete again! Your graphics are dated! Another 10 man-years down the drain! Place your bets... (spin)"
It depends a lot on the genre of your game, and what the gameplay involves. For instance, I suspect we can render a chess set or deck of cards well enough that current software might be playable for folks 1,000 years from now (given appropriate hardware, of course).
On the other hand, let's say the game (or milsim) involves crawling through the jungle as a soldier. Ideally you want totally realistic graphics. That means physically based vegetation that blows in the wind, millions of polygons for all the individual leaves, bugs, flowers and so on. Also you will want the scattering and absorption of light radiation to be as correct as possible, since perceived color and contrast are very sensitive to those issues (i.e. realistically seeing the enemy guys in camo, or not). Ultimately, you could probably throw the entire Earth Simulator at the problem and still not have enough compute cycles to do a completely adequate job.
Cards like the Radeon 9700 Pro and the GeForceFX are a big step towards being able to render the scene with realistic lighting. The cards still won't push enough polygons for a (for instance) completely believable flight simulation experience, there is still plenty of room for improvement there.
Now (if you made it this far) for my main point - the rapid rate of progress shouldn't really matter to you as a game designer.
The reason is that you should be using a standardized API (I recommend OpenGL, or at least a layer to abstract the 3D library so you'll be able to use OpenGL in the future), and you should design your game to be scalable. You should probably use Cg right now for shader programming, at least until OpenGL 2.0 comes along with a standardized shader programming language.
Look at id's excellent line of games. Cross-platform, and the graphics engines scale from low-end systems with mediocre graphics accelerators up to state-of-the-art monsters running at 1600x1200 with every 3D option turned on. There are so many ways to scale the graphics - a really clever implementation would permit the game to take advantage of new card features 10 years from now. You actually might be able to even without that - for instance the user might be able to turn on various advanced options through the driver.
sigh...
Your reaction is the opposite of what it should be. You should be ecstatic that realtime 3D graphics are approaching photorealism. That is a tremendous opportunity, not a problem (for game designers).
I suppose it is a bit of a problem for the gaming consumer, since the advances are coming so fast and furious right now that every upgrade looks like a "must-have"...;-)
what a lot of ignorant prattle I'm seeing about this somehow being "unfair" to poor, poor Microsoft.
Of course, anyone with half a brain realizes that if Java hadn't been torpedoed by Microsoft the monopolist early on it would be the premier method for delivering interactive web content like forms and 98% of the other things Flash (truly a crappy alternative IMO) is used for now.
So, WOOHOO for Java winning a round or two - its a nice trend that I hope helps it pick up big momentum. Java is quickly becoming the best choice for most modern, industrial strength software development.:-)
Re:From the people who brought you:
on
Effective Java
·
· Score: 2
It's not that the language itself is bad (although it certainly has some gaping holes). It has more to do with the poor (buggy) implementation of the APIs and the real-time interpretation.
Which APIs? Which bugs? Nothing is bug free. Also, your comment about "real time interpretation" is off base, see below.
Java isn't nearly as portable as they would have you believe (writing a 100-line applet and then running it on two different web browsers will tell you that.)
Applets apply to Java portability how again? Are you under the impression that some significant amount of Java development today relates to applets? Answer: not really. Further, if you use a decent JRE in both browsers you'll find you have no applet portability problems either.
Additionally, in my opinion, Java would have been much more useful if had been designed as a compiled (not interpreted) language.
Now you are exhibiting true ignorance for the world to see. There are many traditional, ahead of time, Java compilers. gcj, TowerJ and Jet come to mind. Look back at the recent article on x86 Linux numerics. Check out the linked article from that post - note gcj is only 9% slower than g++. Supposedly gcj 3.3 and 3.4 both improve gcj speed substantially over the 3.2 compiler used in that article...one guesses the more mature g++ will see less speedup.
In short, your reasons for liking C++ over Java don't hold water except for verbosity.;-)
(BTW, I'll give you a strong reason for disliking C++ - you can't turn on bounds checking in STL arrays using operator[] without hacking STL. Ugly.)
As I said, I'm pretty sure they are already routinely flying over U.S. airspace. I'll ask a friend of mine, he's a qualified GH pilot (teleoperated takeoffs and landings). I'm not sure of the size of the total fleet but I did run across this interesting link. A relevant portion:
"The bill includes $129 million for procurement of 3 Global Hawk Unmanned Aerial Vehicles (UAVs), and $42 million to accelerate development of a Navy Global Hawk variant (Broad Area Maritime Surveillance). The Global Hawk is largely built in California and Beale Air Force Base in Northern California serves as a primary hub of Global Hawk activity. The bill also includes $131 million for procurement of 22 Predator UAVs, an addition of $26 million over the Administration's budget request."
Emphasis mine.:-)
Also, that is three more Global Hawks included in the 2002 budget alone.
Good post, but I couldn't resist your tagline. Here are the reasons:
Lower taxes
Lower taxes
Lower taxes (this one bore repeating;)
Lower interest rates
Better business climate
Better economic plan
Better defense strategy No interns sighted below the waistline!
:-)
Actually, I'd prefer to vote for a better alternative - I'm simply sure it won't be coming from the Democrats. Now, if the Libertarian candidate actually had a shot...;-)
Already happened...
on
Droning On
·
· Score: 4, Interesting
Federal regulators have begun considering rules that would allow drones, the pilotless planes being used in the war in Afghanistan, to fly in U.S. airspace.
This is already happening. At least I presume the Global Hawk flew through U.S. airspace to get from Edwards to Alaska.;-)
Actually, Global Hawk flights over the continental US are now routine as I understand it. And these are not small drones, witness:
Global Hawk:
Wing span: 116 ft
Length: 44 ft
Height: 15 ft
Performance Goals
Range: 12,500 nmi
Approx. Endurance: 35 hrs
Endurance @1200nm: 24 hrs
Altitude: 65,000 ft
True Airspeed: 335 kts
Gross T/O wt: 26,750 lbs
Payload wt: 2,000 lbs
Payloads: EO/IR and SAR
I have no problem with this personally, but I can see how some might get a little nervous.;-)
Doesn't it seem like letting the employer and employee work out how much money the job will pay is a much better system than having some bureaucracy decide what the prevailing wage is and binding everyone to that? Or is there something about being born outside the borders of the United States that makes wage negotiations inherently evil?
What it means is that, in a very narrow range of professions, you get to compete with hundreds of thousands of people who'd be THRILLED to be making $20,000 a year in their homeland.
There was never any meaningful shortage of labor if the employer was willing to pay enough. Its called "supply and demand". And guess what, if tech jobs paid more, more graduates would go into tech jobs! What a concept. The entire point of H1-B visas is cheaper labor. Funny how CEO positions are never filled with H1-B folk though...
I have to say its disgusting that the AFL/CIO is the one doing the whistleblowing rather than, oh, say, the current executive branch! Strange bedfellows indeed...
people will complain that the comparison is unfair. Timing routines are language-specific; C, for example, doesn't include a Standard function for obtaining time on the millisecond level. If the cross-language comparison is to have any meaning, the timing method must be consistent across all languages.
If the total runtime is (say) 25 seconds, and (say) 3 microseconds is taken doing time queries (I'm sure its less in our example), the overhead is way down in the 6th or 7th decimal - which you aren't even reporting and is meaningless anyway.
There is a simple test for overhead...remove the time tracking (and I/O) from the inner loop and see if your outer loop timing changes. Bet it won't.
Though I didn't discuss it in my post, I wanted to see the effect of further HotSpot optimization over time. As with other benchmarks I've seen, it tends to be negligible after the first couple of iterations.
I think one of your problems is that you don't have a convenient hi-res timer function in C on Linux. I'll see if I can track one down that uses the appropriate Pentium instruction - it is a single assembler instruction to retrieve the high performance timer value. Resolution is under a microsecond.
You could always go over the top and call the C function using JNI or whatever C language binding is available in your other languages of interest. Really, though, I think System.currentTimeMillis() should be sufficient in Java.
Don't lose track of my results over this issue though. gcj performed MUCH better in my benchmarking - please attempt to at least duplicate the compiler switches and run again. Thanks!
Well, I was going to post the main() method I modified, but Slashdot won't let me.:( It was two long variable instantiations, two calls to System.currentTimeMillis(), and two calls to System.out.println(). I bet you can guess where...
OK, I must admit I went into this with some preconceptions which I'm now re-evaluating. I think the author did a pretty good job, despite those inner-loop memory allocations and his timing methodology.
My feeling about timing is that it is trivial to get the system time to less than a microsecond resolution on x86 systems, and the overhead of doing so is totally negligible in a reasonable benchmark, as long as it only happens a few times.
I modified his Java benchmark to print out a little more information. I also followed some advice from the discussion on better compiler switches for gcj.
GREAT showing for gcj...now 3.2 TIMES faster than Sun JDK 1.4!!! I'll post results for gcc with similar mods later.
All times are on my completely stock Athlon 2100+ XP - which benched faster than his P4 2800 using JDK 1.4. Maybe he should check out AMD after all.;-) My bench did not reflect startup time, but trust me it wasn't close to six seconds (more like less than one).
This has really changed my thinking about gcj, although I'm also impressed with his Intel compiler times. I'll see if there is a free trial and see how the Intel code does on my Athlon. I've heard the generated code runs well on AMD systems also - I suppose unless SSE2 is used.;-)
As you point out, the "ia32" world is very fragmented -- a problem that will only grow as AMD and Intel continue to try and distinguish themselves with new processors. Supporting all these variations would bloat the JVM considerably, or require many different JVMs that could be a support nightmare for Sun.
I'm not sure the x86 VMs are too much for Sun - after all Sun now sells x86 boxes.
There are only two meaningful variations on x86 - P4 and Athlon/Hammer. Not that big of a deal.
I do think, though, that AMD should license someone's VM and then provide super high performance 64-bit versions for Hammer under both Windows and Linux. Direct x86-64 support for gcc/gcj from AMD would be nice too.:-)
Check out the vocabulary and grammar. I hope we're educating comparable citizens in similar proportions
today to what it was then, but somehow I doubt it...
IMHO, that is the where AMD has the strongest edge over Intel and that it does > 32 bit addressing. Micron has demo'ed 1 Gb DDR's which can be used to make a 4 GB DIMM.
Good point. I'm glad things are progressing so my next machine will be able to take more than 6x the memory of the one I'm using now. Although 3 or 4 GB is still a lot of RAM for 99.99% of current users...;-)
For those that need it, more is a beautiful thing though.
One thing I wish I'd remembered to post yesterday was that another great feature is that in multiway systems each CPU has it's own memory controller, so both total memory capacity and total memory bandwidth scale with more processors. Interprocessor communication is via either one or two high performance HyperTransport links, so it all looks like one giant memory pool logically.
The real question for AMD is: can they build the Opteron? Sadly, the longer the Opteron is delayed the more likely it is to turn from silicon to vapor phase.
If this were an issue Itanium would already be gone. Remember the original schedule?
I suspect that the real reason that the Intel X86-64 processor got canceled is that Intel decided that the Opteron was likely going into vapor phase. The fact that AMD has little to say on the subject sadly confirms this. The z800 was never officially dropped, it just faded away quietly - which is how vapor phase works.
I don't suppose it matters that AMD has demoed working silicon?
And yes, I have a manual from Zilog featuring the Z800 - so the documentation AMD has recently produced really doesn't matter much.
You are of course right in the sense that until the exact moment AMD actually begins shipping some volume of these chips at full speed, it is unknown if they will actually be able to do so. However, I think you're being very naive in your assessment.
(well, ok... it seems to be doing ok for them as a company, since the profit margins are huge... but it's doing nada for the average consumer).
You're mistaken if you think Itanic has created a profit for Intel at this point. Instead, it is a net loss that looks more and more like a looming disaster.
Intel will lose tremendous face in the computer world if Itanic fails. My guess is that it will.
The processor really doesn't turn in great results and seems to get beaten by a 12 month old P4.
Of course, the Opterons haven't been shown at full speed yet. By all means keep posting flamebait and disinformation, though. Estimated SPEC scores have been available for a while. Here is the relevant snippet:
A single Opteron core running at an actual clock speed of 2.0-GHz with registered PC2700 memory yielded a SPECint2000 score of 1202, and a SPECfp2000 score of 1170, Weber said. He did not formally disclose whether the chip was a "Clawhammer" or "Sledgehammer" chip.
The scores for a Dell 3.06 P4 are 1084 SPECint, 1092 SPECfp. Not bad for 2/3 the clock speed...and much faster on integer performance than Itanic.:-)
Do you really think AMD's new.13 micron chip will top out at 2.0 GHz. in the near term?
The other beauty of Opteron is the ease of building multiway systems up to eight-way...as opposed to HYPErthreading. Personally, I prefer multiple real processors if I'm going to pay additional license fees...
kids view computers as little more than video games and media playback devices, its going to be tough.
If it were cool to be smart, and sufficiently good software were available, computers would be the best teaching tool found to date. Making it cool to be smart is probably harder than writing the software.
A computer is essentially a full-time one-on-one teacher with infinite patience (granted not perfect, but with strengths in addition to weaknesses). The way I would use it would be to find those children that show aptitude and results from their computer exposure, and increase their percentage of computer learning. That lets the human teachers concentrate on those who need the help, and lets those who are more self-motivated to proceed at their own pace. However, in todays politically correct world, I doubt that is happening much.
The final thing I'd like to say on this subject is that its hard to overestimate the impact of better displays and portable systems for education. Those have both improved considerably over the last couop
If you know how to design things well, Java is one of the best languages to use because you spend most of the time implementing the design rather than the plumbing.
Yes. Even for soft realtime things (like video games) Java can work fine if you avoid intensive garbage collection during the realtime processing. That isn't so hard in these days of multi-hundred MB machines.
Another point is that the better defined (what some view as somewhat restrictive) nature of Java permits further optimizations than possible in C. Also the VM can generate optimized code for the exact processor its running on, though I'm not sure how much of that is happening in practice right now.
At any rate, the VMs are now very good. Run your own benchmarks and decide for yourself.
Really? Has ATI released industrial-quality OpenGL drivers for Linux?
Great support for Linux is one reason to go NVIDIA...let me know when ATI's Linux 3D support compares to NVIDIA.
The easiest way to get shot is to carry a gun -- Atticus Finch
Not true at all, just go to San Diego and rush a cop with a gardening stake or a trowel in hand. In both such cases, the individual was shot and killed. The guy with the trowel was naked and in the middle of a major freeway (with a bunch of civilan onlookers). Someone simply carrying a gun would just be quietly arrested (unless of course a permit was involved).
If you want a gun-related sig, why not try:
"Abe Lincoln may have freed all men, but Sam Colt made them equal." ;-)
More importantly, it has a fully floating point graphics pipeline, and massive shader programmability (SIMD).
I wonder if we're ever going to get to a point where "this is the hardware. You have 10 years to do something cool with it" instead of "oh, look, your program is obsolete again! Your graphics are dated! Another 10 man-years down the drain! Place your bets... (spin)"
It depends a lot on the genre of your game, and what the gameplay involves. For instance, I suspect we can render a chess set or deck of cards well enough that current software might be playable for folks 1,000 years from now (given appropriate hardware, of course).
On the other hand, let's say the game (or milsim) involves crawling through the jungle as a soldier. Ideally you want totally realistic graphics. That means physically based vegetation that blows in the wind, millions of polygons for all the individual leaves, bugs, flowers and so on. Also you will want the scattering and absorption of light radiation to be as correct as possible, since perceived color and contrast are very sensitive to those issues (i.e. realistically seeing the enemy guys in camo, or not). Ultimately, you could probably throw the entire Earth Simulator at the problem and still not have enough compute cycles to do a completely adequate job.
Cards like the Radeon 9700 Pro and the GeForceFX are a big step towards being able to render the scene with realistic lighting. The cards still won't push enough polygons for a (for instance) completely believable flight simulation experience, there is still plenty of room for improvement there.
Now (if you made it this far) for my main point - the rapid rate of progress shouldn't really matter to you as a game designer.
The reason is that you should be using a standardized API (I recommend OpenGL, or at least a layer to abstract the 3D library so you'll be able to use OpenGL in the future), and you should design your game to be scalable. You should probably use Cg right now for shader programming, at least until OpenGL 2.0 comes along with a standardized shader programming language.
Look at id's excellent line of games. Cross-platform, and the graphics engines scale from low-end systems with mediocre graphics accelerators up to state-of-the-art monsters running at 1600x1200 with every 3D option turned on. There are so many ways to scale the graphics - a really clever implementation would permit the game to take advantage of new card features 10 years from now. You actually might be able to even without that - for instance the user might be able to turn on various advanced options through the driver.
sigh...
Your reaction is the opposite of what it should be. You should be ecstatic that realtime 3D graphics are approaching photorealism. That is a tremendous opportunity, not a problem (for game designers).
I suppose it is a bit of a problem for the gaming consumer, since the advances are coming so fast and furious right now that every upgrade looks like a "must-have"... ;-)
Of course, anyone with half a brain realizes that if Java hadn't been torpedoed by Microsoft the monopolist early on it would be the premier method for delivering interactive web content like forms and 98% of the other things Flash (truly a crappy alternative IMO) is used for now.
So, WOOHOO for Java winning a round or two - its a nice trend that I hope helps it pick up big momentum. Java is quickly becoming the best choice for most modern, industrial strength software development. :-)
Which APIs? Which bugs? Nothing is bug free. Also, your comment about "real time interpretation" is off base, see below.
Java isn't nearly as portable as they would have you believe (writing a 100-line applet and then running it on two different web browsers will tell you that.)
Applets apply to Java portability how again? Are you under the impression that some significant amount of Java development today relates to applets? Answer: not really. Further, if you use a decent JRE in both browsers you'll find you have no applet portability problems either.
Additionally, in my opinion, Java would have been much more useful if had been designed as a compiled (not interpreted) language.
Now you are exhibiting true ignorance for the world to see. There are many traditional, ahead of time, Java compilers. gcj, TowerJ and Jet come to mind. Look back at the recent article on x86 Linux numerics. Check out the linked article from that post - note gcj is only 9% slower than g++. Supposedly gcj 3.3 and 3.4 both improve gcj speed substantially over the 3.2 compiler used in that article...one guesses the more mature g++ will see less speedup.
In short, your reasons for liking C++ over Java don't hold water except for verbosity. ;-)
(BTW, I'll give you a strong reason for disliking C++ - you can't turn on bounds checking in STL arrays using operator[] without hacking STL. Ugly.)
That was a test flight in 1999.
They'er considering deploying a lot of these.
As I said, I'm pretty sure they are already routinely flying over U.S. airspace. I'll ask a friend of mine, he's a qualified GH pilot (teleoperated takeoffs and landings). I'm not sure of the size of the total fleet but I did run across this interesting link. A relevant portion:
"The bill includes $129 million for procurement of 3 Global Hawk Unmanned Aerial Vehicles (UAVs), and $42 million to accelerate development of a Navy Global Hawk variant (Broad Area Maritime Surveillance). The Global Hawk is largely built in California and Beale Air Force Base in Northern California serves as a primary hub of Global Hawk activity. The bill also includes $131 million for procurement of 22 Predator UAVs, an addition of $26 million over the Administration's budget request."
Emphasis mine. :-)
Also, that is three more Global Hawks included in the 2002 budget alone.
Lower taxes
Lower taxes
Lower taxes (this one bore repeating;)
Lower interest rates
Better business climate
Better economic plan
Better defense strategy
No interns sighted below the waistline!
Actually, I'd prefer to vote for a better alternative - I'm simply sure it won't be coming from the Democrats. Now, if the Libertarian candidate actually had a shot... ;-)
This is already happening. At least I presume the Global Hawk flew through U.S. airspace to get from Edwards to Alaska. ;-)
Actually, Global Hawk flights over the continental US are now routine as I understand it. And these are not small drones, witness:
Global Hawk:
Wing span: 116 ft
Length: 44 ft
Height: 15 ft
Performance Goals
Range: 12,500 nmi
Approx. Endurance: 35 hrs
Endurance @1200nm: 24 hrs
Altitude: 65,000 ft
True Airspeed: 335 kts
Gross T/O wt: 26,750 lbs
Payload wt: 2,000 lbs
Payloads: EO/IR and SAR
I have no problem with this personally, but I can see how some might get a little nervous. ;-)
What it means is that, in a very narrow range of professions, you get to compete with hundreds of thousands of people who'd be THRILLED to be making $20,000 a year in their homeland.
There was never any meaningful shortage of labor if the employer was willing to pay enough. Its called "supply and demand". And guess what, if tech jobs paid more, more graduates would go into tech jobs! What a concept. The entire point of H1-B visas is cheaper labor. Funny how CEO positions are never filled with H1-B folk though...
I have to say its disgusting that the AFL/CIO is the one doing the whistleblowing rather than, oh, say, the current executive branch! Strange bedfellows indeed...
Not a 'timing loop' - 'time function'.
people will complain that the comparison is unfair. Timing routines are language-specific; C, for example, doesn't include a Standard function for obtaining time on the millisecond level. If the cross-language comparison is to have any meaning, the timing method must be consistent across all languages.
If the total runtime is (say) 25 seconds, and (say) 3 microseconds is taken doing time queries (I'm sure its less in our example), the overhead is way down in the 6th or 7th decimal - which you aren't even reporting and is meaningless anyway.
There is a simple test for overhead...remove the time tracking (and I/O) from the inner loop and see if your outer loop timing changes. Bet it won't.
Though I didn't discuss it in my post, I wanted to see the effect of further HotSpot optimization over time. As with other benchmarks I've seen, it tends to be negligible after the first couple of iterations.
I think one of your problems is that you don't have a convenient hi-res timer function in C on Linux. I'll see if I can track one down that uses the appropriate Pentium instruction - it is a single assembler instruction to retrieve the high performance timer value. Resolution is under a microsecond.
You could always go over the top and call the C function using JNI or whatever C language binding is available in your other languages of interest. Really, though, I think System.currentTimeMillis() should be sufficient in Java.
Don't lose track of my results over this issue though. gcj performed MUCH better in my benchmarking - please attempt to at least duplicate the compiler switches and run again. Thanks!
Well, I was going to post the main() method I modified, but Slashdot won't let me. :( It was two long variable instantiations, two calls to System.currentTimeMillis(), and two calls to System.out.println(). I bet you can guess where...
My feeling about timing is that it is trivial to get the system time to less than a microsecond resolution on x86 systems, and the overhead of doing so is totally negligible in a reasonable benchmark, as long as it only happens a few times. I modified his Java benchmark to print out a little more information. I also followed some advice from the discussion on better compiler switches for gcj.
Here are the results I got this morning:
[glock27@rigel java]$ java -version ./almabench
java version "1.4.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)
[glock27@rigel java]$ javac *
[glock27@rigel java]$ java almabench
starting...
elapsed ms: 3915
elapsed ms: 3904
elapsed ms: 3893
elapsed ms: 3894
elapsed ms: 3888
elapsed ms: 3909
elapsed ms: 3893
elapsed ms: 3895
elapsed ms: 3897
elapsed ms: 3899
elapsed ms: 3893
elapsed ms: 3897
elapsed ms: 3890
elapsed ms: 3918
elapsed ms: 3893
elapsed ms: 3897
elapsed ms: 3891
elapsed ms: 3908
elapsed ms: 3893
elapsed ms: 3893
total elapsed ms: 78509
[glock27@rigel java]$ gcc --version
gcc (GCC) 3.2 20020903 (Red Hat Linux 8.0 3.2-7)
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[glock27@rigel java]$ make
gcj -o almabench.o -march=athlon -mcpu=athlon -O3 -ffast-math -funroll-loops -fno-bounds-check -c almabench.java
gcj --main=almabench -o almabench -march=athlon -mcpu=athlon -O3 -ffast-math -funroll-loops -fno-bounds-check almabench.o
[glock27@rigel java]$
starting...
elapsed ms: 1227
elapsed ms: 1202
elapsed ms: 1209
elapsed ms: 1206
elapsed ms: 1209
elapsed ms: 1211
elapsed ms: 1207
elapsed ms: 1211
elapsed ms: 1219
elapsed ms: 1204
elapsed ms: 1212
elapsed ms: 1207
elapsed ms: 1205
elapsed ms: 1215
elapsed ms: 1207
elapsed ms: 1212
elapsed ms: 1205
elapsed ms: 1207
elapsed ms: 1207
elapsed ms: 1206
total elapsed ms: 24478
GREAT showing for gcj...now 3.2 TIMES faster than Sun JDK 1.4!!! I'll post results for gcc with similar mods later.
All times are on my completely stock Athlon 2100+ XP - which benched faster than his P4 2800 using JDK 1.4. Maybe he should check out AMD after all. ;-) My bench did not reflect startup time, but trust me it wasn't close to six seconds (more like less than one).
This has really changed my thinking about gcj, although I'm also impressed with his Intel compiler times. I'll see if there is a free trial and see how the Intel code does on my Athlon. I've heard the generated code runs well on AMD systems also - I suppose unless SSE2 is used. ;-)
I'm not sure the x86 VMs are too much for Sun - after all Sun now sells x86 boxes.
There are only two meaningful variations on x86 - P4 and Athlon/Hammer. Not that big of a deal.
I do think, though, that AMD should license someone's VM and then provide super high performance 64-bit versions for Hammer under both Windows and Linux. Direct x86-64 support for gcc/gcj from AMD would be nice too. :-)
Give me liberty, or give me death!
Check out the vocabulary and grammar. I hope we're educating comparable citizens in similar proportions today to what it was then, but somehow I doubt it...
This is a time in which our democracy could possibly turn into something much uglier.
To which I can only add:
Give me liberty or give me death! --Patrick Henry
Good point. I'm glad things are progressing so my next machine will be able to take more than 6x the memory of the one I'm using now. Although 3 or 4 GB is still a lot of RAM for 99.99% of current users... ;-)
For those that need it, more is a beautiful thing though.
One thing I wish I'd remembered to post yesterday was that another great feature is that in multiway systems each CPU has it's own memory controller, so both total memory capacity and total memory bandwidth scale with more processors. Interprocessor communication is via either one or two high performance HyperTransport links, so it all looks like one giant memory pool logically.
Very cool.
If this were an issue Itanium would already be gone. Remember the original schedule?
I suspect that the real reason that the Intel X86-64 processor got canceled is that Intel decided that the Opteron was likely going into vapor phase. The fact that AMD has little to say on the subject sadly confirms this. The z800 was never officially dropped, it just faded away quietly - which is how vapor phase works.
I don't suppose it matters that AMD has demoed working silicon?
And yes, I have a manual from Zilog featuring the Z800 - so the documentation AMD has recently produced really doesn't matter much.
You are of course right in the sense that until the exact moment AMD actually begins shipping some volume of these chips at full speed, it is unknown if they will actually be able to do so. However, I think you're being very naive in your assessment.
The best evidence I can offer of this is the Cray supercomputer being built using over 10,000 Opterons. Trust me, Cray wouldn't risk it's fragile reputation and profits on "vaporware".
Gee, I wonder why Itanic didn't get the design win? ;-)
You're mistaken if you think Itanic has created a profit for Intel at this point. Instead, it is a net loss that looks more and more like a looming disaster.
Intel will lose tremendous face in the computer world if Itanic fails. My guess is that it will.
Nice try. Microsoft has already publically announced 64-bit Windows support for x86-64.
Relevant quote:
AMD's newly named Opteron server processor will get its own 64-bit version of Windows, and the 64-bit desktop Athlons will not be forgotten either
Linux is ready as well.
Now, if we can just get MacOS X.... =)
Of course, the Opterons haven't been shown at full speed yet. By all means keep posting flamebait and disinformation, though. Estimated SPEC scores have been available for a while. Here is the relevant snippet:
A single Opteron core running at an actual clock speed of 2.0-GHz with registered PC2700 memory yielded a SPECint2000 score of 1202, and a SPECfp2000 score of 1170, Weber said. He did not formally disclose whether the chip was a "Clawhammer" or "Sledgehammer" chip.
The scores for a Dell 3.06 P4 are 1084 SPECint, 1092 SPECfp. Not bad for 2/3 the clock speed...and much faster on integer performance than Itanic. :-)
Do you really think AMD's new .13 micron chip will top out at 2.0 GHz. in the near term?
The other beauty of Opteron is the ease of building multiway systems up to eight-way...as opposed to HYPErthreading. Personally, I prefer multiple real processors if I'm going to pay additional license fees...
If it were cool to be smart, and sufficiently good software were available, computers would be the best teaching tool found to date. Making it cool to be smart is probably harder than writing the software.
A computer is essentially a full-time one-on-one teacher with infinite patience (granted not perfect, but with strengths in addition to weaknesses). The way I would use it would be to find those children that show aptitude and results from their computer exposure, and increase their percentage of computer learning. That lets the human teachers concentrate on those who need the help, and lets those who are more self-motivated to proceed at their own pace. However, in todays politically correct world, I doubt that is happening much.
The final thing I'd like to say on this subject is that its hard to overestimate the impact of better displays and portable systems for education. Those have both improved considerably over the last couop
Thanks!
Get busy with SWT then. SWT is designed to do exactly that (bind native widgets to Java), and is open source.
Have fun!
Yes. Even for soft realtime things (like video games) Java can work fine if you avoid intensive garbage collection during the realtime processing. That isn't so hard in these days of multi-hundred MB machines.
Another point is that the better defined (what some view as somewhat restrictive) nature of Java permits further optimizations than possible in C. Also the VM can generate optimized code for the exact processor its running on, though I'm not sure how much of that is happening in practice right now.
At any rate, the VMs are now very good. Run your own benchmarks and decide for yourself.
"./tome: Cannot load 'v_info.raw' file."
There is no v_info.raw file, anywhere (though there are several other .raw files).
HELP! I want to play it! :-)
(Ironically, it looks like I can download a pre-built distribution for Windows.)