Project

General

Profile

Feature #1834

Functionality to Broadcast large buffers using the nocopy API

Added by Nitin Bhat 4 months ago. Updated 3 months ago.

Status:
In Progress
Priority:
High
Assignee:
Category:
-
Target version:
-
Start date:
03/19/2018
Due date:
% Done:

0%

Tags:

Related issues

Related to Charm++ - Feature #1742: Send large readonly variables using the Nocopy API to reduce memory footprint and improve startup time New 11/10/2017

History

#1 Updated by Nitin Bhat 4 months ago

  • Related to Feature #1742: Send large readonly variables using the Nocopy API to reduce memory footprint and improve startup time added

#2 Updated by Nitin Bhat 4 months ago

  • Assignee set to Nitin Bhat

#3 Updated by Nitin Bhat 3 months ago

Implementational Scheme for Nocopy API (1 source - n destinations)

1. When `CkNcpySource` is passed over a proxy that is not an element proxy, but a collection proxy, we determine the recipient PEs (similar to the way we do right now), and construct a spanning tree. Then, to the first immediate children, we send the original `CkNcpySource` object and these immediate children, perform `bcast_rget`.

2. A `bcast_rget` method is implemented as a function of two operations
- perform the rget from the received `CkNcpySource`
- on completion of `rget`, transform the `CkNcpyDestination` into `CkNcpySource` and forward it to my children

3. The source callback is invoked when all its children (only immediate descendants) have received the data and it is safe for the source to modify/free the pointers
On other nodes, the callback is invoked when the node itself has received the data and all its children (immediate descendants) have received the data.

Also available in: Atom PDF