A computer-implemented method, comprising the steps of: before execution of a program, identifying a short to intermediate stretch of code within the program as an opportunity for parallel execution, wherein the identifying step is performed by a compiler, the compiler, when compiling the program, dividing the identified stretch of code into an immediate stream and a farther stream, inserting a PushAndBidForParallelExecution (PABFPE) instruction at the start of the immediate stream, and inserting a PopAndReleaseParallelExecution (PARPE) instruction at the end of the farther stream; commencing execution of the program in a current paired unit comprising an execution unit and a half set of registers; when the program executes the PABFPE instruction, the PABFPE instruction determining whether or not at least one additional paired unit is available, each additional paired unit comprising an additional execution unit and an additional half set of registers; if it is determined by the PABFPE instruction that at least one additional paired unit is available, allocating an available additional paired unit for parallel execution of a portion of the identified stretch of code, executing the farther stream in the current paired unit, and commencing parallel execution with the additional execution unit of the allocated paired unit, wherein the parallel execution includes executing the immediate stream and executing the PARPE instruction in the current paired unit to release the allocated paired unit; and, if it is determined by the PABFPE instruction that at least one additional paired unit is not available, continuing execution of the program in the current paired unit including executing the identified stretch of code; wherein the allocating comprises copying at least one register of the current paired unit to at least one corresponding register of the allocated paired unit to set the allocated paired unit to the next sequential instruction in the program and, pushing a stack register of the current paired unit with an encoding identifying the allocated paired unit; and, wherein the steps of determining, allocating, copying, pushing, and commencing are performed as the current paired unit executes the PABFPE instruction. before execution of a program, identifying a short to intermediate stretch of code within the program as an opportunity for parallel execution, wherein the identifying step is performed by a compiler, the compiler, when compiling the program, dividing the identified stretch of code into an immediate stream and a farther stream, inserting a PushAndBidForParallelExecution (PABFPE) instruction at the start of the immediate stream, and inserting a PopAndReleaseParallelExecution (PARPE) instruction at the end of the farther stream; commencing execution of the program in a current paired unit comprising an execution unit and a half set of registers; when the program executes the PABFPE instruction, the PABFPE instruction determining whether or not at least one additional paired unit is available, each additional paired unit comprising an additional execution unit and an additional half set of registers; if it is determined by the PABFPE instruction that at least one additional paired unit is available, allocating an available additional paired unit for parallel execution of a portion of the identified stretch of code, executing the farther stream in the current paired unit, and commencing parallel execution with the additional execution unit of the allocated paired unit, wherein the parallel execution includes executing the immediate stream and executing the PARPE instruction in the current paired unit to release the allocated paired unit; and, if it is determined by the PABFPE instruction that at least one additional paired unit is not available, continuing execution of the program in the current paired unit including executing the identified stretch of code; wherein the allocating comprises copying at least one register of the current paired unit to at least one corresponding register of the allocated paired unit to set the allocated paired unit to the next sequential instruction in the program and, pushing a stack register of the current paired unit with an encoding identifying the allocated paired unit; and, wherein the steps of determining, allocating, copying, pushing, and commencing are performed as the current paired unit executes the PABFPE instruction.