Understanding persisted task names

I’m working on an optimization for some processing code and have started playing with persisting different parts. I noticed that the dask task name of the persisted array seems to be the same as the original dask array. Is this expected? Wouldn’t this cause issues if both the unpersisted and persisted array were computed at the same time? I mean, the scheduler would think both are the same task, right?

Can someone shine some light on this?

:man_facepalming: Forgot to paste the example:

In [1]: import dask.array as da

In [2]: a = da.zeros((5, 5)) ** 2 + 1

In [3]: b = a.persist()

In [4]: a.name
Out[4]: 'add-6c2072910faa9fa64b5e20ea328a0fca'

In [5]: b.name
Out[5]: 'add-6c2072910faa9fa64b5e20ea328a0fca'