Does anyone know how many threads that PA Server is able to effectively utilize?

Discussion in 'Planetary Annihilation General Discussion' started by Rehmanpa, September 28, 2017.

  1. Rehmanpa

    Rehmanpa New Member

    Messages:
    11
    Likes Received:
    0
    With the release of the performance update, it says that multi-threading was officially implemented into both client and server side. I'm looking at building a new PC and I'm wondering if PA is able to effectively utilize all 16 threads that a ryzen processor has? I'm sure it depends on system size, but I'm also considering threadripper with the idea in mind of streaming PA while playing it and hosting a server from the same computer, simultaneously. I mean, would 32 threads running at 4.0ghz be enough to run this game and host a server from the same time, and if it would be, could I stream it as well?
    Thanks
  2. stuart98

    stuart98 Post Master General

    Messages:
    6,009
    Likes Received:
    3,888
    My rudimentary knowledge says yeah that should be?

    One thread per planet, one thread per AI. Less planets (and less AI in AI games) means multithreading is less effectively used.
  3. Rehmanpa

    Rehmanpa New Member

    Messages:
    11
    Likes Received:
    0
    Is this rule of thumb for server side, client side, or both?

    edit: also how much ram does it use? This is the only game I've ever seen make my system ram usage go up to 16gb (I think I saw it hit 19gb once). How much for server side? Would 32gb be enough to run the game on client and server simultaneously?
  4. stuart98

    stuart98 Post Master General

    Messages:
    6,009
    Likes Received:
    3,888
    Unless you've got like 4 1300 planets, 32gb should be sufficient.
  5. Rehmanpa

    Rehmanpa New Member

    Messages:
    11
    Likes Received:
    0
    I'm sorry if this seems like a wall of text, I'm just trying to make sure I ask my question in the best way I can, so here goes nothing:

    I'm not quite sure how this game renders things in terms of client vs server side. What does the server render versus what the client does? Does the server need one thread for each planet/player, if so, does the client need the same requirements (effectively doubling the requirements that the I need for a computer to do both simultaneously)?
    Also, if the client has been using 16GB (sometimes but rarely more), how much will the server be using? Would it be more or less? I guess that portrays to how much exactly the server renders vs what the client does.
  6. mikeyh

    mikeyh Post Master General

    Messages:
    1,869
    Likes Received:
    1,509
    Servers run the simulation using the CPU. Initial RAM is based on the system generated and increases over time to include the entire game history. Big games with many players can use a lot of server RAM for all that history.

    The new server multithreading distributes the simulation load across multiple cores even for single planet systems allowing navigation and physics updates to run on separate threads for each planet. AI brains also run on separate threads.

    Servers still synchronise the sim through a single thread even with multithreading and multiple planets. That thread will always be the CPU hot spot for the server. ie high single thread performance is still important.

    Adding more planets may not actually improve sim performance as that might increase the unit count as players horde units on different planets.

    Clients

    Clients show a view of the simulation at a point in time using both CPU and GPU. Initial RAM is based on the system generated and increases over time with the number of units, projectiles and interactions visible or seen by the player.

    Big games with lots of units interacting can use a lot of CPU and GPU.

    CPUs

    Until recently you had two mutually exclusive choices with CPUs:
    • high single thread performance / IPS
    • high core count
    With new CPUs like the AMD Threadripper 1950X and the i9-8960X you can now have both.

    Ideally you still want servers to run on a dedicated machine. Even with multithreading there is still operating system and hardware pressure. eg context switches, caches, interconnects, memory controllers, bus, etc.

    The many cores benefit streamers allowing video processing to run on the spare cores with less impact on the game. Other applications left open like browsers will also have less impact on the game (you should still close them if not needed).

    New CPUs also have improved hardware video encoders and decoders with higher memory / bus bandwidth. That can dramatically improve stream quality assuming you have good network bandwidth.

    Anything over 8 cores / threads and 16GB would be the starting point. 32GB RAM would be my recommendation. If you have cash to burn go for 64GB and the i9-8960X :)

    Useful reading:
    Last edited: September 30, 2017
    cola_colin and mwreynolds like this.
  7. Rehmanpa

    Rehmanpa New Member

    Messages:
    11
    Likes Received:
    0
    So a Threadripper 1950x with 32gb of ram would be enough or would I want 64gb of ram to play and host PA at the same time? i.e. Should i spend another $230 on 32gb more ram to get 64gb vs 32gb? Also, does quad channel memory matter at all for PA?
  8. mikeyh

    mikeyh Post Master General

    Messages:
    1,869
    Likes Received:
    1,509
    32GB is fine unless you are playing really big games with 20+ players. If you have plenty of cash then go for 64GB.

    The PA server is CPU bound and may not benefit much from quad channel memory. Quad channel seems to be the only real option for Threadripper based on reports of slower performance with dual channel.

    There will be more CPU / GPU improvements in 2018 so you might want to spend a little less now so you can upgrade again next year. All depends on how much cash you have to spend.
  9. Rehmanpa

    Rehmanpa New Member

    Messages:
    11
    Likes Received:
    0
    So all the cpu stuff is client side instead of server side then?

    The cpu upgrades you referred to, specifically like ryzen 2, will ryzen 2 also be threadripper tr4 or is it strictly am4? AMD said they support those sockets through like 2020 or later so the Zen 2 should be am4 compatible, so I'm assuming that means x399 compatible as Well (at least most likely, I know none of us have 100% certainty)?

    If 16threads would be another i would probably get the 1900x for the x399 socket and upgrade to Zen 2 threadripper assuming it also includes those cpus.
  10. mikeyh

    mikeyh Post Master General

    Messages:
    1,869
    Likes Received:
    1,509
    No. CPU bound means the CPU is the bottleneck for the server especially on the primary sim thread. That is why single thread performance is still important for servers.

    Servers only use CPU. Clients uses both CPU and GPU.

    Pinnacle Ridge rumours look like a process improvement moving to 12nm in early 2018 that is AM4 compatible. The big jump will be their move to 7nm in 2019 (Zen 2).
  11. Rehmanpa

    Rehmanpa New Member

    Messages:
    11
    Likes Received:
    0
    Threadripper seems to have pretty good IPC (albeit not 7740x overclocked at 5+ghz level but still good nevertheless). Since it seems like the Server doesn't need too many threads, I'm thinking a 16 thread processor would be good (the 1900x) then upgrading to the zen 2 release in February next year. I'm going with the assumption that x399 is not going to be replaced in the next year or two since AMD said they were planning on supporting it for several years. I mean I'm assuming that x499 isn't going to be coming out anytime soon, but then again I'm not trying to turn this into a tech-rumormill thread.

    I'm assuming that a threadripper 1900x with 64gb ram will be sufficient to host a server (and theoretically at least) play on client simultaneously? I'll be running either a gtx 1080 or 1080 ti so I shouldn't have an FPS issue for client side with my GPU.

Share This Page