0

I want to start learning about parallelism. Appropriately,

  1. Approaches to write programs which attain parallelism
  2. Issues in writing code for Multi-core Architecture
  3. Design Patterns in parallelism
  4. Program optimizations techniques for multi-core architectures
  5. 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.

Abhishek Gupta
  • 6,465
  • 10
  • 50
  • 82
  • Are you mostly interested in shared memory (SMP/NUMA) programming or would also want to learn about distributed memory (message passing/PGAS) programming? Both are quite diverse in terms of what and how, despite the overlap. – Hristo Iliev May 23 '12 at 21:08
  • I am kind of confused with this why to mix parallelism with distributed programming or shared memory. Because after roaming over google, I found that in parallelism you have to optimize code for single CPU{may be multicore}..nothing like shared or distributed – Abhishek Gupta May 23 '12 at 21:26
  • Single-core performance is usually achieved through **vectorisation** and not through **parallelism**. Multicore programming _is_ shared memory parallel programming - each core can access all the system memory and parallel execution is achieved by multiple cooperating threads, each running on different core. – Hristo Iliev May 23 '12 at 22:07
  • It would be better if you provide sources for the both. – Abhishek Gupta May 24 '12 at 04:47
  • Any resources for beginner to step into this world!! – Abhishek Gupta May 24 '12 at 04:48

1 Answers1

1

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.

Hristo Iliev
  • 72,659
  • 12
  • 135
  • 186