1. A computing device-implemented method for performing parallel processing, comprising: initiating a single programming language; identifying, via the single programming language, one or more data distribution schemes for executing a program; transforming, via the single programming language, the program into a parallel program with an optimum data distribution scheme selected from the one or more identified data distribution schemes; allocating the parallel program to two or more labs for parallel execution; receiving one or more results associated with the parallel execution of the parallel program from the two or more labs; and providing the one or more results to the program.