There's a limit to how many real or virtual devices you can run on one machine.
This approach only scales so far, however. We've already looked at how to run your Appium tests in parallel, and it involves setting up specific capabilities in your test to make sure that, for each test, Appium can instantiate an appropriate driver without stepping on the toes of the drivers running other tests. But when it comes to a production CI environment, you're definitely going to want to run your tests in parallel, with as high a concurrency as you can manage. During the development of your test suite, it's helpful to run tests one at a time, and on one target platform at a time.