Skip to main content

struct transfer_id

Declaration

struct transfer_id { /* full declaration omitted */ };

Description

Uniquely identifies one version of a buffer's (distributed) data at task granularity. The structure is used to tie together the sending and receiving ends of peer-to-peer data transfers.

Member Variables

task_id consumer_tid = -1
The first task (by order of task id) to require this version of the buffer.
buffer_id bid = -1
The buffer's id.
reduction_id rid = no_reduction_id
Since a task cannot require data both as part of a reduction and with its final value at the same time, this field is not necessary to identify the transfer version, but is used for sanity checks. It might become additionally valuable once we allow the user to specify the buffer subrange each reduction is targeting.

Member Function Overview

Friend Function Overview

  • operator!=(const transfer_id & lhs, const transfer_id & rhs) → friend bool
  • operator==(const transfer_id & lhs, const transfer_id & rhs) → friend bool

Member Functions

transfer_id()


transfer_id(task_id consumer_tid,
            buffer_id bid,
            reduction_id rid = no_reduction_id)

Parameters

task_id consumer_tid
buffer_id bid
reduction_id rid = no_reduction_id

Friend Functions

friend bool operator!=(const transfer_id& lhs,
                       const transfer_id& rhs)

Parameters

const transfer_id& lhs
const transfer_id& rhs

friend bool operator==(const transfer_id& lhs,
                       const transfer_id& rhs)

Parameters

const transfer_id& lhs
const transfer_id& rhs