esrever :
The ps3 uses 6 threads and developers are using them, not easily but they are. They could do the same for PC. That is a case where each thread is extremely weak and yet the parallel threads can be implemented to improve performance. Simply saying it can't be done is just ignorant.
You can NOT compare an embedded system to a high level OS; you design and code significantly differently. Especially in the case of the PS3, as keeping the SPE's fed is very hard to accomplish. Powerful system, but very hard to bring its full potential to bear.
My point being, a LOT of the PS3 code still relies on hardcoded optimizations for performance reasons. You do not, and will not, see that style of programming returning to PC's. The days of hardcoded thread management is long at an end.
(For those interested, the PS3's six SPE's can not directly access main memory, only their own local cache. The system relies on DMA's to keep this cache filled. Needless to say, this can be a major challenge that can kill memory throughput if you don't do a good job. And on an aside, this is similar to how Knights Peak will work...)
Only reason game developers like blizzard don't make better threaded games is most people have shitty PCs. They want the game to run better on dual core systems from 2006 rather than optimizing the game to run on modern cpus. Console ports are done lazily cause it doesn't matter much. They just want the game available to as many people as they want.
WoW is a console port?
As a company selling a product, you target the majority of users. And quite frankly, the majority of users still use their aged Pentium 4's, Intel integrated graphics, and Windows XP. They have a different target market, then say, Crytek.
Secondly, "console port" is a term used these days to describe just about any PC release. Nevermind that "most" companies develop their PC version in parallel to the other consoles. "Console port" should be reserved for PC titles that come out on the PC after the fact.
Intel's mobile cpus are almost all dual cores and thus making it hard for developers to really put 4 heavy threads in games. hyperthreading is just not enough to compensate for actual cores when you deal with unpredictable codes in game engines. There just isn't enough push for more cores because intel is pretty much dominating the PC gaming industry because most people who want to run a few games try to do so on intel based laptops. The stagnation is also caused by people believing they have enough on 2 cores to do everything a game would need. Console games can all be crammed into 2 modern cpu cores. There is really not much to push the core usage higher.
Cores != Thread usage. Seriously people...
Secondly: Developers do NOT hardcode their thread logic. Its up to the OS scheduler to schedule heavy threads on separate cores. The reason for this is simple:
I knew a developer who when the first quads came out did a "smart" idea: He'd offload his heavy workload thread onto the fourth core if one was available., so he would be guaranteed the best possible performance. Good idea, until our AV received an update to do the same exact thing. And the first time the AV went off while we were running our program, both processes ground to a halt. (It was even worse, because apparently both programs did the sin of using "high priority" for those threads, so they constantly swapped eachother out rather then getting any significant amount of work done, making the problem even worse).
Thats why developers do NOT hardcode their threads. Its the domain of the OS.
The number of heavy workload threads and the number of processor cores is IRREVERENT as far as developers are concerned.
Thirdly, I've explained numerous times why you won't see better scaling: Because it sucks performance. The more thread communication you have, the worse your performance gets. And there is a point where you spend more time communicating between threads then you would doing actual work.
It'd be 2 or more years before games starts to use more than 2 threads standard. And the same could be said about GPU compute in games. All of this could be very good stuff but as of right now, there is no money in pushing the highest end hardware.[/quotemsg]
Almost all games these days use a good 40+ threads. Open up Task Manager and see for yourself. So yeah...
jdwii :
I think me and you agree and disagree on this subject about SSD's. I agree here with you that SSD's are still a bottleneck but i think you said SSD's only matter for load times before gameplay even starts. While i wish this was true i'm sorry to say its just not for all games this is true for games most people here play such as First person Shooters but games i play use a lot of my hard drive when i'm playing such as GTA4 and sims 3 and i monitor my hard drive use while i play these games and every time my game skips my hard drive see's a huge increase in activity and my ram just sets at 3GB or less and i have 8GB on 64bit windows.
Can't speak on Sims, but GTAIV is a world that gets streamed in as needed, hence you CAN'T fit the entire world into RAM. Avoids load times, but will cause a HDD bottleneck. GTAIV is the PERFECT example of a game that would benefit from a 64-bit executable for that very reason.
cgner :
It may well be bottlenecked by a hard drive in most cases, but storage is far from being the only thing that matters when it comes to loading times. My friend went from 9800gtx to 560ti and loading times in Bad Company 2 were cut in half. I can say the same about going from 4670 to 6870, though change wasn't as great. When it comes to shogun 2, u r confused. The game needs to not only load but optimize itself. It takes 40-50 seconds to load the map with HDD and maybe 35 with SSD.
Probably texture loading. More data stored in GPU VRAM = less data to load into main memory.