Programming Multi-Core and Many-Core Systems

problem: parallel execution incurs overhead (creation of worker threads, scheduling, waiting at sync barrier). so overhead must be outweighed by sufficient workload, i.e. loop body and trip count.

conditional parallelisation uses if clause: #pragma omp parallel for if (len >= 1000). so you parallelise only at some threshold.

loop scheduling determines which iterations execute on which thread, aim is to distribute workload equally

chunk size selection:

guided scheduling:

runtime scheduling:

how do you choose a scheduling technique?