Previous | Next --- Slide 5 of 48
Back to Lecture Thumbnails

A quick "who's responsible for it" summary:

  • Decomposition: Most of the time programmer is responsible (does not have a sophisticated compiler to achieve this yet).
  • Assignment: Many language/runtimes are able to take the responsibility. It could be done statically by programmer (Pthread workload assignment by programmer), statically by compiler (ISPC foreach) and also can be done dynamically (ISPC tasks).
  • Orchestration: Most happens at runtime, but need to be declared or defined by programmer.
  • Mapping: maybe OS (mapping pthread to CPU cores); maybe Compiler (ISPC assigns program instances to data lanes); maybe hardware (mapping CUDA thread blocks to GPU cores).

Hope it's helpful.