Jump to content
Sign in to follow this  
Dr.cremaster

ai test

Recommended Posts

I´ve made a small test mission to check out the abilities of new server binaries.

mechanism:

The server creates a group of 50 soldiers every 20 seconds; between the creation of every unit is a delay of 0.5 sec.

mission runs on dedicated server with following specs: core i7-4770, 32 GB RAM, 2 x 250GB SSD, OS: Win 8.1, no mods

result:

http://youtu.be/NYc7GkDLXro

key for server monitor:

- OC0 --> all entities

- MEM Amount of allocated physical memory

- FPS (on a server this means simulation cycles per second)

- FPSmin (the minimum FPS of the last 16 cycles, hist. graph only)

- CPS Condition-evaluation per Second (rel. to AI response delay, VM load)

- PL# Number of alive player units

- AIL Number of alive server local AI units

- AIR Number of alive AI units on connected machines (remote)

code:

if(isServer) then {
_ai_classname = "I_soldier_F";
diag_log "stress test starts";

while {true} do {
	if(count allUnits > 300) exitWith {}
               _grp = createGroup resistance;
	for "_i" from 1 to 50 do {
		_pos = (getMarkerPos "mrk_center") findEmptyPosition [0,1000];
		_ai_classname createUnit [_pos,_grp];
		sleep 0.5;
	};
	diag_log format["%1: created 50 units.",time];
	sleep 20;
};
};

:yay:

So in conclusion there is no multithreading.

Edited by Dr.cremaster

Share this post


Link to post
Share on other sites
i think this should go to AI discussion, or global descussion, devs should see this.

copy/paste the thread link into the AI discussion on dev build category??

Share this post


Link to post
Share on other sites

oh man.. come on bis.. this is 2014 not 1999. get your act together and fix your engine.

Share this post


Link to post
Share on other sites

Does that mean you can easily have 200 AI? Isn't that quite plenty for an average mission? And the rest of the 3 cores will be used for other processing?

Or is the core usage the same in every scenario? Only one core is always used? I find it hard to believe.

Share this post


Link to post
Share on other sites
I think this should be nbr 1 priority after realising the 3rd campaign episode...!

this is way more important to fix that the getting the 3rd campain episode out the door

Share this post


Link to post
Share on other sites

If people get the campaign and the performance is bad they will not enjoy the campaign. Now if they fix performance first and then release the 3rd campaign more people will be happy and give higher rates .

:868:

Share this post


Link to post
Share on other sites

Interesting, once core 0 reaches 100% the server starts to fall over. Makes sense.

Share this post


Link to post
Share on other sites
If people get the campaign and the performance is bad they will not enjoy the campaign. Now if they fix performance first and then release the 3rd campaign more people will be happy and give higher rates .

:868:

exactly!! that's why I made a poll about either getting performance now that sacrifices other bug fixes and content or the other way around and 80 odd % have voted performance

Share this post


Link to post
Share on other sites

i'm fine to wait few more months for next episode, therefor getting more optimizations. I wonder if it's possible for example first 50 or 100 AI addressed to first cpu core, next 50-100 AI addressed to second cpu core, next 50-100 ai to third cpu core, and 50-100 for the last core. And so every next core, the more cores cpu has, the more AI it can handle. So on a 4 core machine, we could be fine at least with 200-400 AI, which is not bad at all. (yeah i know, playing engine expert, is not hard) :P

Edited by NeuroFunker

Share this post


Link to post
Share on other sites
Does that mean you can easily have 200 AI? Isn't that quite plenty for an average mission? And the rest of the 3 cores will be used for other processing?

Or is the core usage the same in every scenario? Only one core is always used? I find it hard to believe.

It doesn't seem like the other 3 cores are used for anything much, maybe network traffic.

At 233 AIs the server just buckles under.

So what is the server calculating?

Collision detection and physics (shooting AI)

AI pathing

Network traffic (if any in this case)

Probably other stuff too

No matter the load, all the computations are done on 1 core. He has a quadcore with, I assume, hyperthreading enabled so he has 8 logical cores.

Server running single core only...when was that in anyway recommended last? 70s?

Share this post


Link to post
Share on other sites

No matter the load, all the computations are done on 1 core.

Yeah, I was just wondering if this is always the case or only in this test mission? Just spawning generic AI units around the map isn't exactly a typical multiplayer scenario.

I'm sorry if single core usage is a known and proven fact on servers, I really don't know much about them.

Share this post


Link to post
Share on other sites

Just one thing, is this only in MP? Because I don't know if it's worthy, but with a benchmark SP scenario, when I look on the Windows Task Manager, all my cores are used at the same level.

Share this post


Link to post
Share on other sites
Have you try this with a few players?

No I didn´t. In this mission there is only one player slot to avoid unpredictable ai calculations.

Does that mean you can easily have 200 AI? Isn't that quite plenty for an average mission? And the rest of the 3 cores will be used for other processing?

Or is the core usage the same in every scenario? Only one core is always used? I find it hard to believe.

Negative. It means, that you can have 200 ai soldiers doing nothing else than standing still and admiring the wonderful countryside.

It doesn't seem like the other 3 cores are used for anything much, maybe network traffic.

At 233 AIs the server just buckles under.

So what is the server calculating?

Collision detection and physics (shooting AI)

AI pathing

Network traffic (if any in this case)

Probably other stuff too

There is no shooting and no movement. The ai soldiers are just standing still.

Just one thing, is this only in MP? Because I don't know if it's worthy, but with a benchmark SP scenario, when I look on the Windows Task Manager, all my cores are used at the same level.

The mission was running on the arma3server.exe (MP), which seems to have no multithreading ability. Right now I am testing this with headless client, which is a special kind of client (arma.exe). With this setup also the other cores are slightly utilised but the main load stays on first core.

Share this post


Link to post
Share on other sites

The mission was running on the arma3server.exe (MP), which seems to have no multithreading ability.

i belive this statement is inaccurate. arma both server & client has multithreading.

but this doesnt help us much. you can have 10's / 100's / 1000's of threads running on one core.

arma needs to get proper multicore support. it really needs to offload/spread ai calulation and other stuff across cores. not threads.

the devs found this hard to do. and yes its is hard to do. its no easy task at all. but this is whats needs to be done if this engine is to survive. it's already lying on its deathbed if you ask me.

cpu's nowadays are not really getting much more hertz. "high hertz is the only solution if you run most calulation on one core". cpu hertz has stagnated quit a lot the last few year, but they are increasing in number of cores.

Share this post


Link to post
Share on other sites

Dr.cremaster, message Dwarden and ask for the performance server binary, give that a test and compare/contrast results.

Share this post


Link to post
Share on other sites

On the face of it, this does not look good. My question is, what startup parameters did you use? I cannot see any reference to this so for all we know, you could have forced single core operation.

Share this post


Link to post
Share on other sites
I cannot see any reference to this so for all we know, you could have forced single core operation.

Well, maybe, but why? This would make no sense. The real weak spots of the ARMA series right from the beginning in 2006 was an already outdated engine w/o multicore support. BI spend a lot of time, manpower and probably a lot of money to work around this problem, but they always fighted the symptoms and never the real cause.

And we all now; a fish rots from the head down. ;)

Share this post


Link to post
Share on other sites

Not really surprised at all with this, its been like this for years. Nothing has changed since like a1, just they pile more eye candy onto the screen to hide the issues and hopefully distract the user from them. But in todays standards i think its starting to disintegrate and people are becoming less forgiving to a major issue now which has just been blatantly ignored.

If BIS made cars, we would have a 06 car with a 5.7ltr V8 that pumped out 100hp and guzzled down about 1mpg

7 years later we would have another car by BIS although looks different style was changed, and it comes with satnav, aircon, heated seats, sunroof, electric windows, all the shit. Yet quess what under the hood have they done ANYTHING to that inefficient engine simple answer is No.

Edited by Opticalsnare

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  

×