"Model provides no primitives for fine-grained mutual exclusion/synchronization" - Does this mean that ISPC does not provide any programming abstraction for synchronization between different tasks?
kayvonf
@pdp. The statement on the slide is referring to synchronization across program instances, not across ISPC tasks. (There are no ISPC tasks in this program.) And, yes that is correct. The only primitives for cross-instance communication are the built-in cross-program instance operators.
Further, there is no synchronization across ISPC tasks.
MichaelJordan
Why would there be no way to synchronize across ISPC tasks?
ayy_lmao
Just a guess, but perhaps because of the lightweight nature of ISPC tasks vs something like a pthread, it doesn't have the necessary infrastructure to perform synchronizations without becoming more expensive to launch and execute.
kayvonf
Hint: Take a look at this slide and apply the discussion there to the context of ISPC tasks.
"Model provides no primitives for fine-grained mutual exclusion/synchronization" - Does this mean that ISPC does not provide any programming abstraction for synchronization between different tasks?
@pdp. The statement on the slide is referring to synchronization across program instances, not across ISPC tasks. (There are no ISPC tasks in this program.) And, yes that is correct. The only primitives for cross-instance communication are the built-in cross-program instance operators.
https://ispc.github.io/ispc.html#cross-program-instance-operations
Further, there is no synchronization across ISPC tasks.
Why would there be no way to synchronize across ISPC tasks?
Just a guess, but perhaps because of the lightweight nature of ISPC tasks vs something like a pthread, it doesn't have the necessary infrastructure to perform synchronizations without becoming more expensive to launch and execute.
Hint: Take a look at this slide and apply the discussion there to the context of ISPC tasks.