Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Terminology section #47

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

hcedwar
Copy link
Collaborator

@hcedwar hcedwar commented Apr 24, 2018

No description provided.

@@ -170,6 +170,32 @@ This feature could be easily scaled to heterogeneous and distributed systems, as

In this paper we propose an interface for querying and representing the execution resources within a system, queurying the relative affinity metric between those execution resources, and then using those execution resources to allocate memory and execute work with affinity to the underlying hardware. The interface described in this paper builds on the existing initerface for executors and execution contexts defined in the executors proposal [[22]][p0443r4].

### Terminology

An **execution agent** executes work, typically implemented by a *callable*,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should expand on this to also include a definition for thread of execution and how they relate since we use both terms in the paper. We could say something to the effect of a thread of execution is a single flow of execution within the program and an execution agent represents the steps taken within a thread of execution during the lifetime of a (task | piece of work) executing a callable.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we not refer this to the existing definitions on the Executors proposal?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0443r7.html

"An execution context is a program object that represents a specific collection of execution resources and the execution agents that exist within those resources. Execution agents are units of execution, and a 1-to-1 mapping exists between an execution agent and an invocation of a callable function object submitted via the executor."

P0443 is in flux, given P1055 and ongoing movement towards a compromise (see e.g., https://gist.github.com/ericniebler/69a3a632e1d13f7d8f16e0fbd598e42f ). Thus, it might be best simply to define these terms here, and later revise if needed to point to definitions in whatever compromise or new Executors paper shows up.

### Terminology

An **execution agent** executes work, typically implemented by a *callable*,
on an **execution resource** of a given **execution architecture**.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should probably expand on what an execution architecture is, maybe with some examples, I assume this is the device which encapsulates a topology of resources such as a CPU, GPU, etc.

@AerialMantis
Copy link
Contributor

In #70 we discussed also introducing a term of art for the execution resource.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants