System and method for isolating I/O execution via compiler and OS support
First Claim
1. A method by a multiple-core computing system for executing Input/Output (I/O) and non-I/O operations, the method comprising:
- designating at least a portion of a plurality of processing cores as an I/O core;
compiling a program source code, wherein the program source code comprises an I/O operation region of the program source code and other regions of the program source code, and wherein the compiling includes identifying the I/O operation region of the program source code, including;
inserting pragmas in the I/O operation region for the execution, wherein the pragmas mark the I/O operation region, andinserting, in the I/O operation region, parameters indicating a number of I/O operations and a number of estimated runtime cycles to a scheduler for the execution; and
executing the program source code using the plurality of processing cores, wherein the executing includes scheduling the I/O operation region only on the I/O core and not on a non-I/O core of the plurality of processing cores.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments are provided for isolating Input/Output (I/O) execution by combining compiler and Operating System (OS) techniques. The embodiments include dedicating selected cores, in multicore or many-core processors, as I/O execution cores, and applying compiler-based analysis to classify I/O regions of program source codes so that the OS can schedule such regions onto the designated I/O cores. During the compilation of a program source code, each I/O operation region of the program source code is identified. During the execution of the compiled program source code, each I/O operation region is scheduled for execution on a preselected I/O core. The other regions of the compiled program source code are scheduled for execution on other cores.
8 Citations
18 Claims
-
1. A method by a multiple-core computing system for executing Input/Output (I/O) and non-I/O operations, the method comprising:
-
designating at least a portion of a plurality of processing cores as an I/O core; compiling a program source code, wherein the program source code comprises an I/O operation region of the program source code and other regions of the program source code, and wherein the compiling includes identifying the I/O operation region of the program source code, including; inserting pragmas in the I/O operation region for the execution, wherein the pragmas mark the I/O operation region, and inserting, in the I/O operation region, parameters indicating a number of I/O operations and a number of estimated runtime cycles to a scheduler for the execution; and executing the program source code using the plurality of processing cores, wherein the executing includes scheduling the I/O operation region only on the I/O core and not on a non-I/O core of the plurality of processing cores. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method by a multiple-core computing system for executing Input/Output (I/O) and non-I/O operations, the method comprising:
-
during compilation of a program source code, recognizing an I/O operation region of the program source code; partitioning the I/O operation region from other regions of the program source code, including; inserting pragmas in the I/O operation region for the execution, wherein the pragmas mark the I/O operation region, and inserting, in the I/O operation region, parameters indicating a number of I/O operations and a number of estimated runtime cycles to a scheduler for the execution; during execution of the compiled program source code, scheduling the I/O operation region for execution only on a preselected I/O core and not on a non-I/O core, wherein a plurality of processing cores comprises the preselected I/O core and the non-I/O core; and scheduling the other regions of the compiled program source code for execution on the non-I/O core. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A multiple-core computer for executing Input/Output (I/O) and non-I/O operations, the multiple-core computer comprising:
-
a plurality of processing cores; and a non-transitory computer readable storage medium storing programming for execution by at least one processing core of the plurality of processing cores, the programming including instructions to; designate at least a portion of the plurality of processing cores as an I/O core; compile a program source code, wherein the program source code comprises an I/O operation region of the program source code and other regions of the program source code, and wherein the instructions to compile the program source code include instructions to identify an I/O operation region of the program source code, wherein the instructions to identify the I/O operation region of the program source code include instructions to; insert, at a start and end of the I/O operation region, pragmas annotating the start and end of the I/O operation region; and insert, in the I/O operation region, parameters indicating a number of I/O operations and a number of estimated runtime cycles to a scheduler; and execute the program source code using the plurality of processing cores, wherein the instructions to execute the program source code include instructions to schedule the I/O operation region only on the I/O core and not on a non-I/O core of the plurality of processing cores. - View Dependent Claims (17, 18)
-
Specification