Patent ID: 8250550

Claim:
A computing device-implemented method for performing parallel processing, the method comprising: initiating a single programming language, the initiating being performed by a computing device; identifying, via the single programming language, one or more data distribution schemes for executing a program, the identifying being performed by the computing device and further comprising: receiving a defined data distribution scheme; creating a class that is a subclass of one of a distributor object or a parallel distributor object; and identifying a parallel function of the parallel program based on the created class; transforming, via the single programming language, the program into a parallel program, using the parallel function, with a data distribution scheme selected from the one or more identified data distribution schemes, the transforming being performed by the computing device; allocating the parallel program to two or more labs for parallel execution, the allocating being performed by the computing device; receiving one or more results associated with the parallel execution of the parallel program from the two or more labs, the receiving being performed by the computing device; and providing the one or more results to the program, the providing being performed by the computing device.