Previous | Next --- Slide 35 of 69
Back to Lecture Thumbnails

The next slide shows how ISPC bypasses the OS support and talks directly to a single processor with AVX vector instructions. However, I'd like to understand at a high level exactly what the OS support for threads involves, to see how much infrastructure is being bypassed by ISPC. What does the interface between a pthread library and a multi-core CPU look like? Is there some particular piece of code that the kernel uses to talk to the cores about what threads will run on each? I guess what I really want is an overview of how threads are implemented from the perspective of someone who took 15-410 or has similar experience.


@Junebot. Don't think about it as "bypassing the OS". ISPC simply implements the gang abstraction using vector instructions, so no OS support is needed.

Those of you that have recently taken OS should jump in and make a few comments about how the OS is involved in managing threads.


When we use ISPC with tasks to make use of multiple cores,it creates multiple tasks which can be run on different processors. In this case does OS plays any role in scheduling the tasks or the ISPC compiler only does that ?


The OS is entirely responsible for scheduling working threads onto HW execution contexts. However dynamic assignment much like on slide 29 of the work assignment lecture is used to assign tasks to the worker threads.