Mass Entity Processors not processing in parallel ?

Hello!

We’re using Mass Entities at the moment and while looking into optimizing the performance of this (as some processors were taking a lot of time), we noticed that the execution of this isn’t really done in parallel.

We’ve spotted bAllowParallelExecution, which can be set via the commandline arguments (e.g. “ParallelMassQueries=…”), but in the code the settings aren’t used at all.
It used to be handled in FMassEntityQuery::ParallelForEachEntityChunk, but this seems to have been removed in 5.1.
Can someone tell us why this was removed or if this has been refactored into something else?

Any insight/tips on what we could do to ensure we are running these processors in parallel as much as possible is very much welcome. (for example, is it possible to have huge amounts of entities being processed on multiple threads rather than having all handled on one thread?).

Hello Nerbert Fekkes,

unfortunately i cannot give you any solution to this problem. But at least i can confirm that setting the ParallelMassQueries=1 command line parameter, does nothing in Unreal Engine 5.3.
The operations performed in the entity queries of a processor are always processed serially. No matter if they are executed in the GamThread or a WorkerThread (bRequiresGameThreadExecution = false / true). Also processors of the “Representation Group”, which will update the Actor (LowRes / HighRes Actor MassGameplay representation) will only be executed in GameThread no matter if bRequiresGameThreadExecution is set to false.

I guess currently the only solution is to spread the processing to multiple processors which should be executed in parallel on multiple worker threads? For e.g. by using some different MassTags.

With best regards, Torsten