Recommended

Multicore community

 

Articles

Intel.com

Microsoft.co.il

 

Community

Microsoft Forums

Intel's Forum

Intel's Multicore Community

 

Resources

http://msdn.com/concurrency

Intel Multicore

NVidia Multicore GPU

 

Downloads

.Net Parallel Extensions

Intel's TBB

WinModules   

 

Tools

AsyncOp Logger

Intel thread analysis

Intel VTune

 

Contact

Asaf Shelly

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-->

 

 

 

 

 

 
2 / 2
 
 
 
 
 
 
 

Multiprocessing Traps & Pitfalls

Designing parallelized systems has more to do with management than with programming. It is often very difficult for developers to move from a single task application to a multitask application. This transition requires a fundamental change in way developers think, the same way as moving from flat code C programming to OOP C++ programming.

Parallel computing is about management of shared resources.

 
 
 
 
 
 
   
 
 
  Sequential processing  
 
 

When we try to learn about Multiprocessing and Parallel Computing we find many living examples that have been there long before we ever thought about Multicore CPUs. Following are some of the common examples.

 
 
 
 
 
 
   
 
 
  Synchronization API  
 
 

In this section we go over the common API used for synchronization. Not all API are available on all operating systems and libraries. The section covers the majority of common API as a general concept with little reference to specific library implementation and parameters.

 
 
 
 
 
 
   
 
 
  Thread  
 
 

Systems today define the basic unit of execution as a Thread. In other words today we represent a Task in the system by using a thread. Based on this every process is considered to be a type of thread or containing an initial thread because a process is a Task Domain that has its private copy of computer memory, system handles, and devices. A process also starts with an initial Task. If the process is a type of thread then the application will end when this thread exits. If the process is a container of threads then the application will end after the last thread exits.

 
 
 
 
 
 
   
 
 
  Thread Cleanup  
 
 

A thread is a system object and as such it has to be destroyed. An object has to perform cleanup upon destruction.