US 12,190,150 B2
Dependency-based queuing of work requests in dataflow applications
Po-Yu Wu, Palo Alto, CA (US); and Subhra Mazumdar, Palo Alto, CA (US)
Assigned to SambaNova Systems, Inc., Palo Alto, CA (US)
Filed by SambaNova Systems, Inc., Palo Alto, CA (US)
Filed on Jun. 22, 2022, as Appl. No. 17/847,050.
Claims priority of provisional application 63/293,478, filed on Dec. 23, 2021.
Prior Publication US 2023/0205499 A1, Jun. 29, 2023
Int. Cl. G06F 9/48 (2006.01); G06F 8/41 (2018.01); G06F 9/54 (2006.01); G06F 15/78 (2006.01); G06F 15/82 (2006.01)
CPC G06F 9/4881 (2013.01) [G06F 8/433 (2013.01); G06F 8/45 (2013.01); G06F 9/546 (2013.01); G06F 15/7867 (2013.01); G06F 15/825 (2013.01)] 16 Claims
OG exemplary drawing
 
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 execute 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;
generating, by the work requester, a plurality of work requests, the plurality of work requests comprising functions of an application to execute by the DA server;
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 and a queue allocation request to allocate at least one of a dependent DA queue and a conditioned DA queue among a plurality of DA queues;
and a work request among the plurality of work requests and receiving results of the DA server operating on the plurality of DA queues and the work request among the plurality of work requests;
receiving, by the work requester from the DA server responsive to the communicating of the queue allocation request to the DA server, an identity of the at least one of the dependent DA queue and the conditioned DA queue;
enqueuing, by the work requester, on the dependent DA queue, 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;
enqueuing, by the work requester, to the conditioned DA queue, 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 dependency associated with the DA server processing the second work request;
initiating processing of the plurality of DA queues by the DA server;
selecting for processing, by the DA server, a selected work request of the plurality of work requests from the plurality of DA queues;
processing, by the DA server, the selected work request; and
receiving, at the work requester from the DA server, results of the processing of the selected work request.