The behavior is the same for batch and GUI. It makes sense for the USR functions to be called on each CPU, for cases where each CPU is responsible for some subset of the particles. fluid cells, etc. Don’t think of it as the function being called “multiple times” - USR1 is being called once per time step, but the call is happening in a distributed way.
I find it helps to disable “DIsplay residuals”, this will reduce the amount of messages from the solver so you can spot your own more easily:

I think you have found a bug in the GUI, however. Somehow only the messages from PE 0 are showing up in the GUI console. If you examine the stdout file you will see the messages from the other PEs are there but they are not showing up inside the GUI window. I am not completely sure why this is happening - it’s a bit odd. I’ll try to get this sorted out for the next MFiX release.
– Charles