LINK-TIME RESOURCE ALLOCATION FOR A MULTI-THREADED PROCESSOR ARCHITECTURE
First Claim
1. A method comprising:
- independently compiling a plurality of modules of source code to generate a plurality of respective object modules comprising a plurality of respective parallel threads explicitly designated by a user to be executed in parallel on a target platform;
in each of the object modules, inserting at least one symbol indicative of a usage of a resource of the target platform associated with the respective thread;
executing a linker to perform a linking process for linking the object modules, wherein the linking process comprises assessing the symbols in conjunction with one another, and based on the assessment generating an indication relating to a usage of the resource required for execution of said threads in parallel.
0 Assignments
0 Petitions
Accused Products
Abstract
A method comprising: independently compiling a plurality of modules of source code to generate a plurality of respective object modules comprising a plurality of respective parallel threads explicitly designated by a user to be executed in parallel on a target platform; in each of the object modules, inserting at least one symbol indicative of a usage of a resource of the target platform associated with the respective thread; executing a linker to perform a linking process for linking the object modules, wherein the linking process comprises assessing the symbols in conjunction with one another, and based on the assessment generating an indication relating to a usage of the resource required for execution of the threads in parallel.
33 Citations
50 Claims
-
1. A method comprising:
-
independently compiling a plurality of modules of source code to generate a plurality of respective object modules comprising a plurality of respective parallel threads explicitly designated by a user to be executed in parallel on a target platform; in each of the object modules, inserting at least one symbol indicative of a usage of a resource of the target platform associated with the respective thread; executing a linker to perform a linking process for linking the object modules, wherein the linking process comprises assessing the symbols in conjunction with one another, and based on the assessment generating an indication relating to a usage of the resource required for execution of said threads in parallel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A tool-chain comprising:
-
first code for individually compiling and assembling a plurality of modules of source code, wherein the first code comprises code which when executed on a computer will generate a plurality of respective object modules comprising a plurality of respective threads, and insert in each of the object modules at least one symbol indicative of a usage of a resource of the target platform associated with the respective thread, the threads being explicitly designated by a user to be executed in parallel on a target platform; second code for linking the object modules, the second code comprising code which when executed on a computer will assess the symbols in conjunction with one another, and based on the assessment generate an indication relating to a usage of the resource required by execution of said threads in parallel. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A compiler and assembler product for individually compiling and assembling a plurality of modules of source code, wherein the product comprises code which when executed on a computer performs the steps of:
-
generating a plurality of respective object modules comprising a plurality of respective threads explicitly designated by a user to be executed in parallel on a target platform; and in the compilation of each object modules, inserting at least one symbol for use by a linker indicative of a usage of a resource of the target platform associated with the respective thread.
-
-
50. A linker for linking a plurality of object modules comprising a plurality of respective threads explicitly designated by a user to be executed in parallel, each object module comprising at least one symbol indicative of a usage of a resource of the target platform associated with the respective thread, wherein the linker comprises code which when executed on a computer performs the steps of:
-
assessing the symbols in conjunction with one another, and based on the assessment generating an indication relating to a usage of the resource required by execution of said threads in parallel; and linking the object modules to generate a computer program in which said threads are to be executed in parallel.
-
Specification