I'm working on a job scheduler system for big arrays and I'm investigating how to get multiple jobs, using the same NativeArray and taking care of different tasks, to run in parallel. Lets assume that: -We have a NativeArray of length 1,000,000, which is actually a 1000x1000 array; -We have 4 jobs that we want to use on this array; -Jobs will not overlap their indices durning execution, that is they'll never read or write to an index of the array that is worked on by a different job. Spoiler: Legend First method is a straightforward one, just linearly schedule jobs one after another and make them dependent on previously scheduled job. Here execution takes some time, as each job is waiting for previous one to finish: Spoiler: Method 1 - Dependencies Second method makes use of a IJobParallelFor and an additional NativeArray, which holds info about which operation should be used for each index. This complicates job structs, as they have to be merged into one, big struct, if they are expected to be run together often: Spoiler: Method 2 - Dependencies Hypothetical method that I'm looking to achieve would bypass "You are trying to schedule a new job, which writes to the same NativeArray" error, as job scheduler would take care to never schedule jobs that overlap each other: Spoiler: Hypothetical method I've looked for a way to approach this, but I haven't found yet if it's possible, or if I have to stick with IJobParallelFor, IJobParallelForBatch or create a custom job type. Would love to hear your thoughts about it.