My question is very simple, but there can be no answer. I have thousands of workers performing the same task, and I would like them to run in parallel on many remote virtual machines (Cloud or Network).
Here is an idea:
class ThreadManager { public void main() { for (int i = 0; i<300; i++) { myWorker wk; if (i < 100) wk = new myWorker(IP_Computer_1); else if (i < 200) wk = new myWorker(IP_Computer_2); else wk = new myWorker(IP_Computer_3); wk.RunWorkerAsync(); } } internal class myWorker :: BackgroundWorker { public string IP_Computer; {...}
Of course, this is pseudo code, you get the idea: Assigning threads / workers to different computers / virtual machines over a network (not just for several cores)
What are the main / easiest options I have? I am open to ANY easy and effective solution (I don’t want to move on to complex workflow planning / reengineering of the workflow, etc.), Let it be as simple as it is, please)
NB: This is NOT an innocent question. I know all the fuss about grid / cloud computing, HPC, Amazon web services, Azure, etc. I spent a lot of time reading and trying things, and my opinion is that there is a lot of (money) business out there. It’s sometimes useful to go back to the basics and ask simple questions to find out if we really need a too complicated / complicated / invasive / expensive solution to solve the main problems (we are not a Fortune 500 with a giant network, but just a small research company with specific / atomic computing )
source share