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 applied to iterative convergence processes; wherein said optimizations comprises a parameter auto-tuning optimization employing a parameter instrumenter, a trace instrumenter and said trace analyzer, said trace instrumenter being for instrumenting JAVA bytecode of said application for selective trace generation, said parameter instrumenter being for adding statements in said JAVA bytecode for setting parameter values, and said trace analyzer being for executing said application with a fixed set of parameters and measuring execution time.