Open manjugv opened 2 years ago
@manjugv Queries on data queues or misc questions on the endgame/support for user-defined op-types (which are essential for the targeted use-cases) are slated for another comment. Let me try to understanding the basic communication queues.
Please clarify the following:
The differentiation between communication queues and contexts is very minimal. It almost seems both the SHMEM objects are performing the similar operation.
With respect to communication queues - the push operation semantics are not clear.
What is the need for the query_size operation. Why does the user need to know about the pending operations in the queue?
Is the communication queue an object to setup the SHMEM users for future data aggregation operations with data queues ? If so, it makes sense. But I don't see a real benefit in introducing a new SHMEM object duplicating all existing operations to suite the new object.
Problem :
Communication and data aggregation is known to provide better performance characteristics for the PGAS/OpenSHMEM applications [1][2]. However, to leverage aggregation, the OpenSHMEM programming model lacks abstractions that can be used by applications to express aggregation intentions, or that could be used by developers to optimize the OpenSHMEM implementations for aggregation.
[1] Jason Devinney's Conveyors keynote [2] Brad Chamberlain's Chapel keynote
Proposal :
Introduce OpenSHMEM queues as an abstraction to aggregate data and communication.
Details in the document pdf
(Caution: The document requires work to make it into a specification-complaint document.)
Impact on Users:
This provides an ability to aggregate communication and data.
Impact on implementation:
Implementations will have to implement the new interfaces described in the pdf.