You can use background jobs to split the work.
See my Running a background job dive for some of the peculiarities of using PowerCLI in such a background job.
You will have to split the workload. You can pass a subset of the VMs to each background job.
You could do that by cluster, or by a range of VM based on their name...
Be also aware that there is a limit to the number of background jobs you can start in parallel on a station.
This depends on the amount of available memory, CPU resources ....
Also be aware that there will be a load on your vCenter when you launch multiple background jobs in parallel.
Determining the ideal number of background jobs is partially trial-and-error and partially common senseBlog: http://lucd.info | Twitter: @LucD22 | PowerCLI Reference co-author: http://tinyurl.com/hkn4glz