I don't think a CPU ranking can really work. Performance between two different CPU's depends on a lot of different things.
It can depend on the type of instructions being executed, the compiler used, how sensitive the program is to RAM speed and timings, whether an IMC gives it a benifit, whether large cache helps, predictability of instructions by the prefetching algorithms, what RAM and motherboard it's being paired with, how well it scales with frequency, the chipset drivers and BIOS used, the operating system and what it's compiled with and how it's compiled (especially for GNU/Linux or OpenBSD).
The performance of multi-core CPU's varies depending on how well threaded the application is, and sometimes how fast the intercore communicate is (especially for multi-socket systems).