Previous | Next --- Slide 17 of 48
Back to Lecture Thumbnails
TA-lixf

Anyone wants to help explain the different stages of distribution of work? What is Orchestration? Please explain each decision is made by what entity.

andymochi

Here's a shot - orchestration is synchronization between threads which may or may not need to happen before certain parallel work is executed. This is probably easier to understand if we talk about a message-passing model rather than ISPC. Barrier synchronization is the best example I can think of, where multiple threads need to meet at a certain point in program before they can continue executing.

I do think this is a bad representation of how parallel work is organized because there are many instances in which synchronization also needs to happen AFTER the work is done? Perhaps there should be an arrow pointing back after MAPPING to ORCHESTRATION because these steps are interleaved in the graphics pipeline for example.

@kayvonf mentioned in lecture that orchestration is non-existent in ISPC. Am I right in saying that it does actually exist, but it is implicit instead of explicit in the ISPC programming model? All the places in which vector instructions are utilised require some implicit synchronization, do they not? Granted, this 'orchestration' is done by the ISPC compiler in organization of the work, but is it still 'orchestration'?

P.S. Bonkers, I think I just answered my own question. ISPC optimisations probably does NOT qualify as orchestration because the pieces of parallel work do not need to communicate with each other.