Patent ID: 8239845

Claim:
One or more non-transitory computer-readable media storing instructions, the instructions comprising: one or more instructions which, when executed by at least one processor, cause the at least one processor to receive a program; one or more instructions which, when executed by the at least one processor, cause the at least one processor to analyze the program, the one or more instructions to cause the at least one processor to analyze the program including one or more instructions to determine one or more variables associated with an inner context of the program and an outer context of the program; one or more instructions which, when executed by the at least one processor, cause the at least one processor to determine the inner context and the outer context of the program based on the analysis of the program; one or more instructions which, when executed by the at least one processor, cause the at least one processor to define an idle sub-pool of two or more labs; one or more instructions which, when executed by the at least one processor, cause the at least one processor to determine a desired number of labs for parallel execution of one or more portions of the inner context of the program; one or more instructions which, when executed by the at least one processor, cause the at least one processor to allocate the one or more portions of the inner context of the program to the desired number of labs from a portion of the idle sub-pool of labs; one or more instructions which, when executed by the at least one processor, cause the at least one processor to allocate a remaining portion of the idle sub-pool of labs to the desired number of labs for future use; one or more instructions which, when executed by the at least one processor, cause the at least one processor to receive one or more results, associated with the parallel execution of the one or more portions of the inner context of the program, from the portion of the idle sub-pool of labs; one or more instructions which, when executed by the at least one processor, cause the at least one processor to provide the one or more results to the outer context of the program; and one or more instructions which, when executed by the at least one processor, cause the at least one processor to restore the idle sub-pool of labs after providing the one or more results.