Previously, the scheduler didn't start tracking a parray until the parray was directly used by a task. This meant that if a parray was initialized from a cupy array on a device, memory would be used that the scheduler was unaware of. I added a callback which starts parray tracking in the parray init function.
Previously, the mapper's assignment policy mistakenly only looked at the memory parameter to see if devices had enough resources to run a task. Now it looks at the memory parameter plus the amount of data needing to be moved to the device for gather necessary parrays.
Previously, the scheduler didn't start tracking a parray until the parray was directly used by a task. This meant that if a parray was initialized from a cupy array on a device, memory would be used that the scheduler was unaware of. I added a callback which starts parray tracking in the parray init function.
Previously, the mapper's assignment policy mistakenly only looked at the
memory
parameter to see if devices had enough resources to run a task. Now it looks at thememory
parameter plus the amount of data needing to be moved to the device for gather necessary parrays.