How does PA utilize system resources and is it constant across multiple architectures?

Discussion in 'Support!' started by alopex2lagopus, October 20, 2013.

  1. alopex2lagopus

    alopex2lagopus Member

    Messages:
    48
    Likes Received:
    6
    So I am relatively new to this forum, but I have been playing with PA since early on in the Alpha. My experiences have been mixed, but mostly as a result of my system and configurations. I will say that with each new Beta release, there seems to be a positive trend towards bug fixes, game stability and new added features. All that being said, the way PA utilizes system processors seems a bit schizophrenic!

    Below I will outline my experiment procedure, and then my results. I would like to see other people with different systems follow the procedure to see if their results are similar or different. As I am running Xeon architecture, it could be an anomaly stemming from my particular system, however, My theory is there is still much optimization to be done in the way of system utilization on PAs end. I know this is a beta, so that is more than expected. Still, I am curious to see what results others are having.

    This test was initiated after Forum user Rick104547 stated the following in a thread regarding low FPS:
    This statement got me thinking. How much of a system's ability to multi-thread is controlled by the operating system's ability to parse the incoming requests and divide them up among all available resources (processors, memory, GPU, etc.) versus any given applications ability to do so? Are they ever at odds with one another, fighting for control?

    So with that being said, I wanted to see, in a rudimentary way, what exactly PA was doing to my system, in conjunction with Windows, during a normal game sequence.

    System attributes:
    Dual Intel X5355 Xeon 2.66 GHz processors
    10 GB of RAM
    Radeon HD 5770 graphics card
    Windows 7 - boot-camped on 2006 Mac Pro 1.1
    --Because I know someone may point it out, in the attached DxDiag, it will say Mac Pro 2.1 as a result of the Bios loaded for the Processor upgrade I performed.

    Testing methodology:
    -To see what processing load and distribution was occurring, I simply opened the task manager and monitored the 'Performance' tab.
    -At key points and screens, I used the Snipping Tool to take isolated screen shots.

    Tests:
    Test 0 - Control - System idle from start up
    -> At Idle my system was running at approximately 3% processor utilization
    control.JPG

    Test 1 - Game Launch and wait at main screen
    -> For reasons I don't fully understand, the main screen causes the system to jump up to, and remain at 30% processor utilization. This phenomenon remains constant for the duration of being at the screen.
    -> You will notice the drastic jump from Idle to main screen.
    -> Please note that I did expect an increase in processor utilization. Why this seems weird will become evident shortly.
    test1_startup.JPG

    Test 2 - Joining a game
    ->There is a sudden drop from the Main screen to the Join game screen. Processor utilization stays constant at approximately 5%
    ->Please note that at first, I expected ( as a result of Test 1) to see a similar processor utilization; this is due to me assuming that the 30% utilization was just the background processes of the game.
    -> This led me to yet another question. What is going on while you are at the main screen that requires 30% processor utilization? Is it checking for updates, ViDoc like videos, etc.. Is PA phoning home? And if I walk away for an hour, will it sit at 30% just doing what it is doing..to the end of time?
    test2_joingame.JPG

    Test 3 - Back to Main screen
    -> Just to see if the processor utilization goes back up, or if the high processor utilization was initiated by game processes that only run on game start-up.
    ->Processor utilization spikes, yet again, right back to 30%
    -> stays constant for duration of being on main screen
    test3_backtomain.JPG

    Test 4 - Game Lobby
    ->So now I do the only logical thing. I join a game.
    -> While in the lobby, I observe that across all 8 processing cores, there are wild fluctuations between 30% and 80% processor utilization. I attribute that to the system loading.
    -> The fluctuations only last a minute or so, until the light ( that I am assuming is an indicator of how much the system is loaded) goes green.
    -> the system in specific was a two planet system, with the main planet being a class 4.
    -> once the system had loaded, the processor utilization dropped to a stable 5%
    test4_gamelobby.JPG

    Test 5 - In-game
    ->while starting the match and building with the commander, I experienced a 23% processor utilization
    -> while expanding and building, with little movement in the Z-direction (zooming in and out) I saw a roughly (+-) 5% fluctuation in the processor utilization. so relatively stable.
    test5_gamestart.JPG

    Test 6 - Heterogeneous processor utilization
    -> Oh hello physical core number 8!
    -> While observing in game processor utilization, I noticed that one core was working a lot harder than the others. Perhaps this lends truth to PA only being a single-threaded application.
    -> This raises more questions, however.
    -> If PA is single-threaded, why see loads increase across all cores? Is that a result of the OS trying to balance, even though PA only wants to send instructions to one core? I honestly have no idea here...
    test6_heterogeniousprocessing.JPG

    Test 7 - 30 minutes in - 60 minutes in
    ->In-game processing remains fairly stable with readings at 30 minutes in and 60 minutes in being the same, holding roughly at 18% processor utilization.
    test7_30minin.JPG

    Test 8 - After action report
    -> yet another weird reading. while total processor utilization remains around 17%, the core utilization fluctuated quite a bit. Some cores saw an increase in processing utilization while others saw a drop. Could the after action report be multi-threaded? Perhaps just a weird system anomaly.
    -> you can see some sharp drops and sharp increases. That point on the graph is the transition from game to after action report. In specific, Cores 1,2,6,8. Not sure what to make of that. perhaps two cored per processor?
    test8_afteractionreport.JPG

    Test 9 - Back to main screen ( Just to see)
    -> Yeah, it goes right back up to a 30% processor utilization. at this point, I am convinced there are background processes at work on the main page. I am guessing it has to do with keeping up to date with Beta releases and updates to the tutorial video as well as looking for the random start up video ( look what we did!?) video. Which I personally like it that they are keeping the communications channels so widely opened!
    test9_backtomain.JPG

    Test 10 - close game, back to system idle
    -> As I expected, once the game is closed, the system idle returns to the original 3% system utilization
    -> As there is a 10 image limit, I cannot post that image. but basically its just a drop off from the 30% main screen processor utilization to a 3% processor utilization. nothing crazy out of bounds there.

    Conclusion:
    Its tough to know what all of this really means without context. I would be interested to see if different systems, with different hardware specs, see similar trends. I would also be interested to see what kinds of loads are being put on the GPU. Furthermore, I would be interested to know if PA is more of a processor intensive game, or GPU, or equal load.

    Furthermore, some tasks like system loading in the game lobby seems to be inherently multi-threaded, while in-game it seems to be single-threaded. Does this make sense?

    My main reason for posting this is curiosity. so Please, feel free to postulate about anything above. or things along the same lines.
    Last edited: October 20, 2013
  2. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    It's doesn't make sense at all. While you at lobby or at start of game planet generation process going and this process extremely CPU-intensive.

    When planets are generated your game client only work as viewer, it's don't make any calculations on it's own, all CPU-intensive work done on remote servers.

    A bit later I'll try to read whole you post and give some feedback on it :)
  3. cola_colin

    cola_colin Moderator Alumni

    Messages:
    12,074
    Likes Received:
    16,221
    So a few things I can say:

    Generally you need to consider how the UI in PA works: It's a webbrowser that runs multiple extra(!) processes that communicate with the game.

    On my core i5 3550 I get a ~45% load in the mainmenu. This load does _not_ stem from pa.exe alone, in fact it is spread among 2 coherent process and pa.exe with pa.exe having the smallest part of it. The reason for the high load is the nebula in the background of the menu. After removing the nebula from the mainmenu (commented out the html) the load in mainmenu is below 10%

    About ingame:
    The load on your core 8 is probably the mainprocess of the game. The game's UI runs in different processes, so it is likely to be spread across your other cores.
    Last edited: October 20, 2013
    maxpowerz and SXX like this.
  4. lokiCML

    lokiCML Post Master General

    Messages:
    1,973
    Likes Received:
    953
    Interesting I am seeing one pa.exe process in 6 to 7 coherent UI processes. Depending on if you're viewing one of the videos. Six coherent processes if you're just playing the game.
    PACUIPs.PNG
  5. cola_colin

    cola_colin Moderator Alumni

    Messages:
    12,074
    Likes Received:
    16,221
    I didnt mean that you only have to have 2 coherent processes. It's just that the load in the mainmenu is on 2 processes. PA has multiple "scenes" in coherent, some of which run at the same time. I imagine they are implemented like tabs in chrome: they have their own process.
  6. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    Actually they don't need to implement anything as long as Coherent is Chromium with very few changes.

    Short description of "why 7 processes":
    • One master process which is manage others. It's only not sandboxed process
    • One which handle GPU acceleration. Only this one have access to GPU.
    • One-two "zygote" processes which listen to master and fork themselves on demand.
      These are used when master process need to spawn new tab (or new Coherent view).
    • 4 sandboxed "renderer" processes for each Coherent view: current page (menu, game UI, settings), cursor, unit/mex icons and last one for selection boxes and in-game icons.
    I want to believe I explained this good :oops:
    Last edited: October 20, 2013
    maxpowerz and cola_colin like this.
  7. rick104547

    rick104547 Member

    Messages:
    305
    Likes Received:
    17
    Usually loading stuff uses all cores. If you want to load stuff faster its usually more cost efficient to buy a ssd instead of a better cpu though.

    Yes i said PA was singlethreaded. This probably isnt 100% true but you can assume most of the load will be on 1 core (which will be your bottleneck). If they manage to split that load in lets say 2 threads then that will lead to major fps improvements. As long as they dont do that i dont see PA as having proper multithreading (though idk if its possible).

    So while you would see notable improvements going from a 1 core system to a 2 core system or even from 2 cores to 4 cores you wont see much difference between 4 and 8 cores. More cores just means that the core thats doing most of the work doesnt have to do other stuff (=more time for the main load). But you can see that after adding a few cores you wont see any improvements anymore.

    Most cpu's used for serious gaming currently are either i5 4670 or i7 4770 (or ivy/sandy bridge variants). Both are quadcores. Though the i7 has hyperthreading meaning it will have 8 threads instead of 4. This doesnt mean hyperthreading is better. In some cases its actualy worse.

    If you really want to get the best performance you should use a extreme processor. Not only are they are cheaper than the xeons but they favor singlethreaded performance more than xeons.
  8. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    You're completely wrong here. PA using multithreading where it's required: on planet generation. UI is big bottleneck in PA not because it's only using one core, but because copying of bitmaps take long (in terms of 3D) time.

    "Exteme" processors it's complete waste of money and marketing bullshit.
    For it's cost you can buy two "normal" CPUs with good cooling systems and overclock them.

    While any "extreme" processor give you +10% performance for + 200% price.
  9. rick104547

    rick104547 Member

    Messages:
    305
    Likes Received:
    17
    Iam talking about PA using multithreaded while you are just playing a game. I already know that generating planets is multithreaded if that wasnt i would be very suprised as even minecraft managed to multithread terrain generation. In PA however this doesnt help ingame fps.

    For gaming extreme processors are better than xeons. Sure you are paying a hefty premium but if you got the money and want absolute best performance why not? You can also overclock them while i dont think xeons can be overclocked.
  10. alopex2lagopus

    alopex2lagopus Member

    Messages:
    48
    Likes Received:
    6
    Rick, please do not take my post as a slight against you in any way. This whole thread is a response to your post, which has led me to ask a very interesting question. To which, there have been some very interesting responses. All in the name of SCIENCE!!!! and curiosity!

    I know that my system is a bit of an out-layer, 8 physical cores on an old SLAED chipset, stuck inside a beautiful aluminium chassis from eons ago!! But it should be good enough! besides, talking to people in game, I have learned that people with newer cards than mine are often seeing lower FPS. ( Not knowing their settings, they could have their settings on UBER and that could explain it). but more often than not, there seems to be FPS issues with players. So I am merely trying to understand more thoroughly the underlying processing of the game, and how the load is shared amongst the various components of the computer.

    And sure, the Intel Extreme processors look great on paper, but why not just get a regular chip and overclock. Hell, AMD sells procesors with 8 physical cores on a die, running stock at 4GHz, so why not look at something like that. Though, I don't want my processor using more power than my microwave.

    On hyperthreading. I think your statement is too broad. I agree that on a processor that has 4 physical cores, with hyperthreading, that the logical cores (one logical core per physical core) will not function at the same rate as the physical cores. Therefore a CPU intensive thread, when allocated to a logical core, will have a degraded performance. That being said, my processors have 4 physical cores per die, giving me 8 physical cores. Each core will act like the other 7. THAT being said, what is hurting me more is my 2.66 GHz processing speed. I have the bandwidth, but to quote Jeremy Clarkson...I need MORE POWAAAAA!!!!!

    That being said, I agree that the newer processors will favor single threaded applications as a shear result of the vast increase in processing speed.

    If I am wrong with any of that, please correct me!!!
  11. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    I doubt powerful CPU can affect rendering performance anyhow. As I see UI it's only bottleneck at moment. Everything else depends on GPU performance.

    Because expensive processor won't performance higher automatically.
    You as well need:
    • Good PSU which provide power really stable.
    • Proper motherboard with good socket power supply and good compatibility with RAM, compatible BIOS.
    • RAM which compatible with motherboard, have real good timings and ability to work with higher voltage and frequencies.
    Unfortunately many people buy expensive CPU and then use it with their crappy hardware or cheap and slow 32GB of RAM. In result those people never get advantage of CPU they'd paid for.
  12. alopex2lagopus

    alopex2lagopus Member

    Messages:
    48
    Likes Received:
    6

    I totally agree with the above! That being said, is PA looking at implementing hyperthreading into actual gameplay, versus just map generation, or is that not possible. I know it was said that each coherent UI is like opening a tab in Chrome for the lack of a better metaphor. But can that 'tab' be split up for multiple cores, or is that something that is not possible?
  13. alopex2lagopus

    alopex2lagopus Member

    Messages:
    48
    Likes Received:
    6
    On the UI being the bottleneck. I posted this in another thread about low FPS, but I saw a 10 FPS increase when i disabled the UI in game. How is the UI refreshed in game? And does the entir UI redraw itself every time it is refreshed, or only key parts. I'm figuring the UI redraws to keep energy/metal balances up to date as well as other things; but i'm wondering if the UI can be broken up into more static parts that are drawn at beginning of game, then subsequent parts that refresh as needed.
  14. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    Each "tab" is rendered by dedicated process, GPU process is also dedicated.
    So UI rendering itself is already multithreade by design.

    As long as I understand bottleneck isn't in UI itself, but between PA and Coherent. E.g when Coherent render new frame it's need to be "copied" to PA process and combined with actual game renderer output. For some reason this process is CPU-bound and it's slow-down frames.

    Really I have no idea why exactly it's happen and nobody of devs ever talk about that in details. Probably they don't know it too because most likely they don't have Coherent source code and all this "bitmap transfer" process just done by closed source library which they can't fix on their own.
  15. rick104547

    rick104547 Member

    Messages:
    305
    Likes Received:
    17
    @SXX
    Iam seeing 1 core being maxed ingame which makes me believe my i5 760 cpu is the bottleneck. I have a hd7970 oc ghz ed graphic card which barely gets used by PA. Also getting really low fps (and currently getting black screen cuz of update :(). Might be software related bug.

    Idk why you begin about PSU, mobo, RAM etc. One would assume if you are getting a extreme cpu for a maximum performance system he would not use a 200 watt PSU for instance (in which case i dont think the system will run at all). Just comparing cpu's here not the rest of the system or ppl stupid enough to use 50 dollar mobo's with a 1000 dolar cpu.

    @alopex2lagopus
    Currently the game is barely optimized. Its pretty much like minecraft. Althrough it favors more powerfull systems there is some big luck factor. You can see different fps on 2 identical systems. Idk why exactly but i think it has to do with optimizing the game/driver issues etc.

    Hyperthreading makes it possible to have 2 threads running at the same time on a cpu core. This generally improves performance because the cpu cores have to wait less to get instructions from their cache. Oblivously this isnt even near the speed of 2 real cores.

    Clockspeed isnt the only thing to check when comparing cpu's. AMD cpu's generally have higher clockspeeds BUT this doesnt mean they are faster than a intel cpu thats running at a lower clockspeed. The reason for this is that clockspeed isnt the only thing that contributes to the speed of your cpu. Its the whole package and clockspeed is just 1 thing.

    A intel i7 4960X processor will completely crush the FX-8350 (assuming this is the 8 core 4 ghz amd cpu you are talking about) in singlethreaded and multithreaded performance.
    Last edited: October 20, 2013
  16. paulusss

    paulusss Active Member

    Messages:
    271
    Likes Received:
    144
    The UI for the moment is the biggest issue ingame, it slows it down pretty drasticly and the refreshrate (update rate) is far lower then i have seen in other RTS games, but this is a temporary UI and the new one might be better coded and could be a drastic improvement, but we will just have to wait for that ^^
    Culverin likes this.
  17. SXX

    SXX Post Master General

    Messages:
    6,896
    Likes Received:
    1,812
    Unfortunately it's not enough just throw money on hardware to get good performance you paid for. When you want to get those +10% performance over something "standard" it's hard, there lot of pitfalls which are tricky for non-advanced user.
  18. alopex2lagopus

    alopex2lagopus Member

    Messages:
    48
    Likes Received:
    6

    Some people get focused on one part, and most people aren't made of money, especially in this economy. So it is really easy to say, " I must have extreme i7", and then not have enough money to buy comparable parts. so you skimp on the PSU and get cheaper RAM, and maybe a smaller SSD. At the end of the day, your performance suffers as a result of your CPU's gluttony! So I say SXX's argument as a valid one.

    Second, What FPS are you getting Rick104547? and what are your settings? I am participating in an interesting thread:
    https://forums.uberent.com/threads/very-bad-framerate-any-advice.53061/page-2#post-809638
    Might be worth reading and adding your opinions over there.

    You said you're maxing out one of your cores? I know you said you have an i5, but what speed is that rated at, I am just curious?

    And obliviously means nearly the opposite of obviously! Hyperthreading an application is not directly tied to intel's form of pairing a physical core with a logical core. so, again, that is a blanket statement. The right answer is 'it depends'. Ceteris Paribus; Hyperthreading on an octo-physical core machine will be faster than hyperthreading on an i7 with the physical-logical core duo (should the software be optimized for it, and the speeds be identical). That would be why you see Xeons being put in servers and not i7 extremes.
  19. paulusss

    paulusss Active Member

    Messages:
    271
    Likes Received:
    144
    Very true, architecture of the CPU is the key factor of it being faster then any other. AMD and Intel have different architectures so even with the same Ghz one has better performance then the other, because it's build is more efficient, better Co-operation between several internal parts within the processor.
  20. alopex2lagopus

    alopex2lagopus Member

    Messages:
    48
    Likes Received:
    6

    So to that I would say that you are most certainly correct, with regards to single-threaded performance on the i7 versus the AMD. That being said, I would state that the AMD is no slouch in terms of multi-threaded performance. In fact, most of the benchmark tests performed shows the AMD in front of the i7 in terms of multi-threaded performance and while running several single-threaded applications. Beyond all that, either processor will get the job done. As long as it is paired with a comparable mother board, wisely chosen RAM, and other well matched parts. Personally, I am a fan of Intel; their products seem to consume less power, and usually put off less heat (over-clocking not withstanding), but I am not going to steam roll AMD, as they are an innovative company, who for the money, put out rocking hardware!

Share This Page