View Full Version : [Answered] ArmA 2 - Multicore-CPU support flawed? (only 50% CPU usage on quadcore)
BlueSteel
Jun 3 2009, 10:14
I have done a few tests with the ArmA 2 multicore support and have to come to the conclusion that there is theoretically room for improvement.
My test scenario is the beginning of campaign mission "Razor Two". This is a large-scale mission, so a lot of AI-scripts should be running in the background. For the sake of testing CPU-performance, I lowered the graphics-settings and set the resolution to 800x600. That should eliminate any GPU-related bottlenecks. I am just standing at the beginning of the mission, looking straight ahead.
System:
Core2Quad Q6600, OC'ed to 3.4GHz
4GB DDR2 Memory
GeForce GTX 260 (192 shadercores)
Windows 7 x64 RC
No background apps like virus scanners, firewalls,...
The framerate hovers around 40fps, CPU usage never goes over 50%:
http://img26.imageshack.us/img26/6981/arma2cpucampaign.png
Pressing Esc to pause (this should also pause the AI scripts) I get 60fps and the CPU usage changes, but still does not go over 50%:
http://img26.imageshack.us/img26/5080/arma2cpucampaignpaused.png
For comparison reasons, if I go to the same position in the editor (empty map), I also get the 60fps from the second example. [before someone asks, this is NOT V-sync-limited, I get 80-150fps when I look into the sky]
What is interesting to note here is that even with the higher CPU load of the AI scripts in the background, the CPU usage never exceeds 50% (2 cores). What I would expect here is the CPU usage going up with increased AI activity instead of the framerate going down.
In a perfect world, all the systems would run in independant threads. So there would be totally independant threads for AI, audio and so on besides the renderer. In that case the renderer could always run at full speed, while the other systems just run on the other available CPU cores. The framerate would only go down, if the other systems actually use up all of "their" CPU cores and the renderer has to sacrifice some of "his" core. I know this is simplified, but otherwise it gets too complicated to explain quickly.
The Real Virtuality engine was obviously not built with multicore-support in mind, at least not when it was started 10 years ago. So I am impressed by the amount of multithreading that BI was able to squeeze in here. At the same time I am curious if there is a simple way to enable even more parallel processing; the fact that performance is capped at 50% CPU usage on a quadcore suggests that there is a small bug somewhere that is limiting the true potential.
slimSpencer
Jun 3 2009, 10:20
can confirm this!
I've got a Q9550 @<hidden> 2,83 GHz and mine also never exceeds 50% CPU-usage...
br
Hmm i can confirm this for normal games, but how about you try to place a lot of Units on the map and having a huge fight?
EDIT: At least in 1.00 release i was rather convinced that more than 50% was used...
This is why min spec is dual-core....1 for micro-AI and 1 for rest.
The only good thing about having quad is your game is less effected by other background applications & OS as they utilize the free CPU power ;).
Nemesis_wales
Jun 3 2009, 11:20
blue u said ur CPU is 3.4 ghz...... maybe thats far more than enuff to play the game, so it never needs more than 50% of ur cpu power? surely this would make u happy? i would look at that an think great, i can leave tab out an load up the sheep porn :)
Well, it seems to be using all four cores, so it seems BIS delivered on their promise.
I really don't get the problem here... Maybe the game doesnt need to use more than 50% of the CPU's capacity on a high end Quad core when running at a really low resolution? Did you notice any slow downs? If it ran fine, then why do you want it to use more CPU power?
It is about the parallel processing ability of the engine...to keep it simple, Arma2 can have 2 parallel processing. If you have 2 CPUs, ArmA2 uses the CPU speed to the max, 100% utilization and calculate those 2 parallel processes.
The reason you see 50 % is the game utilizes 2 simultaneous cycles but since you did not assign any affinity, those process requests from 2 parallel task is distributed across the 4 cpus thus utilizing 50% of your CPU power.
If you assign 2 cores to ArmA2 you will see that they run @<hidden>% and rest at 0% or so.
Sort of like having 1 pepper and 1 salt and 4 arms.. ;)
You cannot double the process by having your other free 2 arms helping the working 2.
This is how it looks on my PC when 520 AI is running down an airstrip while I fly in an UH-1Y.
http://img37.imageshack.us/img37/8085/cpuarma2.png
So you're saying that it's splitting 2 threads across four cores as opposed to having a thread for each core? That's fair enough, but at least it's still splitting the workload out...
ThePainkiller
Jun 3 2009, 11:53
same here Q9300, doesnt go above 50%
So you're saying that it's splitting 2 threads across four cores as opposed to having four threads for each core? That's fair enough, but at least it's still splitting the workload out...
Yes...and of course it does. Arma1 is doing it as well...You'd see 50% on dualcore and 25% on quadcore. It is not something new.
The new part is engine can now process tasks simultaneously and use the data from each other, from each separate process. ie AI engine & Other engine run separately but talk at some point.
It is about how much one process is linked in the whole structure or one variable is dependent on another that maybe in another core. It is about the design. Less the processes are dependent on each other, easier it is for you to split them and assign to separate processes that may eventually get assigned to a parallel cycle or thread.
For ArmA2 BIS was able to isolate Micro-AI and was able to run it separately on another thread then rest of the game.
BlueSteel
Jun 3 2009, 16:09
blue u said ur CPU is 3.4 ghz...... maybe thats far more than enuff to play the game, so it never needs more than 50% of ur cpu power? surely this would make u happy? i would look at that an think great, i can leave tab out an load up the sheep porn :)
If it does not need more than those 50%, why would my fps drop then? Besides, with a proper resolution (1680x1050) I get only 25-30fps in that campaign mission; even if I get around 40-50fps when I just stand around at the same spot in an empty map.
What is even more weird btw, I tried disabling 2 cores (changing affinity to only 2 cores) and that yielded extremely much lower fps (went from 50 to 30 in that case) and the CPU usage was down to 25-35%.
To sum this up, when the game has 2 cores availabe, it uses only 50-75% of those two cores. But if it gets 4 cores, it uses only 50% of all 4. Something is seriously wrong with this picture.
I'm getting 60-80% on all cores, but i've never seen games max the CPU out.
Now if I used Vegas video editor or photoshop CS 4 they are the only two apps that really max out the CPU.
BlueSteel
Jun 3 2009, 16:33
The way ArmA includes "Quadcore" in the recommended system specs, it feels a bit sad that the performance of the render thread goes down so much before even half of the available resources are used up. For me "quadcore" support means that the game uses more than 2 cores, so it should use more than those 50% on my system.
According to several previews/interviews, one of the big things with ArmA 2 was to have the AI running on a separate thread, so it does not slow the game down as much as in ArmA 1. And now we have campaign missions where we have the same problem as before, 30fps with AI and 60fps when the game is paused (and only rendering is going on). I was under the impression that it should stay at 60fps and the AI would be running on one of the other available cores, instead of slowing everything down again.
Gents, it's wrong method to judge multicore support by looking at CPU utilization. Games in nature are not Prime95 test that peg CPU 100%. Windows will always split load between available cores. Dual core CPU is not pegged 100% while paying Arma2, so that Quad core could run at 50%.
There are limited number of things that could run concurrently. This is very difficult to accomplish. Intel and Microsoft will soon release multicore compiler as part of Visual C library - this will help a lot. There are very few games that show FPS improvement when going from one to two, then three cores. Unreal3 and Lost Planet are two of them. You get like 20% FPS improvement when going from 1 to 3, and almost none when going from 3 to 4 cores. Unreal3 balances load by splitting main game logic, level unpacking/loading, audio and network code. Don't know much about Lost Planet, but folks at HardOCP seem to think they have done great job at multicore suport.
According to several previews/interviews, one of the big things with ArmA 2 was to have the AI running on a separate thread, so it does not slow the game down as much as in ArmA 1.
That could be the case to some extent, when there is no detection/reaction to human players. When that happens you will have single scheduling que, that cant be run in parallel.
BlueSteel
Jun 3 2009, 18:10
Gents, it's wrong method to judge multicore support by looking at CPU utilization. Games in nature are not Prime95 test that peg CPU 100%. Windows will always split load between available cores. Dual core CPU is not pegged 100% while paying Arma2, so that Quad core could run at 50%.
There are limited number of things that could run concurrently. This is very difficult to accomplish. Intel and Microsoft will soon release multicore compiler as part of Visual C library - this will help a lot. There are very few games that show FPS improvement when going from one to two, then three cores. Unreal3 and Lost Planet are two of them. You get like 20% FPS improvement when going from 1 to 3, and almost none when going from 3 to 4 cores. Unreal3 balances load by splitting main game logic, level unpacking/loading, audio and network code. Don't know much about Lost Planet, but folks at HardOCP seem to think they have done great job at multicore suport.
Don't forget that those games you mention are vastly different from ArmA. What makes ArmA unique here is the fact that there are is an immense load of AI scripts running in the background, which leads to the described slowdown comparing the same spot on Chernarus, once with a campaign running and once just in editor/emtpy map. The renderer is running threaded already, which seems to be working quite nicely.
But too much AI/mission scripts in the background seem to slow down the renderer aswell, and that is where I think might be room for improvement, as long as there are free CPU resources. As I said earlier, in a perfect world the renderer would run completely independantly, no matter how busy the AI thread is on the other cores.
Don't get me wrong, I do not want to criticize BI, Suma or anyone involved. I merely want to report my findings, in the hope that there is either a bug to be fixed or an "easy" optimization to be made.
I am also aware of the fact that the engine was not designed for multithreading from ground up, so what I reported might just be a "neccessary evil" to get multithreading at all. Maybe the renderer has to wait for the other threads to finish so it does not get out of sync, and that leads to lower framerate when the other threads are more busy. Maybe Suma even had the threads running fully independently at some point, but it was getting desynced too easily and he had to go back to the current model. Maybe it is something else entirely. I don't know, but I'd like to find out.
Majormauser
Jun 3 2009, 18:18
If there ever was a program that could benifit from Multi Procs its ArmA.... its FULL support for multicore IS important. The power is there if they want to use it. No excuses just get it done it would make the product a better simulator.
I am also aware of the fact that the engine was not designed for multithreading from ground up, so what I reported might just be a "neccessary evil" to get multithreading at all. Maybe the renderer has to wait for the other threads to finish so it does not get out of sync, and that leads to lower framerate when the other threads are more busy. Maybe Suma even had the threads running fully independently at some point, but it was getting desynced too easily and he had to go back to the current model. Maybe it is something else entirely. I don't know, but I'd like to find out.
You might be on to something here. It seems there is some sort of CPU bottleneck, especially in MP. What I noticed is that relaxing Video options does not help increase FPS. Right now I clocked my E8400 back to default, will try 4GHz and see if it helps. But that shouldn't be CPU-bound like that...
So, the question here is: Is it worth buying a quad-core processor over a dual-core for playing ArmA 2? Or will there be such a minimal difference that the cost is not worth it?
Nemesis_wales
Jun 3 2009, 19:07
interesting. but if u have the money an choice, id still go quad core, for other future games or programs etc. but there coul db alot off ppl who bought 1 for no reason
For those who are interested in multi-thread design... a good read with some methodology explanation..
a bit outdated but does the job
http://techreport.com/articles.x/11237/1
So, the question here is: Is it worth buying a quad-core processor over a dual-core for playing ArmA 2? Or will there be such a minimal difference that the cost is not worth it?
Considering that cost of Phenom II 945 Quad Core 3Gh is pretty close to Intel's E8400 I would go for Quad.
If you're comparing same brand's dual over quad and are budget minded - go for dual core.
In majority of games you won't see benefits of quad core over dual. We are hitting the ceiling of parallel processing abilities. I know that Intel/AMD will descend upon us with Hex/Octa cores soon, but it is other improvements in CPU design of next generation (32nm process and etc) that will bring improvements to games.
For those who are interested in multi-thread design... a good read with some methodology explanation..
a bit outdated but does the job
http://techreport.com/articles.x/11237/1
Thanks for the link. I think it's a great article, but benchmark is misleading:
Valve also gave us a particle system benchmark that actually runs inside the Source engine. This test steps through a series of particle simulations, and according to Valve, it's completely CPU-bound. Unlike VRAD, this test case is more typical of what an actual gamer might experience.
http://techreport.com/r.x/source-multicore/particle.gif
This particle demo does not involve heavy scheduling that happens in game. That kind of processing is actually offloaded to GPU, and it would be silly not to do so since GPUs are massively parallel in nature and very strong at particle effects.
OK, another question, just out of interest. What differences would I notice going from a Single Core running at 2.4GHz to a Quad Core at 3GHz? As in on the desktop and in games? I should hope it'd be noticeable.
OK, another question, just out of interest. What differences would I notice going from a Single Core running at 2.4GHz to a Quad Core at 3GHz? As in on the desktop and in games? I should hope it'd be noticeable.
If you benched real game with high end GPU, you'd see about 20% average FPS improvement. What's more important you will get almost doubling in Min FPS which I think is most important and quite often neglected. Those lags and stutters you suffer often? They are from Min FPS dropping below 20 or so. On single core in modern games I will guarantee that min FPS will be dropping below 20 and more frequently than on dual-, tri- or quad- core systems.
SASrecon
Jun 3 2009, 19:26
OK, another question, just out of interest. What differences would I notice going from a Single Core running at 2.4GHz to a Quad Core at 3GHz? As in on the desktop and in games? I should hope it'd be noticeable.
single 2.4 to quad 3? A BIG DIFFERENCE!!!
i think you meant single 3.0 to quad 2.4. The quad should still be better in most cases but if you're playing a game which ONLY uses one core, then you might be better off with the single for that game.
I have a q6600 and i think its worth it because my experiences with a single core were laggy... veeerryy veerryy laagggyyyy
A dual 3.0 is a better comparison to a quad 2.4 and in most cases the dual core would win except the quad can handle many more units in ARMA2, whilst the Dual will give steadier performance if it isn't being pushed.
imagine dual and quad as 2x and 4x, this helped me a lot when i made my first ever choices for a computer e.g. 2.4 x 4= 9.6.
Technically it isn't the same because the processing cores on the quad are smaller but i'll leave you with this for now ;)
This particle demo does not involve heavy scheduling that happens in game. That kind of processing is actually offloaded to GPU, and it would be silly not to do so since GPUs are massively parallel in nature and very strong at particle effects.
I think, and writes so, they refer to simulating the particles rather than actually drawing them. Maybe it was designed like this by then in Valve engine...its 2006 article.
What I get from the sentence is particle effects in Source engine is simulated by the CPU and this simulation is then rendered by GPU.
craig3000
Jun 3 2009, 19:34
So, the question here is: Is it worth buying a quad-core processor over a dual-core for playing ArmA 2? Or will there be such a minimal difference that the cost is not worth it?
Well put it this way
Would I prefer to spend £100 extra from a good dual to a Quad
OR
Would I prefer to go from a £160 to a £260 GPU?
I pick the latter personally
If I were deciding on a PC now I would go for the AMD phenom IIx2 550, I mean it was beating the x3 720 on a lot of tests and it was rivaling a x4 955 and its under £80, then I would go out with he money left over and buy a 1GB GTX 285 :yay:
But instead I got a Q6600 about a year and a half ago :D
Well put it this way
Would I prefer to spend £100 extra from a good dual to a Quad
OR
Would I prefer to go from a £160 to a £260 GPU?
I pick the latter personally
Agree.
single 2.4 to quad 3? A BIG DIFFERENCE!!!
i think you meant single 3.0 to quad 2.4. The quad should still be better in most cases but if you're playing a game which ONLY uses one core, then you might be better off with the single for that game.
Negative. Even in times of Win2000 you'd get better in game performance if the game was oblivious to second core existence. It was documented multiple times that Dual core brings massive improvements to games especially in min FPS. XP, Vista and 7 are even better at multi-core support.
I have a q6600 and i think its worth it because my experiences with a single core were laggy... veeerryy veerryy laagggyyyy
A dual 3.0 is a better comparison to a quad 2.4 and in most cases the dual core would win except the quad can handle many more units in ARMA2, whilst the Dual will give steadier performance if it isn't being pushed.
Agree about Q6600. I don't think you can claim more units being handled better in Arma2 by quad CPU. There is simply no evidence of this. Supreme commander for example and other massive RTS games (Stainless Steel mode for Medieval II with 3000-5000 soldiers on map) do help with tri and quad cores.
imagine dual and quad as 2x and 4x, this helped me a lot when i made my first ever choices for a computer e.g. 2.4 x 4= 9.6.
Technically it isn't the same because the processing cores on the quad are smaller but i'll leave you with this for now ;)
Never use voodoo math like this. You can't say Quad Core is twice faster than Dual core in games especially.
Kind regards.
Commando84
Jun 3 2009, 19:41
Checking out Arma 2's system specs. and wondering wich Cpu is the best for ARma 2?
Amd or intel on optimum config...
Optimal PC Requirements
* CPU: Intel Core 2.8 GHz / AMD Athlon 64 X2 4400+ or faster
* RAM: 2 GB
* Video Card: NVIDIA GeForce 8800GT / ATI Radeon 4850 with Shader Model 3 and 512 MB VRAM or faster
* OS: Windows XP or Vista
Checking out Arma 2's system specs. and wondering wich Cpu is the best for ARma 2?
Amd or intel on optimum config...
Optimal PC Requirements
* CPU: Intel Core 2.8 GHz / AMD Athlon 64 X2 4400+ or faster
* RAM: 2 GB
* Video Card: NVIDIA GeForce 8800GT / ATI Radeon 4850 with Shader Model 3 and 512 MB VRAM or faster
* OS: Windows XP or Vista
This should help you somewhat: AnandTech Bench tool (http://www.anandtech.com/bench/default.aspx?b=2).
How to use it:
1. Select first CPU in "Choose first product" window
2. Select second CPU you want it to compare against in "Choose second product" window
3. Click on "View comparison button"
Scroll down to games. Sorry, no Arma there, but at least it will give you an idea.
Cheers.
single 2.4 to quad 3? A BIG DIFFERENCE!!!
i think you meant single 3.0 to quad 2.4. The quad should still be better in most cases but if you're playing a game which ONLY uses one core, then you might be better off with the single for that game.
I have a q6600 and i think its worth it because my experiences with a single core were laggy... veeerryy veerryy laagggyyyy
A dual 3.0 is a better comparison to a quad 2.4 and in most cases the dual core would win except the quad can handle many more units in ARMA2, whilst the Dual will give steadier performance if it isn't being pushed.
imagine dual and quad as 2x and 4x, this helped me a lot when i made my first ever choices for a computer e.g. 2.4 x 4= 9.6.
Technically it isn't the same because the processing cores on the quad are smaller but i'll leave you with this for now ;)
Nope, I really did mean Single 2.4 to Quad 3.0. :p Got quite an old processor, going for a Phenom II X4 940. :D
Nope, I really did mean Single 2.4 to Quad 3.0. :p Got quite an old processor, going for a Phenom II X4 940. :D
Let's put it this way then, if you won't chain your new quad core to the floor - it will be so fast it will fly the f**k out of your window. :D
Nope, I really did mean Single 2.4 to Quad 3.0. :p Got quite an old processor, going for a Phenom II X4 940. :D
Is it an Athlon 64, or an old Pentium 4?
Either way, you will notice quite the difference. Remember also that Gigahertz ratings are meaningless when you're comparing between different types of CPUs. A 3GHz Phenom II could easily be the equivalent of your old single core running at 3.5GHz+, and that's before you take the amount of cores into account.
Is it an Athlon 64, or an old Pentium 4?
Either way, you will notice quite the difference. Remember also that Gigahertz ratings are meaningless when you're comparing between different types of CPUs. A 3GHz Phenom II could easily be the equivalent of your old single core running at 3.5GHz+, and that's before you take the amount of cores into account.
It's an Athlon 64 3400+ if that helps, also upgrading my GPU from X1650 Pro (512MB) to a HD4850 1GB, but that's off-topic. :p
would you mind using the
http://forums.bistudio.com/showthread.php?t=72181&highlight=arma2+spec
or
http://forums.bistudio.com/showthread.php?t=47904
for system/spec/pc advises / discussions / benchmarking etc...
Here's quick AMD Quad vs Intel Dual at 3GHz:
http://i15.photobucket.com/albums/a397/reieev/Misc/E8400.png
And Quad vs Dual, both Intel both same GHz, same architecture:
http://i15.photobucket.com/albums/a397/reieev/Misc/E8400vsQuad.png
Far Cry 2 seems to be very well optimized.
BlueSteel
Jun 3 2009, 20:28
Woah, you guys derailed my thread a little bit.
What I can share on the discussion is this:
Disabling 2 cores (or, well, shifting affinity to 2 cores instead of 4) lowered my framerate considerably. The CPU usage was down to 25-40%, or in other words 50-80% of a dualcore system. Framerate in that specific case was down from 50fps to 30fps, which would indicate that even if a quadcore is only used to 50%, it still runs ArmA 2 way faster than a dualcore.
Changing the affinity of the running game might be problematic though, depending on how multithreading is implemented in ArmA. So takes this information with a grain of salt until someone produces a proper benchmark. Disabling 2 cores in BIOS would be a better way of comparing performance, but I'm too tired today to do anything like that.
I'm guessing from the chart that Far Cry 2 is more multi-core optimized? That's the only thing I can think of that could produce such a result...
EDIT: And now looking at both charts, I come to the conclusion that Intel CPUs are better than AMD processors. Correct me if I'm wrong anyone. :p
I'm guessing from the chart that Far Cry 2 is more multi-core optimized? That's the only thing I can think of that could produce such a result...
EDIT: And now looking at both charts, I come to the conclusion that Intel CPUs are better than AMD processors. Correct me if I'm wrong anyone. :p
Let take this discussion here: http://forums.bistudio.com/showthread.php?t=72181
Woah, you guys derailed my thread a little bit.
What I can share on the discussion is this:
Disabling 2 cores (or, well, shifting affinity to 2 cores instead of 4) lowered my framerate considerably. The CPU usage was down to 25-40%, or in other words 50-80% of a dualcore system. Framerate in that specific case was down from 50fps to 30fps, which would indicate that even if a quadcore is only used to 50%, it still runs ArmA 2 way faster than a dualcore.
I wonder if you made it run worse by messing with affinity. Yep, proper would be through BIOS if that's possible. Sorry if we derailed your thread BlueSteel. ;)
SWAT_BigBear
Jun 3 2009, 21:02
Changing the affinity of the running game might be problematic though, depending on how multithreading is implemented in ArmA. So takes this information with a grain of salt until someone produces a proper benchmark. Disabling 2 cores in BIOS would be a better way of comparing performance, but I'm too tired today to do anything like that.
Interesting!
I will look forward to testing a 2x2 @<hidden> I'm able to disable 1 cpu.
Changing the affinity of the running game might be problematic though, depending on how multithreading is implemented in ArmA. So takes this information with a grain of salt until someone produces a proper benchmark. Disabling 2 cores in BIOS would be a better way of comparing performance, but I'm too tired today to do anything like that.
If you want to experiment with this, you can use -cpuCount=X. This will override our autodetection. Changing affinity on the fly is definitely not good, because worker threads are spawned on the game initialization, and by lowering affinity later you cause threads competing for cores. The best way to simulate dual core on quad core is to use -cpuCount=2 when you run the game and then change the affinity to 2 cores to make sure additional cores can never be used when some overshedulling happens. It might be also possible to set the affinity in the OS before you launch the process, that would work as well.
BlueSteel
Jun 4 2009, 07:40
Suma, what is your take on this thread? Is it expected behaviour that the framerate drops considerably and the game becomes CPU-bound in the later campaign-missions, or might this be a bug of some kind?
I'll do some more tests when I'm back from work, will be interesting to see how big the difference between 2 and 4 cores actually is.
It might be also possible to set the affinity in the OS before you launch the process, that would work as well.
Suma, this is exactly what I'm doing using /AFFINITY switch in a batch script but without -cpuCount.
I've done some tests last night on our server, allmost 50 players on the server playing a coop mission. A2 started with -server command line switch.
With affinity set to four cores (it's a Core i7 server running Win 2008) one core was running at full speed, means 100 % utilized, while all others were at 10-30 %.
Then I set affinity to 2 cores. What happened was that both cores were utilized allmost the same but not running at full, about 80-90 %.
Max overall cpu usage never got higher than about 25 %, doesn't matter if the A2 server is running with 2, 4, 6 or even 8 cores.
So what do you recommend ?
2 or 4 cores ? And will there be more multicore optimizations in the future ?
Xeno
Max overall cpu usage never got higher than about 25 %, doesn't matter if the A2 server is running with 2, 4, 6 or even 8 cores.
Not possible... you probably meant 50% on a quad which is expected. (well maybe you are right due to HT capabilities of i7s but this is misleading I guess)
Read the posts earlier in the thread..I tried to explain why you cannot have all of the 4 cores running @<hidden> 100% simultaneously unless the game engine if quad-thread (currently ArmA is dual thread).
Yet whether running ArmA2 with no affinity on a quad is more efficient than running it with 2 core affinity is something to be investigated. In both cases ArmA2 seem not to use more than 2 core worth of CPU power.
Not possible... you probably meant 50% on a quad which is expected. (well maybe you are right due to HT capabilities of i7s but this is misleading I guess)
That's i7, 25% is max for 2 cores :)
Read the posts earlier in the thread..I tried to explain why you cannot have all of the 4 cores running @<hidden> 100% simultaneously unless the game engine if quad-thread (currently ArmA is dual thread).
I'm aware that I can't run 4 cores at 100% though it is pretty strange that with four cores one is running allways at max while the others get only utilized 10-30 % and with 2 cores both get utilized allmost equal.
Hopefully the "real" dedicated server can be optimized to make use of more cores than two.
Yet whether running ArmA2 with no affinity on a quad is more efficient than running it with 2 core affinity is something to be investigated. In both cases ArmA2 seem not to use more than 2 core worth of CPU power.
In my experience limiting the number of cores is more efficient.
Good thing is, that with allmost constantly 50 players (coop and pvp) on the server I had some good testing environment :). I've now set affinity to two cores.
Sometimes the server hangs during the mission for some time, means the server simply stops responding but doesn't crash and continues after a while (minute or so). But that doesn't happen allways. Might also be related to players loosing connection.
Other than that I haven't seen the yellow or red chain very often although many players were connecting and disconnecting.
But one out of memory crash :(
Xeno
I'm aware that I can't run 4 cores at 100% though it is pretty strange that with four cores one is running allways at max while the others get only utilized 10-30 % and with 2 cores both get utilized allmost equal.
Hopefully the "real" dedicated server can be optimized to make use of more cores than two.
It is the game engine that is limited to 2 threads... 1 core micro-AI and 1 core rest. Micro-AI is assigned to 1 CPU core (Core-1) and the other to the remaining ones (ie cores 2-3-4 in the case of quad and core 2 in teh case of dual)
I think it is more efficient to design it like this than leaving all queing to the OS..so that OS doen't have to mix requests from each process.
I ran a very CPU intensive script (specifically dynamically loading Rahmadi height-map data into A2 using Dynamic Terrain tiles) on my quad core and saw a high of 60% cpu utilisation. This means it is operating on at least 3 cores and this without there being any AI on the map. Bear in mind, though, that at this point the game freezes for about 20 seconds while processing hundreds of thousands of height points and animating the tiles to take on the correct shape, so it is an entirely artificial situation. Still, this might give us hope for utilising quad core fully (if the engine+scripts can use 3 cores, as in this example + 1 core for micro-AI, that is all 4 cores as far as I can tell).
Q9300 quad@<hidden>
It is the game engine that is limited to 2 threads... 1 core micro-AI and 1 core rest. Micro-AI is assigned to 1 CPU core (Core-1) and the other to the remaining ones (ie cores 2-3-4 in the case of quad and core 2 in teh case of dual)
If I run it on 4 or more cores it's allways the last core that is running at full speed.
So which one is handling the AI ? :)
The only one who can tell us that exactly is Suma.
But, there's allways room for improvement. And I think that we will see more improvements in the future. Would be nice for the dedicated server to see it using four or more cores.
Xeno
If I run it on 4 or more cores it's allways the last core that is running at full speed.
So which one is handling the AI ? :)
The only one who can tell us that exactly is Suma.
Xeno
I was talking figuratively...for the sake of the example...
http://en.wikipedia.org/wiki/Simultaneous_multithreading
What I mean is game engine is designed to have 2 simultaneous threads...
it is like
it can calculate a=e+u (on Core1) and d=c+f (on Core2) at the same time. if it has another calculation g=h+k (on Core2) then it has to wait until d is calculated because all the vowels use Core1 or use Core3 but cannot do it simultaneously while d is being calculated because game engine does not send that request until it gets the calculated value for d. And there lies the limit for full utilization of quad-core CPUs for the game engine. You need to create another independent thread in the engine that will be run parallel to the existing 2...and you'll be utilizing your 3 cores
Disclaimer...With the above statement, I hope to achieve the level of nerdness Raggedyman inserted to me with his aerospace related over-wing vortice explanation :D
lucifer(ADos)
Jun 4 2009, 16:47
As you i´ve been testing the game in my pc, and i have the same problems.
My GPU its not the best 9600GT 512, but the problem with fps are only when the IA begins to be active.
i do a test in the editor.
First in a zone empty i get near 40+ fps depending zone (cities kill my fps i dont know why...).
Second i put two enemy squads one in fornt to the other and as they begun to shot the fps get down under 20...
Then as you I,ve made the same experiment, changin the Graphic configuration... even to a very low spec 50% filrate and 640x480... and the fps stay at the same values -20...
So the problem is clearly the optimisation of the game with the cpu, maybe the GPU limites some options, but the most important is CPU power.
When a soldier does cover fire with a Mg the frames are -10 less..., so i think this game must be patched or some scripts eliminated or tweeked.
I´ve been playing arma many time and i think arma 2 has the same problems with optimisation. Maybe in version 1.05 or more wi wil play this game decently.
I´m not going to change my pc at the moment because a lot of people with intel i7 and very good GPus(GTX280...) have the same problem... so clearly is a problem of the game. i will wait for a bether optimisation to see what sistem to buy to handle with this game.
My first impressions of performance with this game are as they where with gothic 3... unplayable... so i hope the patching would be the solution.
My pc:
AMDx2 3800+ 2 Ghz
4 Gb ram
nvidia 9600 GT 512
ahmedjbh
Jun 4 2009, 17:16
Do you get the same amount of CPu usage regardless of Ai being on the map or not?
I'll do some more tests when I'm back from work, will be interesting to see how big the difference between 2 and 4 cores actually is.
Have you done your tests yet?
BlueSteel
Jun 5 2009, 16:15
Have you done your tests yet?
The test results are posted in this thread:
http://forums.bistudio.com/showthread.php?t=73663
=Spetsnaz=
Jun 6 2009, 13:40
can anyone tell me how well the dual core amd windsor 6000+ runs? mines OCed to 3.29ghz? some people are saying the game runs very well and others saying it runs the game like crap??
Masterfragg
Jan 17 2010, 05:06
If it does not need more than those 50%, why would my fps drop then? Besides, with a proper resolution (1680x1050) I get only 25-30fps in that campaign mission; even if I get around 40-50fps when I just stand around at the same spot in an empty map.
What is even more weird btw, I tried disabling 2 cores (changing affinity to only 2 cores) and that yielded extremely much lower fps (went from 50 to 30 in that case) and the CPU usage was down to 25-35%.
To sum this up, when the game has 2 cores availabe, it uses only 50-75% of those two cores. But if it gets 4 cores, it uses only 50% of all 4. Something is seriously wrong with this picture.
Truth is that Arma2 is much like Cryostatis, it is not multi-core optimized.
If you see your game using 50% of a dual core cpu and 25% of each core on a quad core then you are looking at a non-optimized game.
It really is that simple otherwise you'd see a variable rate more often.
People WILL disagree and probably flame a little but thats how simple it is. Like it or lump it, and check out a few other optimized games and you'll see.
Have to agree.... yesterday I went from a Core2Duo E6420 @<hidden> 3.4ghz.... to a Core2Quad Q9550 @<hidden> 4ghz.
I was expecting the performance improvement to be large, after all I have:
1) 600mhz more per core x4
2) 2 extra cores
3) 8MB extra CPU cache (4 vs 12)
4) Newer Yorkfield architecture which is about 10% faster clock for clock
After testing 5 recent games I saw improvements of 60% for multi-core optimised games (more than 2 cores) and 30% for games which are dual core optimised, but do not use more than 2 cores.
With ARMA2 I saw an increase of 8%.... probably related to the 600mhz core increase.
This was quite disappointing as ARMA2 was one reason I decided to upgrade, it is the worst performing game which i want to keep playing.
So yeh... very disappointed and ARMA2 engine sure does not use more than 2 cores, it maxes one core out while the 2nd core has to wait for it.
Yapa
Bulldogs
Jan 17 2010, 11:45
Make sure you're starting the game with -cpucount=4 or it won't properly utilise each core.
Make sure you're starting the game with -cpucount=4 or it won't properly utilise each core.
Yep tested with and without, no difference.
-=seany=-
Jan 17 2010, 16:45
-cpucount=# is only useful for emulating behaviour of less cores than you have. If you have 4 cores, the game already uses all of them automatically.
Bulldogs
Jan 20 2010, 01:22
-cpucount=# is only useful for emulating behaviour of less cores than you have. If you have 4 cores, the game already uses all of them automatically.
Technically that should be correct, but many people have noticed Arma 2 using 2-3 cores when running a quadcore without -cpucount=4. I'm not sure what causes the bug but it's best to try avoid it.
As a side note on performance. I get better performance with -cpucount=4 (haven't checked core usage yet) but get lower performance when I set -maxmem=2048
The game does not use Quad core efficiently, because one core is still maxed out and the others have to wait for it.... any benefits seen from Quad core are related to your sound/graphics drivers offloading the load onto the other "free" cores.
My friend with an E8400 @<hidden> 4ghz gets the same fps that I do with a Q9550 @<hidden> 4ghz.... and he has two 8800GT in SLI, i have two GTX275 in SLI....
Yapa
kklownboy
Jan 20 2010, 17:28
with my setup, I get in Real game play(not the benchmarks1,2) all cores(i7,HT off) up to 96%, and when loading, or having the map up/doing some 2D interaction menu, they will drop down to 60%~ with usualy one core holding the Fort at 80%( core 3). This may be do to my GPUs( 4 of them).
The game does not use Quad core efficiently, because one core is still maxed out and the others have to wait for it.... any benefits seen from Quad core are related to your sound/graphics drivers offloading the load onto the other "free" cores.
My friend with an E8400 @<hidden> 4ghz gets the same fps that I do with a Q9550 @<hidden> 4ghz.... and he has two 8800GT in SLI, i have two GTX275 in SLI....
Yapa
did you force v-sync off? if you went from 55 fps to 60 that doesn't say anything.
Also, I read somewhere that arma increases scene complexity if it thinks it has the rescources. so maybe you now have way more objects on screen.
If you're gonna benchmark the cpu performance for arma at least put the resolution very low and put the vsync off so your framerate is not limited at all by the videocards, I know my 8800gtx has trouble with some red trees, on 1920x1200 it slows down performance from 100+ to 30- fps regardless of any setting in video options.
I went from an e6750 @<hidden> 400x8=3200 ghz to a q6600 @<hidden> 400x7=2800 ghz and performance in cities has improved dramaticly. (stutters have almost completely gone, fps is now more or less constant, albeit maybe (3200-2800)/3200=12.5% lower, who cares, no more stutter :yay:
also, when I run benchmark mission 2, cpu use goes up to 80%.
SWAT_BigBear
Jan 27 2010, 20:30
Benchmark #2, as you can see when the game is not minimized, it is in fact using all four cores close to even.
http://swat-clan.net/2x2%20AMD.JPG
Yes ofcourse I have vsync off, I have been benching and playing games since the early 90's....
@<hidden>, that is called Windows Vista/7 Load balancing, not proper quad core usage.
Hi guys... found out a trick today if your the owner of a quad core cpu.
Normaly we can only use half of our quad core cpu power, yes thats true, but i found out that if i made a deaticated server on my own cpu and played through that my cpu usaged was 78% instead of the 50% and it was running nice in-game with a lot more units.. Offcasue u have to ha a good quad core and som ram... but it is worth a try.. worked out for me... dont know if you guys know that but i thought i would are my discovery
Me system is:
cpu: qaud core q9650 3gh 12mb.
ram: ddr2 6gb
graphic: Nvidea g460(oc) 1gb goes like hell edition.
already explained in http://forums.bistudio.com/showthread.php?t=100519
http://forums.bistudio.com/showpost.php?p=1797139&postcount=35
by our lead coder
ArmA 2 can use up to 31 cores in theory, but experiments have shown that with most scenes the gain above 4 cores is small and above 8 cores unmeasurable.
The explanation is Amdahl's law (http://en.wikipedia.org/wiki/Amdahl's_law) - only parts of the application is using all cores. See Real Virtuality Going Multicore blog (http://www.bistudio.com/index.php/company/developers-blog/91-real-virtuality-going-multicore).
---------- Post added at 13:58 ---------- Previous post was at 13:54 ----------
In build 76122 and newer the default for dualcores will be changed to -exThreads=3 based on user feedback.
We have also changed the cpu core detection, therefore depending on how many logical cpus are present, default -cpuCount values will be as follows:
1 1
...
6 6
7 7
8 4
9 4
10 5
11 5
12 6
13 6
14 7
....
Some day hopefully we will find a time to provide a proper HT detection, but until then I think the above provides quite reasonable default settings.
there are more details in rest of the thread
Powered by vBulletin® Version 4.2.0 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.