Dark_Sceptre Posted May 9, 2005 Posted May 9, 2005 As most of you will know, both Intel and AMD are now officially on record saying that future performance gains on the CPU front will be achieved through the use of multiple cores. This is a big change that will affect the industry in many ways, and given that simulators are amongst the most CPU intensive apps in use, it would be interesting to hear what Eagle feel about the subject. Now, the background probably needs some explaining. Up until now, Moore's law has applied to CPUs as well as to mass storage - we've had an exponential increase in CPU frequency and on-die parallelism with the net effect that applications would run at roughly twice the speed every second year. Many times, people have predicted that this trend would stop - but until recently, these predictions have proben to be wrong. Or rather, the chip designers have found ways to circumvent various pitfalls that have allowed them to adhere to Moore's law. However if you look at the last 2-3 years, CPU speeds have not been increasing at the same pace that they used to, 4 years ago. According to initial predictions, the P4 should have hit 4GHz several years ago, but it still hasn't and now Intel have even given up their plans for ever releasing this chip. We will probably get a 4GHz CPU in the not-so-distant future, but it will probably not be a Pentium 4 or AMD Athlon. Obviously, neither AMD nor Intel can afford to nor would they want to, stop selling new chips so they must find a way to keep pushing performance to new levels so people will keep upgrading their systems. The average lifetime of a CPU that is kept cooled and within nominal limits is anywhere between 4-8 years so obviously there's little incentive for CPU upgrades if you can't buy something that will run faster. So if you can't (yet) increase the raw performance of your CPU core, the only solution is to increase the level of parallelism by adding a second CPU core to the solution. And this is exactly what they are doing. And it's not only the wintel part of the industry - Sun have beat both AMD & Intel and released a dual-core SPARC cpu that's on sale now (I have four of them being prepared for a SyBase cluster as we speak). Then there's the Cell CPU that's been making headlines for some months now - not a dual-core CPU as such, but designed for multiple core interaction from scratch and is supposed to scale easily to hundreds of Cell cores working in parallel through onboard and WAN interconnects. Unfortunately, the big drawback of parallel processing is that, obviously, only parallel threads benefit. And what's more, to keep heat emissions in check both Intel and AMD have been forced to throttle back the performance of each core slightly - so single-threaded apps will actually run *slower* on a dual core than on a similar single-core CPU. Furthermore, making a single-threaded app run reliably as multiple threads is far from easy. It's nothing short of a paradigm shift, comparable to the early 90ies move from traditional procedural programming to object-orientation. Once you have multiple threads doing parallel processing of data that must be ready before yet another thread can continue execution, you run into all sorts of esoteric race conditions and just plain weird behaviour. At a bare minimum, you need a highly structured and planned approach to your programming - always Good Thing, but essential once you move to parallel threads. The bottom line is that for the foreseeable future, the performance Free Ride is over. A year from now, old games will not run any faster than they already do. Only new games, written to be parallel, can ever benefit from the presence of a second (or fourth) CPU core. We'll have flashier graphics processors, sure, but that only helps increase framerates for games that aren't CPU bound - and unfortunately, Combat Flight Simulators are very CPU bound due to the massive amounts of ongoing ballistics, flight & AI calculations. On the flip side though, I personally would say that a CFS is a good example of a game that lends itself to parallel processing exactly because of all the various tasks that are continually being performed. Let's say that you divide your game into multiple engines that run more or less independently - weather, Flight Mechanics, user interaction, avionics modelling, and graphics engine are all tasks that seem sufficiently discrete to be running in a thread of their own with occasional (on a human scale) synch using a defined API. And each instance of AI or human (for multiplayer) objects could/should spawn a separate thread that interact with each other and the global environment - possibly using an event driven interface that wakes up a thread whenever something changes that requires attention. Anyway, the point I'm trying to make here is essentially that Lock On won't run much faster than it already does, ever, unless the engine is rewritten as a multithreaded application. This would involve a lot of work, but I suspect that the end result would be worth it. The process itself would force a design that is both more robust and better performing, and definitely more scalable.
Andrew_McP Posted May 9, 2005 Posted May 9, 2005 Anyway, the point I'm trying to make here is essentially that Lock On won't run much faster than it already does, ever, unless the engine is rewritten as a multithreaded application. That seems likely, unfortunately. Maybe if Intel or AMD squeeze 512Mb of fast cache onto their processors that would also help a lot. We might need a generation or two of wafer improvements first though :-) Andrew McP
schimmel Posted May 9, 2005 Posted May 9, 2005 Great post. Lots of applications are already multithreaded today. F.ex. my browser consists of 12 threads at the moment. One has also to keep in mind, that multithreaded isn't always possible or useful. I had once to do this in school. The Mandelbrot f.ex. was very easy to implement in a multithreaded way. But some other implementations even resulted in a slower performance on 4 processors than on 1 (because of the mass of communication). You have to be able to split your app into several independant serial processes/threads. Lots of communication and syncronisation results in bad performance. The Quake engine was one of the first games with mulithread support (SMP). Unfortunately, there was not much increase in performance. Maybe due to bad implementation or due to the reasons mentioned above. What I want say, is that IMO this new dual(multi?) core hype has still to prove that it is more than simple publicity. Most of the performance is still used on the graphics. So why don't we have dual cored graphic cards? Ati and Nvidia don't seem to be all that excited about dual core.
coldcrew Posted May 9, 2005 Posted May 9, 2005 measuring moores law by ghz alone is wrong. AMD hasn't been able to keep up with intel in terms of ghz but their chips are faster or equal to most of the intel ones. Why? because they are more efficient. The ghz may not be increase as much as it used to but the effiency of the chips are still on track. As for dual core, separate dual core solutions have existed for years, it required a special motherboard and two or more independent chips. The new dual core will be less expensive overall but it's really nothing new.
arraamis Posted May 9, 2005 Posted May 9, 2005 AMD has squeezed all they can get from their current manufacturing process. And they have been saying for the last 2+ years that a dual core process had to be developed in order to reach the next level. So, in that regard this is old news. But, the actual creation of a chip that is able to utilize such technology is finally here. "IMO" Intel is just following the uncrowned king, because they were in the final stages of releasing another soon to fail chip to compete with the Athlon64's. But they scrapped it, when the news spread that AMD had finalized the design process and were developing the dual core chip. I'll take my FX-55 AMD over anything Intel currently has on the market. I just wish it had 128KB + 128KB L1 cache & 2MB L2 cache, then it would have been an unbeatable chip. {after OC it to 3.0GHZ and H2O cooling it} I say develop a 939 mobo with the neo4 chipset, that will support two FX based chips. And incorporate SMP into the newly developed titles to take advantage of the processing power, And we are home. Dual core can be put on the backburner, dual chip\dual GPU configurations are the way to go.
Dark_Sceptre Posted May 9, 2005 Author Posted May 9, 2005 measuring moores law by ghz alone is wrong. AMD hasn't been able to keep up with intel in terms of ghz but their chips are faster or equal to most of the intel ones. Why? because they are more efficient. The ghz may not be increase as much as it used to but the effiency of the chips are still on track. As for dual core, separate dual core solutions have existed for years, it required a special motherboard and two or more independent chips. The new dual core will be less expensive overall but it's really nothing new. I think you're missing my point entirely. True, performance is not measured in MHz - only a benchmark is really a valid performance measure. However, this is how traditionally speed gains have been made and the primary way by which old apps have been made to run faster. Obviously, you can also redesign your CPU architecture and make it run faster, per CPU cycle, than your old ones did. This is not necessarily of any benefit to Lomac however - quite possibly the game would not even run. Also I am not saying that dual core is something new in any way - massively MP systems have been here since the dawn of the computer age, and both Cray and Silicon Graphics were able to achieve their stellar (by that day's standards) performance through the combination of large amounts of CPU cores and clever programming to utilize these in an intelligent fashion. What IS new however is the fact that you will not be able to buy a CPU, 2 years from now, that will run your existing games faster than they already do on a high-end CPU. This is totally unprecedented in the IBM PC world. Up until now, we have been spoiled with an architecture that has continually evolved from the 8080 processor all the way up to P4EE with total backwards compatibility. You can install MS-DOS and run a game from 1988 on your PC and it will run - only about a thousand times faster than it did back then. This is what I mean by Moore's law no longer applying - future gains in performance will happen through architectural design and increasing parallelism, and not through single thread performance improvements. For a more indepth look on what's going on, I suggest the following article; http://www.gotw.ca/publications/concurrency-ddj.htm it explains what I'm trying to get across better than I can ;)
Kula66 Posted May 9, 2005 Posted May 9, 2005 Well dual core does allow all the OS background tasks to run on 1 CPU freeing 100% of the other for the game ... so it should help BUT game developers are just going to have to go multi-threading ... and then we can start buying 8/16 way boxes!!!
coldcrew Posted May 9, 2005 Posted May 9, 2005 What IS new however is the fact that you will not be able to buy a CPU, 2 years from now, that will run your existing games faster than they already do on a high-end CPU well that's a bold prediction, which I'm inclined to disagree with of course. This again is nothing new. People predicted the death of the 8088 based processor before we even hit 1ghz and they were wrong. People predicted RISC processors will be the processor of the future and the x86 still dominates even today. There is always a tendency to give doomsday predictions when there is a lull in advancement of technology and those predictions have always been wrong. 2 years from now the single core processors will be faster than anything we have today. Imho you're buying too much into the dual core hype. 1) It is nothing new, super computers use multiple processors to gain performance 2) It is more expensive than a single core processor and the focus will always be on making faster single core processors I mean if we follow your path of logic then 2 years from now AMD will say we have to buy quad core processors and then 8 core processors and so on. Imagine running a system with a 16core p2 processors. Not very exciting is it? There will always be faster single core processors because it's the only practical way of making faster dual core solutions.
Dark_Sceptre Posted May 9, 2005 Author Posted May 9, 2005 Well dual core does allow all the OS background tasks to run on 1 CPU freeing 100% of the other for the game ... so it should help BUT game developers are just going to have to go multi-threading ... and then we can start buying 8/16 way boxes!!! Yes, and new motherboards & HDDs will support command queue reordering which futher improves multi-tasking performance (todays IDE HDDs are abysmal once you get more than one active task requesting data from mass storage); clearly, our systems will keep getting faster one way or another. The whole industy is geared towards growth through obsolescence rather than through spare parts replacement, and as long as it can be done they will keep making systems that are better. The big challenge here is that writing parallel code is exponentially more complex than writing serial code. Any task, when broken into discrete steps of "if - then - else" etc, can be written by practically anyone who's versant in programming. The challenge in single-threaded programming lies in managing complexity and writing fast code. Once your code needs to split into multiple parallel jobs that need to interrelate, you run into the same problems that typically only OS designers have done until now. Quoth BocaBurger at Tek-Tips, "Computers are not the issue. It is the software that allows them to do something, or to crash faster. The new dual core CPUs will now allow multi-threaded applications to crash two threads, independantly."
Kula66 Posted May 9, 2005 Posted May 9, 2005 The big challenge here is that writing parallel code is exponentially more complex than writing serial code. Yep I wrote some years ago ... gets easier (a little) with specialist languages ... its not something I'd want to try in C!
qrazi Posted May 10, 2005 Posted May 10, 2005 moores law doesnt say anything about the speed. what it says is that the number of transistors will aproximately double every 18 months..... and with the introduction of dualcore, and bigger caches, this will stay valid for a few more years.... and the all those new features, 64-bit, dualcore, etc, they will be used in future software, just like it took some time to get directX X (7,8,9), SSE ,2,3 , hyperthreading, commonly used. MSI 870A-G54, AMD Phenom II X2 555 @Phenom II X4 B55 BE, 3.2 GHz quad-core, Asus EAH4870 DK/HTDI/512MD5, OCZ Gold Edition DDR3 1333MHz 4GB Kit Low-Voltage. Budget = Cheap = Good :D
GGTharos Posted May 10, 2005 Posted May 10, 2005 Who said Lock-on is single-threaded anyway? Multi-threaded doesn't necessary imply MULTIPROCESSOR. These are two very different things once you look deeper than the surface. [sIGPIC][/sIGPIC] Reminder: SAM = Speed Bump :D I used to play flight sims like you, but then I took a slammer to the knee - Yoda
Roman G Posted May 11, 2005 Posted May 11, 2005 Who said Lock-on is single-threaded anyway? Some time ago I asked on Lomac Forum multi-processor box owners whether they see any FPS improvement in Lomac compared to single-proc boxes with the-same CPU frequency. Their response was that the FPS was about the same. I think this proves that Lock-on is single-threaded. Maybe some minor things are running in separate threads but the main functionality in Lomac appears to be single-threaded. As 99% of gaming computers are single-CPU boxes - there was no much incentive for programmers to write multithreaded code. What is singnificant in recent dual core shift is that in about two years perhaps 25% of computers will have dual-core CPUs. The games which will be able to fully use both cores will be able to outflank competition. This alone should be enough reason for developers to start developing multi-threaded games. I think it might be quite easy to split a lot of functionality into multiple threads in Lomac. From top-of my head I can think of these: each aircraft is pretty independent on each other so the advanced-flight-dynamics simulation should be able to run in separate thread for each aircraft (or simulation for half planes run in first thread and simulation for second half of planes in the second thread). All this without any need for synchronization, except perhaps for passing the resulting aircraft position and orientation to the rendering thread (this should be just a couple of hundred bytes per second data transfer). Other fairly independend parallelizm I can see is bullets simulation. Again they are independent on each other (I think we can ignore cases when one bullet hits another) so their balistics and collision detection calculations with ground/objects should be easily splittable into multiple threads.
Prophet_169th Posted May 11, 2005 Posted May 11, 2005 Moore's Law, isnt a Law. A Law, is proven to be true. Take the Law of Conservation of Enery. Cant be proven wrong, and makes it a Law. Moore's Law, was mearly a hypothesis, and is obviously being proven wrong. And for the record, Intel scrapped the 4GHz and above processors because it was a new 90nm process, and they couldnt get it to work. Had nothing to do with AMD, had to do with engineering. And that is from an Intel intranet article. Also, Falcon 4 supported SMP. 1 processor would run the campaign, the other the rest. Dual-cores will add performance. But like mentioned, only for games written for it.
arraamis Posted May 11, 2005 Posted May 11, 2005 Who said Lock-on is single-threaded anyway? Multi-threaded doesn't necessary imply MULTIPROCESSOR. These are two very different things once you look deeper than the surface. Please bring us up to speed, is it able to utilize multi-threading technology????
arraamis Posted May 11, 2005 Posted May 11, 2005 And for the record, Intel scrapped the 4GHz and above processors because it was a new 90nm process, and they couldnt get it to work. Had nothing to do with AMD, had to do with engineering. And that is from an Intel intranet article. They didn't scrap it because it was a new process, they scraped it because they couldn't control the heat generated by the chip and the power consumption of the chip. CNET news "Intel would have to put so many engineering and testing resources into qualifying a 4GHz Pentium to work in all conditions that the cost would far outweigh any financial benefit. Because Intel's dual-core chips are set for release in 2005, only a few thousand 4GHz chips would likely have been sold." For the record, intel is actively trying to keep up with amd, especially since many more corporations are buying\building their enterprise servers with opterons. They're falling behind and they know it and if you think for even a millisecond that their future plans don't consider what amd is doing then you are mistaken. Amd are their competitors, and intel is trying to win back the business they are constantly losing. CNET news "AMD's Opteron is catching on. In the third quarter--only the second since Opteron's April debut--about 10,746 Opteron servers were sold--more than twice the 4,957 Itanium systems, according to market researcher IDC. Major names have joined several second-tier companies to sell Opteron servers, including IBM, Sun Microsystems and, according to sources, soon Hewlett-Packard, too. " another quote: ZDnet "Overall, the test results tended to favor AMD's chips for mainstream applications. That's a potential challenge for Intel, given that the AMD parts are cheaper and cooler. The 3800+ chip consumes 91 watts of power at idle, rising to 172 watts under a full load. That compares with 155 watts at idle and 258 watts under a full load for the Pentium 4 560. The lower power consumption of the AMD parts arises from their lower clock frequency, as well as from AMD's use of silicon-on-insulator technology. AMD's 64-bit chips also support the NX (No Execute) feature, which safeguards them from certain virus attacks. Intel has announced that the Pentium 4 is to support the NX feature later this year. " I can go on forever documenting the competition between AMD & Intel and their struggle to gain the market share, but is it really necessary. This is big business and the competition is always a concern. So, if AMD is first to get dual-core on the market, you can bet your ass that intel will be concerned and will make the necessary adjustments, even if it means scraping one chip to start development of another to compete with its main competitors.
Dark_Sceptre Posted May 11, 2005 Author Posted May 11, 2005 Okay just to clear a few things up here. I should probably have stated in my first post that I wasn't really trying to say that the actual Moore's law was in jeopardy - ie, that complexity has come to a standstill. However, in popular press the law has been extended to also include processor speeds, memory capacities, and mass storage. The reason I started the thread was to point out the fact that we may be in for a disappointment in regard to Lock On's performace on future systems. There is still room for growth on the graphics side and the game does seem mostly GPU limited, however there is always a bottleneck and when the CPU becomes the limiting factor, there is currently *no* new technology in the pipeline (that has been publicly announed) which will make Lock on run faster. None. GGTharos: no, lock on is not a multi threaded application. It does not benefit from parallel processing and this has been shown in benchmarks at simhq.com. In order to benefit from the next generation of hardware (be it multi core single die or SMP) a major rewrite of the application would be necessary, probably with redesign of the internal logic to compartmentalize the engine into multiple independent entities that do not share address space, stacks etc. The reason it isn't already written in this fashion (it would certainly make sense from an architectural point of view) already is probably simply that multiprocessing systems has been limited to mid- and high-end enterprise systems so far. I am of course open to the possibility that AMD and/or Intel are two months away from announcing a new line of CPUs that speeds up single thread processing to the next level. However there is absolutely no evidence of this in any publications from either manufacturer, nor does the industry in general expect it either. More probably, the problems that Intel experienced when trying to build a faster Pentium 4 can be explained by the law of diminishing returns. There comes a point in any process where future improvements cost more than you gain - think of it as an asymptotic curve where speed is the Y axis and money spent is on the X axis. Once your expenditure both in R&D and production outweighs your most optimistic sales prediction, there's no point in trying to push harder - you just keep loosing money. AMD never even tried to tackle the problem but moved straight to 'true' 64bit and multiple cores. I would like to be wrong in this matter. I would be very happy if someone announced plans for an i386 CPU that can run a single 32bit thread twice as fast as a P4EE can. But I consider the possibility remote the way things stand. And based on this, I can make the broad but not unfounded statement that there is a very real possibility that Lock on (and most other current games) will not run any faster, 2 years from now, than they already do. Unless, of course, they are rewritten. Hope that makes my point clearer.
arraamis Posted May 11, 2005 Posted May 11, 2005 You stated some very good points Dark_Sceptre. I would like to know what development\testing platform was used for lomac. If today's single core technology is unable to provide enough processing cycles to max out lomac and its not coded for SMP or dual-core processing, then what system specs are required to run lomac in all its glory. {i.e. everything maxed out} I ask this important question because, I'm currently using an FX-55 with an ATI XT 850XT\Pci express, a MSI Neo4 K8N mobo with 2GB low latency ram. And, I still experience choke-ups and frame-lag at certain points, even though all of my computer components are post lomac released. Where is the bottleneck in my system, and why do I still experience slowdowns? Very strange.
VVanks Posted May 11, 2005 Posted May 11, 2005 Considering Moore's Law was created in the 486 era (or was it earlier?), I guess it's already late to say it's been broken. Actually, I think we should be counting flops, not hertz. Since the super computers count giga/tera flops. Maybe we can start the mega flop naming scheme? Homepage: http://www.worldwynd.net Coming Soon: http://www.simplywyn.com
WhiskeyRomeo Posted May 12, 2005 Posted May 12, 2005 Considering Moore's Law was created in the 486 era (or was it earlier?) It was a LOT earlier - by more than 20 years. (or about 40 years ago) I agree that dual (or more) core technology probably won't be an immediate boon to gaming. It's definately geared more toward improving server performance at the moment. Hopefully there will be a trickle down effect that will transfer technology to gaming performance in the future.
Prophet_169th Posted May 12, 2005 Posted May 12, 2005 They didn't scrap it because it was a new process, they scraped it because they couldn't control the heat generated by the chip and the power consumption of the chip. If you re-read what I wrote, I never claimed they scrapped it because it was new. I was just stating it was a new 90nm process, and that it was scrapped because they couldnt get it to work. The reason they couldnt get it to work, is because it IS 90nm. Usually smaller feature size, requires less power so produces less heat. Same power and smaller feature size = bad. But Intel was unable to do this, where as AMD was able to. And the Opteron/Itanium debate is a little misleading. 1. They arent in the same class. Itanium is IA64 code, Opteron is 64x86. Itaniums software has to be re-written, Opteron doesnt. 2. The Itanium isnt really an Intel. It is an HP design. It is the successor the the Alpha. And it is the reason that Intel had to make their 64bit P4's into Hyperthreading and not 64bit. It was part of the contract Intel had with HP. HP couldnt sell any other 64bit processor, and Intel couldnt manufacture any other 64bit processor. I think the contract may be over now though. Havent read anything yet about it. Also of note. It is not just the game that matters. The game may still see increased performance if the OS and any other running application is coded for SMP. If the OS runs on 1 core, and the game runs the other, then there are more clock cycles available, even on that single core the game is running on. And for anyone who cares. Those dual-cores are about the size of a Alpha processor, they are HUGE. Much bigger than 2 P4's. At least from what I have seen on the production line.
Recommended Posts