Skip to main content

class split_receive_instruction

Declaration

class split_receive_instruction : public implement_acceptor,
                                  public receive_instruction_impl { /* full declaration omitted */ };

Description

Informs the receive arbiter about the bounding box allocation for a series of incoming transfers. The boxes of remote send_instructions do not necessarily coincide with await_receive_instructions - sends can fulfil subsets or supersets of receives, so the executor needs to be able to handle all send-patterns that cover the region of the original await_push command. To make this happen, the instruction_graph_generator allocates the bounding box of each 2/4/8-connected component of the await_push region and passes it on to the receive_arbiter through a split_receive_instruction.

Inherits from: implement_acceptor, receive_instruction_impl

Member Variables

Member Function Overview

  • split_receive_instruction(instruction_id iid, int priority, const transfer_id & trid, region<3> request, allocation_id dest_allocation, const box<3> & allocated_box, size_t elem_size) → explicit

Inherited from receive_instruction_impl:

Member Functions

explicit split_receive_instruction(
    instruction_id iid,
    int priority,
    const transfer_id& trid,
    region<3> request,
    allocation_id dest_allocation,
    const box<3>& allocated_box,
    size_t elem_size)

Parameters

instruction_id iid
int priority
const transfer_id& trid
region<3> request
allocation_id dest_allocation
const box<3>& allocated_box
size_t elem_size