SYSTEM AND METHOD FOR THREAD HANDLING IN MULTITHREADED PARALLEL COMPUTING OF NESTED THREADS
First Claim
1. An Explicit Multi-Threading (XMT) system for processing multiple spawned threads associated with an XMT program, the XMT system comprising:
- at least one processor;
a plurality of thread control units (TCUs) each having an associated ID (TCU-ID) and including at least one series of programmable instructions executable by the at least one processor for executing a plurality of child threads, wherein each TCU executes a child thread which is allocated to the TCU, and upon completion of execution of the child thread the TCU is available to execute another child thread, and at least one TCU executes a parent child thread of the plurality of child threads that includes a nested spawn-type command for spawning additional child threads of the plurality of child threads, wherein the parent child thread is related in a parent-child relationship to the child threads that are spawned in conjunction with the nested spawn-type command; and
a function module for assigning a thread ID (TID) to each child thread which is unique with respect to the other TIDs, and allocating the plurality of child threads to respective TCUs of the plurality of TCUs.
2 Assignments
0 Petitions
Accused Products
Abstract
An Explicit Multi-Threading (XMT) system and method is provided for processing multiple spawned threads associated with SPAWN-type commands of an XMT program. The method includes executing a plurality of child threads by a plurality of TCUs including a first TCU executing a child thread which is allocated to it; completing execution of the child thread by the first TCU; announcing that the first TCU is available to execute another child thread; executing by a second TCU a parent child thread that includes a nested spawn-type command for spawning additional child threads of the plurality of child threads, wherein the parent child thread is related in a parent-child relationship to the child threads that are spawned in conjunction with the nested spawn-type command; assigning a thread ID (TID) to each child thread, wherein the TID is unique with respect to the other TIDs; and allocating a new child thread to the first TCU.
80 Citations
32 Claims
-
1. An Explicit Multi-Threading (XMT) system for processing multiple spawned threads associated with an XMT program, the XMT system comprising:
-
at least one processor; a plurality of thread control units (TCUs) each having an associated ID (TCU-ID) and including at least one series of programmable instructions executable by the at least one processor for executing a plurality of child threads, wherein each TCU executes a child thread which is allocated to the TCU, and upon completion of execution of the child thread the TCU is available to execute another child thread, and at least one TCU executes a parent child thread of the plurality of child threads that includes a nested spawn-type command for spawning additional child threads of the plurality of child threads, wherein the parent child thread is related in a parent-child relationship to the child threads that are spawned in conjunction with the nested spawn-type command; and a function module for assigning a thread ID (TID) to each child thread which is unique with respect to the other TIDs, and allocating the plurality of child threads to respective TCUs of the plurality of TCUs. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method for processing multiple spawned threads associated with SPAWN-type commands of an Explicit Multi-Threading (XMT) program, the method comprising the steps of:
-
executing a plurality of child threads by a plurality of TCUs including a first TCU of the plurality of TCUs executing a child thread which is allocated to it; completing execution of the child thread by the first TCU; announcing that the first TCU is available to execute another child thread; executing by a second TCU a parent child thread of the plurality of child threads that includes a nested spawn-type command for spawning additional child threads of the plurality of child threads, wherein the parent child thread is related in a parent-child relationship to the child threads that are spawned in conjunction with the nested spawn-type command; assigning a thread ID (TID) to each child thread of the plurality of child threads which is unique with respect to the other TIDs; and allocating a new child thread to the first TCU. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28)
-
-
29. A method for processing multiple spawned threads associated with SPAWN-type commands of an Explicit Multi-Threading (XMT) program, the method comprising the steps of:
-
executing a plurality of child threads by a plurality of TCUs including a first TCU of the plurality of TCUs executing a child thread which is allocated to it; completing execution of the child thread by the first TCU; announcing that the first TCU is available to execute another child thread; executing by a second TCU a parent child thread of the plurality of child threads that includes a nested spawn-type command for spawning additional child threads of the plurality of child threads, wherein the parent child thread is related in a parent-child relationship to the child threads that are spawned in conjunction with the nested spawn-type command; assigning a thread ID (TID) to each child thread of the plurality of child threads which is unique with respect to the other TIDs; allocating a new child thread to the first TCU; writing by the second TCU the initialization data into the designated location; reading by the first TCU initialization data for execution of the new child thread from a location designated for storing the initialization data of the new child thread; and waiting by the first TCU for the initialization data to be successfully written into the designated location before reading the initialization data if the initialization data is not yet written into the designated location; wherein the designated location is referenced using the TID of the new child thread. - View Dependent Claims (30, 31, 32)
-
Specification