# US 2025/0147802 A1 · Selective dependency-based queuing of work requests in dataflow

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2025/0147802 A1
- Document ID: US20250147802A1
- Status: Published application
- Kind: A1
- Application number: 19/012,083
- Filed: 2025-01-07
- Published: 2025-05-08
- Earliest claimed: 2021-12-23
- Assignees: SambaNova Systems, Inc.
- Applicants: SambaNova Systems, Inc.
- Inventors: Po-Yu WU; Subhra MAZUMDAR
- Web page: https://patentgrep.com/patent/US20250147802A1

## CPC

- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/5038: {considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups)}
- G06F 8/433: {Dependency analysis; Data or control flow analysis}
- G06F 8/45: {Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions}
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 15/7867: {with reconfigurable architecture}
- G06F 15/825: {Dataflow computers}
- G06F 2209/506: Constraint
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques and systems disclosed herein may relate to a server processing work requests of a work requester. For example, the work requester may generate a plurality of work requests comprising functions of an application to be executed by a dependency-aware (DA) server, determine processing dependencies associated with the work requests, communicate, to the DA server, the processing dependencies, and enqueue the work requests on a dependent queue and a conditioned dependent queue based on processing dependencies associated with the DA server. The DA server may then select one of the work requests from the dependent queue or the conditioned dependent queue for processing and processing the selected work request.

## Claims

### Claim 1

A computer-implemented method comprising:
generating, by a work requester implemented using a computer, a plurality of work requests, the plurality of work requests comprising functions of an application to be executed by a dependency-aware (DA) server included in a reconfigurable dataflow system running on one or more configurable units of a coarse-grained reconfigurable processor;
determining, by the work requester, processing dependencies associated with the plurality of work requests;
communicating, by the work requester, to the DA server, the processing dependencies;
enqueueing, by the work requester, on a dependent queue among a plurality of DA queues, based on a first processing dependency among the processing dependencies, a first work request, the first work request among the plurality of work requests, the first processing dependency associated with the DA server processing the first work request;
enqueueing, by the work requester, to a conditioned queue among the plurality of DA queues, based on a second processing dependency among the processing dependencies, a second work request, the second work request among the plurality of work requests, the second processing condition associated with the DA server processing the second work request;
selecting for processing, by the DA server, one of the first work request of the plurality of work requests or the second work request of the plurality of work requests from the plurality of DA queues; and
processing, by the DA server, one of the first work request or the second work request.

### Claim 2 (depends on 1)

The method of claim 1, further comprising the work requester determining the processing dependencies based on dependency parameters of a DA framework of a reconfigurable dataflow system; and,
the work requester communicating the dependencies to the DA server using an interface of the DA framework.

### Claim 3 (depends on 1)

The method of claim 1, wherein the work requester is included in a host computer communicatively coupled to the reconfigurable dataflow system.

### Claim 4 (depends on 1)

The method of claim 1, the method further comprising:
receiving, by the DA server from the work requester, the processing dependencies; and
registering, by the DA server, responsive to the DA server receiving the processing dependencies, a processing dependency, among the processing dependences, in association with at least one of the dependent and the conditioned DA queues.

### Claim 5 (depends on 1)

The method of claim 1, wherein at least one of the dependent queue or the conditioned queue are included, at least in part, in a memory of the work requester.

### Claim 6 (depends on 1)

The method of claim 1, wherein at least one of the dependent queue or the conditioned queue are included, at least in part, in a memory of the DA server.

### Claim 7 (depends on 1)

The method of claim 1, the method further comprising the work requester allocating at least one of the dependent queue or the conditioned queue.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first processing dependency comprises a conditioned action associated with the DA server processing the second work request.

### Claim 9

A computing system comprising:
a dependency-aware (DA) server included in a reconfigurable dataflow system running on one or more configurable units of a coarse-grained reconfigurable processor;
a plurality of DA queues in the DA server;
a processor; and,
a work requester executable on the processor, wherein the work requester is configured to:
generate a plurality of work requests, the plurality of work requests comprising functions of an application to be executed by the DA server;
determine processing dependencies associated with the plurality of work requests;
communicate, to the DA server, the processing dependencies;
enqueue, on a dependent queue among the plurality of DA queues, based on a first processing dependency among the processing dependencies, a first work request, the first work request among the plurality of work requests, the first processing dependency associated with the DA server processing the first work request; and,
enqueue, to a conditioned queue among the plurality of DA queues, based on a second processing dependency among the processing dependencies, a second work request, the second work request among the plurality of work requests, the second processing condition associated with the DA server processing the second work request; and
the DA server is configured to:
select for processing, from the plurality of DA queues, one of the first work request of the plurality of work requests or the second work request of the plurality of work requests; and
process the one of the first work request or the second work request.

### Claim 10 (depends on 9)

The computing system of claim 9, the work requester further configured to:
determine the processing dependencies based on dependency parameters of a DA framework of a reconfigurable dataflow system; and
communicate the dependencies to the DA server using an interface of the DA framework.

### Claim 11 (depends on 9)

The computing system of claim 9, wherein the work requester is included in a host computing system communicatively coupled to the DA server.

### Claim 12 (depends on 9)

The computing system of claim 9, wherein at least one of the dependent queue or the conditioned queue are included, at least in part, in a memory of the work requester.

### Claim 13 (depends on 9)

The computing system of claim 9, wherein the DA server comprises a memory; and,
wherein at least one of the dependent queue or the conditioned queue are included, at least in part, in the memory of the DA server.

### Claim 14 (depends on 9)

The computing system of claim 9, wherein the system further comprises a runtime processor, the runtime processor configured to manage executing the application by the DA server; and,
wherein the runtime processor is further configured to allocate at least one of the dependent queue or the conditioned queue.

### Claim 15 (depends on 9)

The computing system of claim 9, wherein the work requester is further configured to:
communicate a DA queue allocation request, to the DA server, to allocate at least one of the dependent queue or the conditioned queue; and,
responsive to the communicating the DA queue allocation request to the DA server, receive, from the DA server, an identity of the at least one of the dependent queue or the conditioned queue.

### Claim 16 (depends on 9)

The computing system of claim 9, wherein the processing dependencies comprise a dependency parameter selected from a group consisting of: a work request identifier, a DA queue identifier, a processing condition, a conditioned action, and a concurrency primitive associated with a conditioned action.

### Claim 17

A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, wherein the program instructions are executable by at least one processor of a computing system to cause the at least one processor to:
generate a plurality of work requests to be processed by a dependency-aware (DA) server, the plurality of work requests comprising functions of an application to be executed by a dependency-aware (DA) server included in the at least one processor;
determine processing dependencies associated with the plurality of work requests;
communicate, to the DA server, the processing dependencies;
enqueue, on a dependent queue among a plurality of DA queues, based on a first processing dependency among the processing dependencies, a first work request, the first work request among the plurality of work requests, the first processing dependency associated with the DA server processing the first work request;
enqueue, to a conditioned queue among the plurality of DA queues, based on a second processing dependency among the processing dependencies, a second work request, the second work request among the plurality of work requests, the second processing condition associated with the DA server processing the second work request;
select for processing, from the plurality of DA queues, one of the first work request of the plurality of work requests or the second work request of the plurality of work requests; and
process the one of the first work request or the second work request.

### Claim 18 (depends on 17)

The computer program product of claim 17, the program instructions executable by the at least one processor further comprising instructions executable by the at least one processor to:
communicate, to the DA server, a DA queue allocation request to allocate at least one of the dependent queue or the conditioned queue; and,
responsive to the communicating the DA queue allocation request to the DA server, receive, from the DA server, an identity of the at least one of the dependent queue or the conditioned queue.

### Claim 19 (depends on 17)

The computer program product of claim 17, the program instructions executable by the at least one processor further comprising instructions executable by the at least one processor to:
communicate, to a runtime processor included in the at least one processor, a queue allocation request to allocate at least one of the dependent queue or the conditioned queue, the runtime processor associated with executing the application by the DA server; and,
responsive to the communicating the queue allocation request to runtime processor, receive, from the runtime processor, an identity of the at least one of the dependent queue or the conditioned queue.

### Claim 20 (depends on 17)

The computer program product of claim 17, the program instructions executable by the at least one processor further comprising instructions executable by the at least one processor to:
determine the processing dependencies based on dependency parameters of a DA framework of a reconfigurable dataflow system; and,
communicate the dependencies to the DA server using an interface of the DA framework.
