1. A method for compiler-guided optimization of MapReduce type applications, said method comprising the steps of: applying transformations and optimizations to java bytecode of an original application by instrumenter which carries out static analysis to determine application properties depending on the optimization being performed and provides an output of optimized Java bytecode; and executing said application and analyzing generated trace and feeds information back into said instrumenter by a trace analyzer, said trace analyzer and instrumenter invoking each other iteratively and exchanging information through files; wherein an automatic compiler transformation for a MapReduce data tiling optimization of said optimizations is completely independent of a body of map and reduce and can be applied to iterative convergence processes.