I want to start learning about parallelism. Appropriately,
- Approaches to write programs which attain parallelism
- Issues in writing code for Multi-core Architecture
- Design Patterns in parallelism
- Program optimizations techniques for multi-core architectures
- also something about transactional memory [While searching for parallelism , i came across this term].
I am collecting resources to do the same. Here is some stuff that I have found:
http://www.cse.wustl.edu/~schmidt/patterns-ace.html
Patterns for Parallel Programming
Just requesting to share your resources.
You should start by first learning about how different parallel architectures work. There are plenty of freely available and quality materials on the Internet.
Tutorials and course materials
Lawrence Livermore National Laboratory (LLNL) provides a nice set of HPC tutorials.
Edinburgh Parallel Computing Centre (EPCC) also provides for free large amount of course training materials.
I leave this answer as a community wiki so anyone can modify it and add other sources.