A graphics processing unit comprising: a scheduler unit; and a plurality of compute units (255A-255N); wherein the graphics processing unit, GPU, is configured to: receive, from a central processing unit, a first task and a second task to be scheduled for execution on the GPU; retrieve an original identifier, ID, of the first task that identifies at least a portion of a source hierarchy associated with the first task, and an original identifier of the second task that identifies at least a portion of a source hierarchy associated with the second task; create a first ID for the first task and a second ID for the second task, where the first ID and second ID uniquely identify each respective task without identifying the at least a portion of the source hierarchy associated with each respective task; execute the first task and the second task concurrently on the plurality of compute units (255A-255N) using the first ID and the second ID; responsive to detecting one or more instructions of the first task which correspond to a first operation and determining the first operation is an operation which requires a source of the first task to be identified: receive the first ID for the first task; map the first ID to the original ID of the first task which identifies the at least a portion of the source hierarchy of the first task; and complete the first operation by performing an access to a first data structure using the original ID of the first task to identify the first task. a scheduler unit; and a plurality of compute units (255A-255N); wherein the graphics processing unit, GPU, is configured to: receive, from a central processing unit, a first task and a second task to be scheduled for execution on the GPU; retrieve an original identifier, ID, of the first task that identifies at least a portion of a source hierarchy associated with the first task, and an original identifier of the second task that identifies at least a portion of a source hierarchy associated with the second task; create a first ID for the first task and a second ID for the second task, where the first ID and second ID uniquely identify each respective task without identifying the at least a portion of the source hierarchy associated with each respective task; execute the first task and the second task concurrently on the plurality of compute units (255A-255N) using the first ID and the second ID; responsive to detecting one or more instructions of the first task which correspond to a first operation and determining the first operation is an operation which requires a source of the first task to be identified: receive the first ID for the first task; map the first ID to the original ID of the first task which identifies the at least a portion of the source hierarchy of the first task; and complete the first operation by performing an access to a first data structure using the original ID of the first task to identify the first task. receive, from a central processing unit, a first task and a second task to be scheduled for execution on the GPU; retrieve an original identifier, ID, of the first task that identifies at least a portion of a source hierarchy associated with the first task, and an original identifier of the second task that identifies at least a portion of a source hierarchy associated with the second task; create a first ID for the first task and a second ID for the second task, where the first ID and second ID uniquely identify each respective task without identifying the at least a portion of the source hierarchy associated with each respective task; execute the first task and the second task concurrently on the plurality of compute units (255A-255N) using the first ID and the second ID; responsive to detecting one or more instructions of the first task which correspond to a first operation and determining the first operation is an operation which requires a source of the first task to be identified: receive the first ID for the first task; map the first ID to the original ID of the first task which identifies the at least a portion of the source hierarchy of the first task; and complete the first operation by performing an access to a first data structure using the original ID of the first task to identify the first task. receive the first ID for the first task; map the first ID to the original ID of the first task which identifies the at least a portion of the source hierarchy of the first task; and complete the first operation by performing an access to a first data structure using the original ID of the first task to identify the first task.