1. A method for compiling application source code, the method comprising: selecting a plurality of loops for parallelization, wherein the plurality of loops comprises a first loop and a second loop; partitioning the first loop into a first plurality of chunks; partitioning the second loop into a second plurality of chunks; calculating a plurality of data dependencies between the first plurality of chunks and the second plurality of chunks, wherein a first chunk of the second plurality of chunks is dependent on a first chunk of the first plurality of chunks; inserting, into the first loop and prior to completing compilation, a precedent synchronization instruction for execution when execution of the first chunk of the first plurality of chunks completes; and completing the compilation of the application source code to create an application compiled code.