Multicore Programming

Multicore Programming is not nearly as complex as people would make out today, provided that you have a good structure to consider the different aspects of it.  At RoweBots we would propose the following structure.

 

  • Multicore Architectures
    • Heterogeneous and homogeneous
    • Shared memory
    • Thin wire
    • Hybrid
    • Effects of cashe

 

  • Multicore Programming For Operating Systems
    • Processes on cores
    • Threads on cores
    • Scheduling threads and processes to cores

 

  • Multicore Programming  Language and Concurrency
    • Parallelism at the language level
    • Library based parallelism
    • Language and efficiency

 

Multicore programming is very complex because it has many perspectives.  In reality, we have dealt with all of these issues for many years - the only difference today is that we have different physical implementations and more cycles to run more advanced tools.  Clearly there is great parallels between APL and modern graphics engine based "array" processing approaches.  Multiprocessors of the late 60's look similar in some ways to some multicore machines today. 

 

To understand multicore programming, understand each of the issues above and integrate these ideas.