Should learn how to approach writing multi threaded applications for multi core and multi processor applications?

Though I learnt the concepts of multi threaded programming. But 8 years back, my manager Partha provided me a good practical understanding of multi threaded programming. With multi core and multi processor machines coming in today, what are challenges of writing multi threaded program? Will they remain the same?

 Dr. Dobb’s Journal, in Sept 20008 proposes a framework that proposes to allow application to continue to think in terms of threads and the framework to take charge of complexities of working with processors and cores.

This article also provided link to an interesting article The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software gives a good reason how PC has moved from increasing the clock speed to coming with multi core machines. these helped me to be aware that multi threaded application working fine on single core might not work the same or might even have Concurrency problems running in multi-core or multi-processor machines.

If you want to start learning about writing multi threaded programs, I found Threading in C# to be useful.