Free performance lunch is over. During the past few decades we witnessed continuous growth of single core processor performance powered, for the most part, by increases in processor clock speed and improvements in instruction level parallelism. All applications