Hello,
I have an explanation why Intel said such statement and why Intel is wrong and right (not quite) at the same time.
It’s common knowledge that UE4 doesn’t support multi-threading in BPs, but I wanted to verify this just in case since it came from a respectable entity as Intel.
So, I created a BP with a ForLoop from 0 to 50.000.
A single instance of this BP took around ~100ms to complete.
Now, having two instances of this BPs take (to my surprise) about ~145ms to complete.
With 4 instances, 250ms. That’s 1.6x times faster than the expected 400ms. But why?
After scratching my head for a while and trying different settings, I finally found an explanation: Allow Parallel GC
This setting is turned On by default. After turning it off and running the test again, the cpu time started increasing linearly proportional to the amount of instances of this BP.
In conclusion:
No, UE4 doesn’t use Multi-Threading for Blueprints.
Yes, it’s faster to split the load of a single (and cpu-intensive) BP into multiple BPs because the GC operations for those BPs will run in parallel.
What I do not know is how the GC distributes the cleaning operations jobs and why is tied to only what single BP instance allocated (some kind of VM scopes?).
Maybe an UE4 engineer has an answer to a question which no one really wants to know the answer.