A method to instrument software code may comprise marking one or more blocks of code in an application program to provide a marked code. The marking may comprise inserting a marker at each of the one or more blocks according to a marking application programming interface (API). The one or more of th
A method to instrument software code may comprise marking one or more blocks of code in an application program to provide a marked code. The marking may comprise inserting a marker at each of the one or more blocks according to a marking application programming interface (API). The one or more of the blocks of code marked according to the marking API may be transformed so that one or more functions are performed for the marked blocks. The one or more functions may not be part of the application program. The method may include executing the application program and performing the one or more functions for the marked blocks.
대표청구항▼
What is claimed is: 1. A computer-implemented method, comprising: marking, for transformation to concurrent code, one or more blocks of code in an application program to provide a marked code, wherein said marking comprises inserting a marker at each of the one or more blocks according to a marking
What is claimed is: 1. A computer-implemented method, comprising: marking, for transformation to concurrent code, one or more blocks of code in an application program to provide a marked code, wherein said marking comprises inserting a marker at each of the one or more blocks according to a marking application programming interface (API) for marking blocks of code to be transformed into concurrent code; transforming one or more of the blocks of code marked according to the marking API so that one or more functions are performed for the marked blocks, wherein said transforming comprises generating concurrent code from the marked code, and wherein the one or more functions are not part of the application program; and executing the application program including the concurrent code, and performing the one or more functions for the marked blocks; wherein said marking API specifies one or more arguments for each marker to provide information for the one or more functions performed for the marked blocks. 2. The method as recited in claim 1, wherein said concurrent code comprises one or more tasks configured for concurrent execution in place of the one or more marked blocks of code, and wherein the one or more functions performed for the marked code comprise scheduling one or more of the concurrently executable tasks for multi-threaded execution. 3. The method as recited in claim 2, wherein said marking comprises marking a sub-method portion of a program method of the application program as one of the blocks marked for concurrent execution, wherein said generating comprises transforming the marked sub-method block into a task configured for concurrent execution. 4. The method as recited in claim 1, wherein the one or more arguments comprise priority information for scheduling the transformed marked blocks of code for multi-threaded execution. 5. The method as recited in claim 1, wherein the one or more arguments comprise dependency information for scheduling the transformed marked blocks of code for multi-threaded execution. 6. The method as recited in claim 1, wherein the one or more arguments comprise a unique name for each marked block of code. 7. The method as recited in claim 1, wherein the one or more arguments comprise a block duration weight used in estimating an execution time for a corresponding marked block to determine a priority for scheduling a corresponding transformed marked block of code for multi-threaded execution. 8. The method as recited in claim 1, wherein the one or more arguments comprise a block duration weight used in estimating an execution time of a corresponding marked block to determine if the corresponding marked block of code is to be transformed into a task for multi-threaded execution. 9. The method as recited in claim 1, wherein said marking comprises: receiving the application code; analyzing the application code to identify blocks of code appropriate for the one or more functions; and wherein said inserting a marker comprises inserting a marker according to the marking API into the application code to suggest the identified blocks for the one or more functions. 10. The method as recited in claim 1, wherein said marker comprises a method call. 11. The method as recited in claim 10, wherein said method call is compatible with a programming language of the application. 12. The method as recited in claim 11, wherein the programming language of the application is a platform-independent object-oriented programming language, and wherein the marker is a platform-independent object-oriented programming language method call. 13. The method as recited in claim 11, wherein the marked code is configured to be executed, without performing said transforming, to implement the application program without the one or more functions being performed for the marked blocks. 14. The method as recited in claim 1, wherein said marking one or more blocks of code in an application program comprises marking byte-code for the application. 15. The method as recited in claim 1, wherein said marking one or more blocks of code in an application program comprises marking source code for the application. 16. The method as recited in claim 1, wherein said marking comprises marking each block so that no block crosses the boundary of another unless the respective blocks are fully nested. 17. The method as recited in claim 1, wherein the one or more functions performed for the marked code comprise tracking each transformed block of code, wherein said tracking comprises logging information to trace or profile execution of a transformed block of code. 18. A system, comprising: one or more processors; a memory coupled to the one or more processors, wherein the memory is configured to store program instructions executable by the one or more processors to implement a framework configured to: receive marked code comprising software code of an application program having one or more blocks of code, wherein each of the one or more blocks of code is identified by a marker inserted in the software code according to a marking application programming interface (API) for marking blocks of code to be transformed into concurrent code; transform the one or more of the blocks of code marked according to the marking API so that one or more functions are performed for the marked blocks, wherein the one or more functions are not part of the application program; generate concurrent code from the marked code; and execute the application program including the concurrent code, and perform the one or more functions for the marked blocks; wherein said marking API specifies one or more arguments for each marker to provide information for the one or more functions performed for the marked blocks. 19. The system as recited in claim 18, wherein the concurrent code comprises one or more tasks configured for concurrent execution in place of the one or more marked blocks of code, and wherein the one or more functions performed for the marked code comprise scheduling one or more of the concurrently executable tasks for multi-threaded execution. 20. The system as recited in claim 19, wherein the marker marks a sub-method portion of a program method of the application program as one of the blocks marked for concurrent execution, wherein the framework is further configured to transform the marked sub-method block into a task configured for concurrent execution. 21. The system as recited in claim 18, wherein the one or more arguments comprise priority information for scheduling the transformed marked blocks of code for multi-threaded execution. 22. The system as recited in claim 18, wherein the one or more arguments comprise dependency information for scheduling the transformed marked blocks of code for multi-threaded execution. 23. The system as recited in claim 18, wherein the one or more arguments comprise a unique name for each marked block of code. 24. The system as recited in claim 18, wherein the one or more arguments comprise a block duration weight used to estimate an execution time for the corresponding marked block to determine a priority for scheduling the corresponding transformed marked block of code for multi-threaded execution. 25. The system as recited in claim 18, wherein the one or more arguments comprise a block duration weight used to estimate an execution time for the corresponding marked block to determine if the corresponding marked block of code is to be transformed into a task for multi-threaded execution. 26. The system as recited in claim 18, wherein the framework further comprises an automated code marker tool configured to: receive the software code; analyze the software code to identify blocks of code appropriate for the one or more functions; and insert a marker according to the marking API into the software code to suggest the identified blocks for the one or more functions. 27. The system as recited in claim 18, wherein the marker comprises a method call. 28. The system as recited in claim 27, wherein the method call is compatible with a programming language of the application. 29. The system as recited in claim 28, wherein the programming language of the application is a platform-independent object-oriented programming language and wherein the marker is a platform-independent object-oriented programming language method call. 30. The system as recited in claim 28, wherein the marked code is configured to be executed, without being transformed, to implement the application program without the one or more functions being performed for the marked blocks. 31. The system as recited in claim 18, wherein the marker for each of the one or more blocks of code mark byte-code for the software code. 32. The system as recited in claim 18, wherein the marker for each of the one or more blocks of code in an application program marks source code for the application. 33. The system as recited in claim 18, wherein the marker marks each block so that no block crosses the boundary of another unless the respective blocks are fully nested. 34. The system as recited in claim 18, wherein the one or more functions performed for the marked code comprise tracking each transformed block of code, wherein said tracking comprises logging information to trace or profile execution of a transformed block of code. 35. A computer readable storage medium storing program instructions, wherein the program instructions are computer-executable to implement a framework configured to: receive marked code comprising software code of an application program having one or more blocks of code, wherein each of the one or more blocks of code is identified by a marker inserted in the software code according to a marking application programming interface (API) for marking blocks of code to be transformed into concurrent code; transform the one or more of the blocks of code marked according to the marking API so that one or more functions are performed for the marked blocks, wherein the one or more functions are not part of the application program; generate concurrent code from the marked code; and execute the application program including the concurrent code, and perform the one or more functions for the marked blocks; wherein the marking API specifies one or more arguments for each marker to provide information for the one or more functions performed for the marked blocks. 36. The computer readable storage medium as recited in claim 35, wherein the concurrent code comprises one or more tasks configured for concurrent execution in place of the one or more marked blocks of code, and wherein the one or more functions performed for the marked code comprise scheduling one or more of the concurrently executable tasks for multi-threaded execution. 37. The computer readable storage medium as recited in claim 36, wherein the marker marks a sub-method portion of a program method of the application program as one of the blocks marked for concurrent execution, wherein the framework is further configured to transform the marked sub-method block into a task configured for concurrent execution. 38. The computer readable storage medium as recited in claim 35, wherein the one or more arguments comprise priority information for scheduling the transformed marked blocks of code for multi-threaded execution. 39. The computer readable storage medium as recited in claim 35, wherein the one or more arguments comprise dependency information for scheduling the transformed marked blocks of code for multi-threaded execution. 40. The computer readable storage medium as recited in claim 35, wherein the one or more arguments comprise a unique name for each marked block of code. 41. The computer readable storage medium as recited in claim 35, wherein the one or more arguments comprise a block duration weight used to estimate an execution time for the corresponding marked block to determine a priority for scheduling the corresponding transformed marked block of code for multi-threaded execution. 42. The computer readable storage medium as recited in claim 35, wherein the one or more arguments comprise a block duration weight used to estimate an execution time for the corresponding marked block to determine if the corresponding marked block of code is to be transformed into a task for multi-threaded execution. 43. The computer readable storage medium as recited in claim 35, wherein the framework further comprises an automated code marker tool configured to: receive the software code; analyze the software code to identify blocks of code appropriate for the one or more functions; and insert a marker according to the marking API into the software code to suggest the identified blocks for the one or more functions. 44. The computer readable storage medium as recited in claim 35, wherein the marker comprises a method call. 45. The computer readable storage medium as recited in claim 44, wherein the method call is compatible with a programming language of the application. 46. The computer readable storage medium as recited in claim 45, wherein the programming language of the application is a platform-independent object-oriented programming language, and wherein the marker is a platform-independent object-oriented programming language method call. 47. The computer readable storage medium as recited in claim 45, wherein the marked code is configured to be executed, without being transformed, to implement the application program without the one or more functions being performed for the marked blocks. 48. The computer readable storage medium as recited in claim 35, wherein the marker for each of the one or more blocks of code mark byte-code for the software code. 49. The computer readable storage medium as recited in claim 35, wherein the marker for each of the one or more blocks of code in an application program marks source code for the application. 50. The computer readable storage medium as recited in claim 35, wherein the marker marks each block so that no block crosses the boundary of another unless the respective blocks are fully nested. 51. The computer readable storage medium as recited in claim 35, wherein the one or more functions performed for the marked code comprise tracking each transformed block of code, wherein said tracking comprises logging information to trace or profile execution of a transformed block of code.
Richard A. Lethin ; Joseph A. Bank, III ; Charles D. Garrett ; Mikayo Wada JP; Mitsuo Sakurai JP, Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method.
Spix George A. ; Wengelski Diane M. ; Hawkinson Stuart W. ; Johnson Mark D. ; Burke Jeremiah D. ; Thompson Keith J. ; Gaertner Gregory G. ; Brussino Giacomo G. ; Hessel Richard E. ; Barkai David M. ;, Method and apparatus for user side scheduling in a multiprocessor operating system program that implements distributive scheduling of processes.
Beadle Bruce Anthony ; Brown Michael Wayne ; Paolini Michael Anthony ; Rothert Douglas Scott, Method and apparatus to selectively control processing of a method in a java virtual machine.
Cooke, Laurence H.; Phillips, Christopher E.; Wong, Dale, Method for compiling high level programming languages into embedded microprocessor with multiple reconfigurable logic.
Stubbs David D. (Portland OR) Barnett Mark P. (Portland OR) Greenseth William A. (Portland OR), Method of generating instruction sequences for controlling data flow processes.
Vanfladern, Kevin; Rodrigues, James P.; Annangi, Suneetha, Performance markers to measure benchmark timing of a plurality of standard features in an application program.
Spix George A. (Eau Claire WI) Wengelski Diane M. (Eau Claire WI) Hawkinson Stuart W. (Eau Claire WI) Johnson Mark D. (Eau Claire WI) Burke Jeremiah D. (Eau Claire WI) Thompson Keith J. (Eau Claire W, System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel executi.
Wygodny Shlomo,ILX ; Barboy Dmitry,ILX ; Prouss Georgi,UAX ; Vorobey Anatoly,ILX, System and method for monitoring and analyzing the execution of computer programs.
Sabot Gary W. (Cambridge MA) Lively David F. (Georgetown MA) Vasilevsky Alexander D. (Watertown MA), System and method for optimizing and generating computer-based code in a parallel processing environment.
Kuzara Eric J. (Colorado Springs CO) Blasciak Andrew J. (Colorado Springs CO) Parets Greg S. (Loveland CO), System for analyzing and debugging embedded software through dynamic and interactive use of code markers.
Reeve Christopher L. (18 Salisbury Rd. Brookline MA 02146) Shavit Tani (One Seaborn Pl. Lexington MA 02173) Rothnie ; Jr. James B. (47 Monmouth St. Brookline MA 02146) Peters Timothy G. (11 Wilbur St, System for parallel processing that compiles a filed sequence of instructions within an iteration space.
Chaiken, Ronnie I.; Chan, Hon Keat W.; Edwards, Andrew J.; Eigsti, Gregory A.; Gillies, David M.; Kuramoto, Bruce M.; Lefor, John A.; Pierce, Ken B.; Srivastava, Amitabh; Vo, Hoi H.; Yuval, Gideon A., Translation and transformation of heterogeneous programs.
Katzenberger, G. Shon; Parsons, Jared Porter; Bromfield, Alexander Daniel; Duffy, John J.; Cwalina, Krzysztof J., Object graph partial immutability and isolation enforcement.
Duffy, John J.; Parsons, Jared Porter; Sinz, Michael; Culver, Aleksandra Nadia; Cwalina, Krzysztof J., Resource access safety through immutable object types.
Duffy, John J.; Parsons, Jared Porter; Sinz, Michael; Bromfield, Alexander Daniel; Cwalina, Krzysztof J., System and method to ensure resource access safety with immutable object types.
Sager, David J.; Sasanka, Ruchira; Gabor, Ron; Raikin, Shlomo; Nuzman, Joseph; Peled, Leeor; Domer, Jason A.; Kim, Ho-Seop; Wu, Youfeng; Yamada, Koichi; Ngai, Tin-Fook; Chen, Howard H.; Bobba, Jayaram; Cook, Jeffery J.; Shaikh, Omar M.; Srinivas, Suresh, Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads.
Bobba, Jayaram; Sasanka, Ruchira; Cook, Jeffrey J.; Das, Abhinav; Krishnaswamy, Arvind; Sager, David J.; Agron, Jason M., Using control flow data structures to direct and track instruction execution.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.