1. A task allocation method, comprising:
determining a number of threads comprised in a to-be-processed task;
determining, in a network-on-chip formed by a multi-core processor, multiple continuous idle processor cores whose number is equal to the number of the threads, wherein each of the idle processor cores is connected to a router-on-chip;
searching for and determining, in the network-on-chip if an area formed by the determined routers-on-chip is a non-rectangular area, a rectangular area extended from the non-rectangular area; and
allocating the threads in the to-be-processed task to the idle processor cores if predicted traffic of each router-on-chip in the extended rectangular area that is connected to a non-idle processor core does not exceed a preset threshold, wherein each of the idle processor cores is allocated one thread.
2. The method according to claim 1, wherein the rectangular area extended from the non-rectangular area is a smallest rectangular area comprising the non-rectangular area in the network-on-chip.
3. The method according to claim 1, wherein after determining, in a network-on-chip formed by a multi-core processor, multiple continuous idle processor cores whose number is equal to the number of the threads, the method further comprises:
if the area formed by the determined routers-on-chip of the idle processor cores is a rectangular area, allocating the threads of the to-be-processed task to the idle processor cores respectively, wherein each of the processor cores is allocated with one thread.
4. The method according to claim 2, wherein after determining, in a network-on-chip formed by a multi-core processor, multiple continuous idle processor cores whose number is equal to the number of the threads, the method further comprises:
if the area formed by the determined routers-on-chip of the idle processor cores is a rectangular area, allocating the threads of the to-be-processed task to the idle processor cores respectively, wherein each of the processor cores is allocated with one thread.
5. The method according to claim 1, wherein:
the network-on-chip comprises multiple processor cores arranged in a row-column manner; and
determining, in a network-on-chip formed by a multi-core processor, multiple continuous idle processor cores whose number is equal to the number of the threads comprises:
determining an initial idle processor core in the network-on-chip formed by the multi-core processor, and
determining, in the network-on-chip formed by the multi-core processor and by using the initial idle processor core as a start point, the multiple continuous idle processor cores whose number equals to the number of the threads.
6. The method according to claim 5, wherein searching for and determining, if an area formed by the determined routers-on-chip of the idle processor cores is a non-rectangular area, a rectangular area extended from the non-rectangular area comprises:
successively determining, along an adjacent router-on-chip in a same row of a router-on-chip connected to the initial idle processor core, whether the multiple continuous idle processor cores whose number equals to the number of the threads exist; and
if the number of continuous processor cores, successively determined along the adjacent router-on-chip in the same row, in a first idle area does not equal to the number of the threads, successively determining the number of continuous processor cores in a second idle area along an adjacent router-on-chip in a same column of the router-on-chip connected to the initial idle processor, so that a sum of the number of the processor cores in the first idle area and the number of the processor cores in the second idle area is equal to the number of the threads.
7. The method according to claim 5, wherein searching for and determining, if an area formed by the determined routers-on-chip of the idle processor cores is a non-rectangular area, a rectangular area extended from the non-rectangular area comprises:
successively determining, along an adjacent router-on-chip in a same column of a router-on-chip connected to the initial idle processor core, whether the multiple continuous idle processor cores whose number equals to the number of the threads exist; and
if the number of continuous processor cores, successively determined along the adjacent router-on-chip in the same column, in a third idle area does not equal to the number of the threads, successively determining the number of continuous processor cores in a fourth idle area along an adjacent router-on-chip in a same row of the router-on-chip connected to the initial idle processor core, so that a sum of the number of the processor cores in the third idle area and the number of processor cores in the fourth idle area is equal to the number of the threads.
8. The method according to claim 1, wherein before allocating the threads comprised in the to-be-processed task to the idle processor cores respectively if predicted traffic of each router-on-chip that is connected to a non-idle processor core and in the rectangular area does not exceed a preset threshold, the method further comprises:
predicting, according to historical traffic information of the router-on-chip that is connected to the non-idle processor core and in the rectangular area, traffic of the router-on-chip that is connected to the non-idle processor core and in the rectangular area, to obtain the predicted traffic.
9. A chip, comprising:
multiple processor cores;
multiple routers-on-chip, wherein each of the multiple processor cores is connected to a router-on-chip; and
a main processor core configured to execute one or more fixed sequences of instructions which, when executed, cause the main processor core to:
determine a number of threads comprised in a to-be-processed task,
determine, in a network-on-chip formed by a multi-core processor, multiple continuous idle processor cores whose number is equal to the number of the threads, wherein each of the idle processor cores is connected to one router-on-chip,
when an area formed by the routers-on-chip that are determined and connected to the idle processor cores is a non-rectangular area, search for and determine, in the network-on-chip, a rectangular area extended from the non-rectangular area, and
if predicted traffic of each router-on-chip in the rectangular area that is connected to a non-idle processor core determined does not exceed a preset threshold, allocate the threads of the to-be-processed task to the idle processor cores, wherein each of the idle processor cores is allocated one thread.
10. The chip according to claim 9, wherein the one or more fixed sequences of instructions, when executed, further cause the main processor core to:
determine that the rectangular area extended from the non-rectangular area is a smallest rectangular area comprising the non-rectangular area in the network-on-chip.
11. The chip according to claim 9, wherein the one or more fixed sequences of instructions, when executed, further cause the main processor core to:
if the routers-on-chip that are determined and connected to the multiple idle processor cores form a rectangular area, allocate the threads of the to-be-processed task to the idle processor cores respectively, wherein each of the processor cores is allocated one thread.
12. The chip according to claim 10, wherein the one or more fixed sequences of instructions, when executed, further cause the main processor core to:
if the routers-on-chip that are determined and connected to the multiple idle processor cores form a rectangular area, allocate the threads of the to-be-processed task to the idle processor cores respectively, wherein each of the processor cores is allocated one thread.
13. The task allocation apparatus according to claim 9, wherein the one or more fixed sequences of instructions, when executed, further cause the main processor core to:
determine an initial idle processor core in the network-on-chip formed by the multi-core processor, wherein the network-on-chip comprises multiple processor cores arranged in a row-column manner; and
determine, in the network-on-chip formed by the multi-core processor and by using the initial idle processor core as a start point, the multiple continuous idle processor cores whose number equals to the number of the threads.
14. The task allocation apparatus according to claim 13, wherein the one or more fixed sequences of instructions, when executed, further cause the main processor core to:
successively determine, along an adjacent router-on-chip in a same row of a router-on-chip connected to the initial idle processor core, whether the multiple continuous idle processor cores whose number equals to the number of the threads exist; and
if the number of continuous processor cores, successively determined along the adjacent router-on-chip in the same row, in a first idle area does not equal to the number of the threads, successively determine the number of continuous processor cores in a second idle area along an adjacent router-on-chip in a same column of the router-on-chip connected to the initial idle processor, so that a sum of the number of the processor cores in the first idle area and the number of processor cores in the second idle area is equal to the number of the threads.
15. The task allocation apparatus according to claim 13, wherein the one or more fixed sequences of instructions, when executed, further cause the main processor core to:
successively determine, along an adjacent router-on-chip in a same column of a router-on-chip connected to the initial idle processor core, whether the multiple continuous idle processor cores whose number equals to the number of the threads exist; and
if the number of continuous processor cores, successively determined along the adjacent router-on-chip in the same column, in a third idle area does not equal to the number of the threads, successively determine the number of continuous processor cores in a fourth idle area along an adjacent router-on-chip in a same row of the router-on-chip connected to the initial idle processor core, so that a sum of the number of the processor cores in the third idle area and the number of processor cores in the fourth idle area is equal to the number of the threads.
16. The task allocation apparatus according to claim 9, wherein the one or more fixed sequences of instructions, when executed, further cause the main processor core to:
predict, according to historical traffic information of the router-on-chip that is connected to the non-idle processor core and in the rectangular area, traffic of the router-on-chip that is connected to the non-idle processor core and in the rectangular area, to obtain the predicted traffic.
17. The task allocation apparatus according to claim 10, wherein the one or more fixed sequences of instructions, when executed, further cause the main processor core to:
predict, according to historical traffic information of the router-on-chip that is connected to the non-idle processor core and in the rectangular area, traffic of the router-on-chip that is connected to the non-idle processor core and in the rectangular area, to obtain the predicted traffic.
18. The task allocation apparatus according to claim 11, wherein the one or more fixed sequences of instructions, when executed, further cause the main processor core to:
predict, according to historical traffic information of the router-on-chip that is connected to the non-idle processor core and in the rectangular area, traffic of the router-on-chip that is connected to the non-idle processor core and in the rectangular area, to obtain the predicted traffic.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
What is claimed is:
1. A dissolved oxygen releasing compound for the attenuation of biological contaminants comprising:
magnesium peroxide; and
a powdered phyllosilicate;
wherein said magnesium peroxide and said powdered phyllosilicate are blended together, and wherein said magnesium peroxide disassociates to dissolved oxygen at a slower rate than if said powdered phyllosilicate was absent from said compound.
2. The dissolved oxygen releasing compound of claim 1, wherein said compound further comprises approximately 80% magnesium peroxide by mass, and approximately 20% powdered phyllosilicate by mass.
3. The dissolved oxygen releasing compound of claim 2 wherein said powdered phyllosilicate is Bentonite.
4. A dissolved oxygen releasing compound for the attenuation of biological contaminants comprising:
magnesium peroxide; and
powdered Bentonite;
wherein said magnesium peroxide and said powdered Bentonite are blended together, and wherein said magnesium peroxide disassociates to dissolved oxygen at a slower rate than if said powdered Bentonite was absent from said compound.
5. The dissolved oxygen releasing compound of claim 4, wherein said compound further comprises approximately 80% magnesium peroxide by mass, and approximately 20% powdered Bentonite by mass.
6. A dissolved oxygen releasing compound for the attenuation of biological contaminants comprising:
magnesium peroxide;
powdered Bentonite; and vegetable oil
wherein said magnesium peroxide is coated by said vegetable oil and said powdered Bentonite is blended together with said magnesium peroxide, and wherein said magnesium peroxide disassociates to dissolved oxygen at a slower rate than if said powdered Bentonite and said vegetable oil were absent from said compound.
7. The dissolved oxygen releasing compound of claim 6, wherein said compound further comprises approximately 80% magnesium peroxide by mass, and approximately 20% powdered Bentonite by mass.
8. The dissolved oxygen releasing compound of claim 6, wherein said compound further comprises approximately 50% magnesium peroxide by mass, and approximately 50% powdered Bentonite by mass.
9. The dissolved oxygen releasing compound of claim 8, wherein said compound further comprises 17.4 pounds of said magnesium peroxide per gallon of said vegetable oil.