This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

EVMK2H: ti-openmp-dsp-runtime: Creating more than 240 tasks in an OpenMP program

Part Number: EVMK2H

Hello everyone,

I'm offloading a parallel program to the DSPs using the tasking model provided by OpenMP and I have observed slightly performance variation when creating more than 240 tasks. Apparently it seems this is maximum number of events that the event queue can keep, after that the task become included and is executed by the core in change of creating the tasks. I was just wondering if there is a way to increase this limit to a greater number. I already have some knowledge in how to rebuild the OpenMP runtime so it won't be a problem in case it is possible to make such a change.

Thanks

  • Hi Carlos,

    I've forwarded your query to the OpenMP experts. Their feedback should be posted here.

    BR
    Tsvetolin Shulev
  • Hi Carlos,

    You can increase TOMP_EVENT_NUM which defaults to 256. The runtime uses some pre-allocated events and that is why you only see 240 events. Each task is allocated an event record. When the runtime runs out of event records it falls back to included tasks. You can increase TOMP_EVENT_NUM and rebuild the runtime, but the events are configured to be allocated out of onchip shared memory (MSMC memory). If you increase the number of events too much, you will overflow the onchip shared memory. The events are allocated out the MSMC_NC_VIRT memory region, which is configured to be non-cacheable. The size of this region could be increased if necessary.

    Best Regards, Eric