Distributed load testing is the process using which multiple systems are used for simulating load of large number of users. In JMeter, this is achieved by creating a Master-Slave configuration.
The reason of using more than one system for load testing is the limitation of single system to generate large number of threads (users).
Apart from using distributed load testing we can perform load testing over cloud also. Load testing on cloud (like Amazon's EC2) has several advantages- easy scalability, no maintenance, fast deployment and no artificial network bottlenecks.
Another alternative is Blazemeter which is a cloud based service compatible with Apache JMeter. It generates large amount of instant load and provide very comprehensive reporting and analysis features.
Also, we can perform distributed load testing on cloud, in which multiple machines on cloud can be used for generating large amount of load.
For distributed load testing we need to create Master-slave configuration wherein Master will control all the slaves and collect the test results.
To make the system work firewall needs to be turned off and all the systems need to be in same subnet. Also, preferably all the systems need to use same version of JMeter and Java.