Very important, but...
Just yesterday I was discussing with a PhD student that better compilers/debuggers etc were the way to go in utilizing multicore processors for many applications. In essence this was how many users of our old Cray SV1e and even older J932 used to parallellize their code: just set the compiler to aggressive optimization and it would do most things for you. Even then, prudent insertion of compiler pragmas was occasionally needed. In the same discussion we noted that there are many cases in which it is extremely hard for the compiler to parallellize. Examples are algorithms based on flood-filling using e.g. priority queues used in image analysis and computer graphics. These algorithms are so intrinsically sequential it takes real redesign to parallellize.
Bottom line: yes, compilers can do a great deal, but generally only if the parallellization is straightforward. Therefore, programmers WILL need to acquire new skills (including proof of correctnes of concurrent (multithreaded) programs)