UE4 Task/CPU scheduler

Question about UE4’s CPU Scheduler. It’s my understanding that another engine competing in this space is optimized for 8 concurrent CPU cores max. I was wondering how well UE4 scales up. Say I had a 48 core Opteron sytem runing the UE4 dedicated server, lets say 2000 people connected to it and the game world had about 60k pawns floating around. Now, whether or not 48 cores is enough for that workload isn’t the sole issue, would UE4 even scale up to use them all on it’s own or would I need to do some serious refactoring to get all of those CPUs saturated with work?

If UE4 can handle this out of the box that’s a major sale, I don’t suppose I’d look back at the competition.

To clarify, I’m talking about game logic and physics, not rendering. Looking further in this issue I’m under the impression that saturating 48 cores would require some clever use of C, but I could be wrong.

I realize this is an advanced subject but ideally I’m not spending 3-6 months in R&D just to form some basic understanding of the situation, especially when I’m sure there are straight answers to something this central to design.

For example, is this level of saturation only achievable using USTRUCTS and manual threading?

As you may notice engine processing is all based on ticks of objects and they are executed in asynchronously in few stages called TickGroups. Little dive in to tick source code lead me to MAX_THREADS constant (means this value is hard coded and can’t be changed dynamically in runtime) which is set to 8

https://github.com/EpicGames/UnrealEngine/blob/69b5693c869697b828e1f2c24004ff1481b5fb98/Engine/Source/Runtime/Core/Private/Async/TaskGraph.cpp#L981

You might try to change it if you want, but not sure it is only thing that need to change there might be other requirements, either way it good starting point ;]

Also you might be interested in TickTaskMenager

https://github.com/EpicGames/UnrealEngine/blob/69b5693c869697b828e1f2c24004ff1481b5fb98/Engine/Source/Runtime/Engine/Private/TickTaskManager.cpp