Replies: 6 comments
-
This is possible with the current system (I use it a lot). For example if you have a 2D array of size // warning untested code
for( uint32_t i = range_.start; i < range_.end; ++i )
{
y = i / X_SIZE;
x = i - y*X_SIZE;
} If you want your 2D array to be processed in blocks of NxM then you would divide the
Could you give an example of what you want to achieve? This can usually be done by some combination of setting |
Beta Was this translation helpful? Give feedback.
-
Thanks! I have two applications:
|
Beta Was this translation helpful? Give feedback.
-
I also do this regularly. Using Morton order as an example I use Decode the Morton code into X,Y. Hilbert curves can also be converted from the code to X,Y. So use the provided range as the code and the appropriate conversion to get X,Y. Hopefully this makes sense but if not I can provide example code.
If your workload has unevenly distributed computational costs there are a couple of approaches you could use with the current scheduler:
Although I have considered user provided partitioning schemes this isn't simple with a lightweight scheduler like enkiTS. |
Beta Was this translation helpful? Give feedback.
-
Thanks for your suggestions. I like enkiTS exactly because it's lightweight. What I had in mind was if there was a way for user to create |
Beta Was this translation helpful? Give feedback.
-
The best way to do this is to create the bunch of tasks in a TaskSet, or create them in an array and launch a TaskSet to launch them. You can also create them as a dependency of an empty task, launch that which completes and the rest will then be launched, but this is equivalent to launching them from a task. |
Beta Was this translation helpful? Give feedback.
-
Perfect! With this and the 2D remapping trick you mentioned before, |
Beta Was this translation helpful? Give feedback.
-
enkiTS automatically partitions workload into ranges.
What is a recommended way to manually partition workload and submit these tasks to the scheduler?
So, I want to create a list of tasks with manually specified (start, end) range.
There are two applications:
Any suggestions are greatly appreciated.
Beta Was this translation helpful? Give feedback.
All reactions