P
US12093739B2ActiveUtilityPatentIndex 50

Method and apparatus for managing threads in manycore

Assignee: METISX CO LTDPriority: Feb 21, 2023Filed: Jan 19, 2024Granted: Sep 17, 2024
Est. expiryFeb 21, 2043(~16.6 yrs left)· nominal 20-yr term from priority
Inventors:KIM JU HYUNYEON JAE WANLEE KWANG SUN
G06F 2209/505G06F 2209/5018G06F 9/5072G06F 9/5038Y02D10/00
50
PatentIndex Score
0
Cited by
14
References
7
Claims

Abstract

A method for managing threads in a manycore system is launched by one or more processors, and includes receiving, from a host processor, a job descriptor associated with one or more tasks according to an offloading request of the host processor, generating threads for each of the one or more tasks based on the job descriptor, and allocating the generated threads to one or more cores of a cluster that includes a plurality of cores.

Claims

exact text as granted — not AI-modified
The invention claimed is: 
     
       1. A method for managing threads in a manycore system, the method being executed by one or more processors and comprising:
 receiving, from a host processor, a job descriptor associated with one or more tasks according to an offloading request of the host processor; 
 generating threads for each of the one or more tasks based on the job descriptor; 
 allocating the generated threads to one or more cores of a cluster that includes a plurality of cores; 
 pushing, into a thread operation queue, operation information associated with an operation of the threads allocated to the one or more cores; 
 after the pushing the operation information, receiving, by the one or more cores, the operation information from the thread operation queue; and 
 in response to the one or more cores receiving the operation information, removing the operation information from the thread operation queue, 
 wherein the operation information includes thread launch information associated with a launch of the generated threads, and the one or more cores launch the generated threads based on the thread launch information, 
 the operation information further includes thread termination information associated with a termination of the threads launched based on the thread launch information, 
 the receiving the operation information from the thread operation queue includes, in response to completion of the tasks of the launched threads, receiving, by the one or more cores, thread termination information from the thread operation queue, 
 if the one or more cores terminate executing the threads based on the thread termination information, the job descriptor is pushed into a termination queue, and 
 each of the generated threads is launched asynchronously, and each of the launched threads can be terminated asynchronously. 
 
     
     
       2. The method according to  claim 1 , wherein the allocating the generated threads to the one or more cores includes allocating the generated threads to the one or more cores based on thread state information associated with threads previously allocated to the one or more cores, and
 the thread state information is updated based on a state register associated with the threads previously allocated to the one or more cores. 
 
     
     
       3. The method according to  claim 1 , wherein the job descriptor pushed into the termination queue is transmitted to the host processor or to a cluster different from the cluster including the one or more cores. 
     
     
       4. The method according to  claim 1 , wherein the operation information further includes thread synchronization information associated with a synchronization between the thread launched based on the thread launch information and a thread different from the launched thread,
 the receiving the operation information from the thread operation queue further includes receiving, by the one or more cores, the thread synchronization information from the thread operation queue, in response to a request for synchronization between the launched thread and the thread different from the launched thread, and 
 the launched thread is switched to a sleep state based on the thread synchronization information. 
 
     
     
       5. The method according to  claim 4 , further comprising receiving, by the one or more cores, thread synchronization completion information, in response to completion of the synchronization between the launched thread and the thread different from the launched thread,
 wherein the thread switched to the sleep state is released from the sleep state based on the thread synchronization completion information. 
 
     
     
       6. A non-transitory computer-readable recording medium storing instructions that, when executed by one or more processors, cause performance of the method according to  claim 1 . 
     
     
       7. A manycore system comprising:
 a plurality of cores; and 
 a plurality of clusters each including a hardware processor for managing threads launched by one or more of the plurality of cores, 
 wherein the hardware processor of a respective cluster of the plurality of clusters is connected with the plurality of cores included in the respective cluster of the plurality of clusters, and is configured to: 
 receive, from a host processor, a job descriptor associated with one or more tasks according to an offloading request of the host processor; 
 generate threads for each of the one or more tasks based on the job descriptor; 
 allocate the generated threads to one or more cores of one of the plurality of clusters; 
 push, into a thread operation queue, operation information associated with an operation of the threads allocated to the one or more cores; 
 after the pushing the operation information, receiving, by the one or more cores, the operation information from the thread operation queue; and 
 in response to the one or more cores receiving the operation information, remove the operation information from the thread operation queue, 
 wherein the operation information includes thread launch information associated with a launch of the generated threads, and the one or more cores launch the generated threads based on the thread launch information, 
 the operation information further includes thread termination information associated with a termination of the threads launched based on the thread launch information, 
 the receiving the operation information from the thread operation queue includes, in response to completion of the tasks of the launched threads, receiving, by the one or more cores, thread termination information from the thread operation queue, 
 if the one or more cores terminate executing the threads based on the thread termination information, the job descriptor is pushed into a termination queue, and 
 each of the generated threads is launched asynchronously, and each of the launched threads can be terminated asynchronously.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.