Hi @bvss891
In Modulus the batch size defined in the config are by default the local (per GPU) batch size. What this means is that if you keep the batch size the same between 1 and 2 GPUs is that you’ve gone from a global batch size of 10000 → 20000.
Thus this would be a weak scaling test and the best you could ask for is the same performance speed between 1->2 GPUs. This of course won’t happen because to the communication between the GPUs adding some overhead. The exact overhead depends on how the hardware you have and how its configured, the size of the model, etc…
For strong scaling tests, Reduce your batch size when running on 2 GPUs to 5000. But keep in mind that if your GPUs are fully saturated with the smaller batch size you’re not going to see ideal scaling.
There are some scaling stats in our user-guide for weak scaling.