I am new to parallel programming. I researched a lot about using MPI and Windows HPC server's SOA programming model. But now I am more confused than ever. The task at hand is to run a program over multiple computers (IP address will be provided by the user), this program takes an input file full of millions of strings and extracts certain regions. I have completed the programming (in C# & .net4 fw) and have successfully tested it on a single computer. But the problem is that I have to make it parallel in order to speed things up. I just want somebody to show me the direction towards an approach that doesn't involve using MPI. I hope my question is clear eno开发者_如何学Gough.
Thanks.
You could try Dryad. It includes a LINQ-like API.
You will need to instantiate some behaviour on the target machines that will need to be open and listening for your requests. I suggest you investigate WCF for communicating across your network.
Depending on your environment, security is often an interesting hurdle for this type of project.
You could try reworking your application to use silverlight as client processors.
http://www.codeproject.com/KB/silverlight/gridcomputing.aspx
If I understand your question, one solution is to change your program so that it listens on some port for work to do, and get it running on a bunch of computers. Then you want a job submitter running on one or more machines. The submitter can receive IP addresses corresponding to a subset of the computers running your program, and then communicate with the already-running instances of your program, giving them any information they don't already have about which portion of work they're to do.
The worker program, running on many computers, is a "service", and the job submitter program is a "client".
精彩评论