enthought / enthought/distarray

O-14: Execution contexts for user control and performance feedback (optional)

Open
#194 0 comments 0 reactions 0 assignees View on GitHub
SBIR-year-2
Dominant language
Python
Stars
5
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Objective: To provide features that allow an ODIN user to control how certain operations are carried out, and to provide performance feedback.

Relevance: By providing features that allow users to control how operations are performed, ODIN users can adapt the framework to their specific usecase, and choose where they fall on the performance-usability spectrum.

Description: This task will implement, via Python decorators and context managers, features that allow the end user to control how distributed array computations are performed. These modifications will allow capabilities such as:

• Debugging and performance feedback – this will turn on full feedback for easy debugging, allowing a user to easily determine if an exception was raised on a worker node and get the context and contents of that exception. The performance feedback will optionally provide information on what and how much data was communicated between nodes, and how much communication overhead was involved in a computation, for example.

• Control over the computation strategy for distributed array expressions: whether source computes, destination computes, or whether the operation should minimize communication.

• Control over whether communication should be allowed implicitly. For performance reasons, a user may desire the ability to disallow any implicit communication for an array computation, and this context manager would provide this performance-oriented feature, requiring the end user to explicitly allocate all arrays and ensure that they are distributed in an identical fashion before performing computations with them.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.