Jump to content
Sign in to follow this  
domestar

ARMA3 with 12 cores

Recommended Posts

First of all, i know that not many or any games support 12 cores, or even 8.

In my situation cause of my day job i got 12 cores (on one chip), is there anything i should do to make a better use of the cores?

My cfg is empty, and i'm sure there are some tweaks that will boost my fps.

Share this post


Link to post
Share on other sites

It doesn't quite work that way.

Think of it like a car. Having multiple engines (cores) ain't gonna give you a linear speed increase (MOAR FPS!!), but a faster engine will (higher clock speed). You could try to be clever and connect a separate engine to each wheel, thus lightening the load on each an getting more performance, but that requires a lot of coordination and synchronization. Also, you're still limited by the maximum RPM of each engine.

The same is true with multi-threaded development. Taking advantage of multiple cores is a tricky task, especially in the realms of a realtime game environment that does a lot of simulation that needs to be synchronized.

Share this post


Link to post
Share on other sites

Thanks for the replies, and great car comparison :) exiting how the new haswell-e with ddr4 will perform under arma3, and what the future will bring with multiple core support now that 8cores goes mainstream.

Share this post


Link to post
Share on other sites
I heard Arma just support 3 or 4 cores and not more

At least Arma 2 supports up to 31 cores, but anything more than 4 doesn't really help performance. If I remember correctly, it's the same with Arma 3. Although I don't know if enabling hyper-threading in A3 changes that.

Share this post


Link to post
Share on other sites

Arma is really limeted by the singlecore-performance. Why? Because the AI thread only runs on one single core, while this is the part of the game that needs the most power. You can change your start parameters to let Arma use as many cores as you want, but it won't help since the AI thread still runs on its own single core.

You cannot believe how dissapointed I am with the game. It has the same performance issues since 2001 and the developers don't care about it. Arma 3 barely has some new features compared to Arma 2, and multicore optimisation could be a huge one. But keep on working on more important things like 10.000 different hats in the game.

Share this post


Link to post
Share on other sites

Yeah, lets hope they re-write the engine for ARMA4, if that comes out at all.

Can someone guide me to a topic/post i can tweak arma for the optimal performance?

Share this post


Link to post
Share on other sites
Yeah, lets hope they re-write the engine for ARMA4, if that comes out at all.

Can someone guide me to a topic/post i can tweak arma for the optimal performance?

These forums have a ton of optimization tips scattered around under different topics and threads, but here's a good external guide: http://day0.com.au/forum/arma/638-arma-3-performance-tweaks-and-settings-guide Not 100% accurate, but it's a start.

Share this post


Link to post
Share on other sites

Multi-threading is tricky business. Splitting up an algorithm to run 1/2 on 1 thread and 1/2 on another is not simple. Practically always it will have at least some overhead, and many times the overhead is so great that there is no real benefit to splitting it up.

If you have some programming background I could give you some examples to show why this isn't a simple matter, but otherwise you'll just have to trust me on this. Basically think about it as if you only have 4 tasks you can't let 8 guys do them (without modifying the task), and if 1 task takes much longer than the other 3, then 4 guys won't finish the whole job that much faster than just 1 guy doing all 4 tasks 1 after the other. If you split up a single task to 2 guys then those guys need to communicate and coordinate which in some cases would make the whole thing take longer than just letting 1 guy do it.

Share this post


Link to post
Share on other sites

I've always liked the truck/trailer comparison. Arma is the trailer with a single hitch and the CPU is the truck. It doesn't matter if you have 12 trucks, 8, or 6 you can only use 1 truck to pull that 1 trailer.

Share this post


Link to post
Share on other sites

Arma is like cake and the CPU is the oven. It doesn't matter if you have 12 ovens, 8, or 6 you can only use 1 oven to cook that 1 cake.

#fuckyeacake

Share this post


Link to post
Share on other sites
ArmA 3 is like a penis and.... erm...

You can only use one hand (1 core) to...ehm...

AI would be the obvious multicore split thing. Which already happens if you run Headless Client.

Divide AI into groups (their logical groups, like they appear in the editor), and then decide which core has most time available (least usage) and load the AI group on there.

Wouldn't create a problem where 1 AI in a group is running faster than everyone else or going haywire (Read: Rambo). Cause they are all on same core, same thread.

But what do I know.

Share this post


Link to post
Share on other sites

Sending some AI to the headless client doesn't work the same way though - Correct me if I'm wrong, but as far as I'm aware, AI currently don't share information or coordinate without specific scripting if they are being run by 2 different CPUs, other than specific scripts.

Share this post


Link to post
Share on other sites
Yeah, lets hope they re-write the engine for ARMA4, if that comes out at all.

Can someone guide me to a topic/post i can tweak arma for the optimal performance?

Well, I use this one for a quad core " -cpuCount=4". Use it without commas of course. It keeps the CPU roughly 90% and the perfromance is good. Basically, if you have CPU from Sandy Bridge onwards and it's unlocked, clock it as high as you can as well. Object quality and object draw distance are some of the graphical settings that affect the CPU performance. AI is a second one and physix stuff, the third (which seems either poorly multithreaded or implemented).

Other than that, I don't think it's much you can do, but rather pray for mission developers or modds to give the best optimization they can. Developers (Bohemia) haven't gone beyond single core for critical systems like AI (or at least not good enough), although it's not impossible or close to it as some may suggest. AMD showed you can do that in highly parallel and multithreaded environment like a GPU, way way back in the day.

If you want MP better experience, then you better find yourself a good server and stick to it. Also try to avoid Altis if you want higher FPS.

Edited by calin_banc

Share this post


Link to post
Share on other sites
Also try to avoid Altis if you want higher FPS.

That's the thing. Since beta ended I haven't seen a single server run a coop mission on Stratis. Invade & Annex existed on Stratis b4 Altis. But now...no servers on Stratis.

Share this post


Link to post
Share on other sites
That's the thing. Since beta ended I haven't seen a single server run a coop mission on Stratis. Invade & Annex existed on Stratis b4 Altis. But now...no servers on Stratis.

That's weird, I see 94 servers running coop missions on Stratis right this very moment.

Share this post


Link to post
Share on other sites

If ARMA series someday can use 16 thread, then we could engage in massive AI of large scale campaign.Say if 5000 AI runs and engage in each other on Altis, whilst the FPS stablized at 30, that would be amazing.

Share this post


Link to post
Share on other sites
That's weird, I see 94 servers running coop missions on Stratis right this very moment.

I see 2, running on some new server. Has too few players atm (5). Will have to check that out if I'm awake when normal people are.

The other few are small-team coop games. Not interested.

Filter: Coop, ping less than 300ms.

Share this post


Link to post
Share on other sites

What if each AI type (e.g. Blufor, Opfor, Indfor, and Civ) ran independently of one another. Right now, all AI run on 1 core which means that one core becomes a massive bottleneck for those who have slower cpu speeds. Allowing AI types to run on different cores (basically having a separate engines for different AI). Not sure how that would work, being my programming experience is limited. Nevertheless, basically running 2 ARMA#AI.exe at the same time. Something like this could help. So maybe instead of having 1 guy run 4 separate AI sides. Change the job so that the AI is ran by 2 or more guys. Think of it like this: the AI are puppets and your CPU is the Puppeteer. You could have one guy playing all 4 parts, except he's only got 2 hands so it's going to be quite a juggle. Bring in a second guy, though and all of the sudden you have a better distribution. Going to the cake analogy, if you want to use 2 ovens, make a second cake.

Share this post


Link to post
Share on other sites

1 problem with that. Missions are rarely if ever built so theres more than 1 faction AI to fight. So splitting AI factions to diff... cores would make no difference

Share this post


Link to post
Share on other sites
1 problem with that. Missions are rarely if ever built so theres more than 1 faction AI to fight. So splitting AI factions to diff... cores would make no difference

What I'm suggesting is not that it be an "if number of sides=3 then split AI calcs" No, have it set to where each AI group are there own engine. E.G. if you have a single core, all 4 AI sides would be running on that engine; Dual-Core=2 for each core; Quad core=1 for each core. This would potentially allow us to make our own AI sides so we're no longer stuck with just Blufor, opfor, indfor and civ.

Share this post


Link to post
Share on other sites

The mission maker shouldn't be forced to have an understanding of CPU architecture and multi-threading. If the game can't split up the effort between cores in a transparent fashion, then it is really quite a pointless feature.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×