I would plan on about 1000 VUs per injector. In theory you can go to 1500 users, but that depends on how much correlation and/or custom code you are adding to your scripts and also the think time.
I would plan on 50 instances of OpenSTA to do this.
Depending on your scripts, this could be easier or harder. If your scripts do not need to coordinate with each other, then you can create separate instances and just run 50 tests in parallel and merge the response time data afterward. This would be the easiest way for someone new to OpenSTA (or someone without experience running master/slave (multi-injector) instances) to approach the task.
Generally speaking, if you need to use "acquire mutex" statements in your script to coordinate access to lists or files, then you either have to run in a master/slave configuration where all instances are talking to each other or you need to break up the files/lists by hand and give a separate one to each of the 50 instances (which now have no need to talk to each other as they are no long sharing data).
If you don't know what the "acquire mutex" statement is used for, I would run (not walk) away from OpenSTA for running this 50,000 VU test due to the size and complexity of running such a huge load test.
If I were doing this, I'd be using OpenSTA instances in the cloud to generate load and would likely set up separate instances that do not talk to each other.