Use asynchronous I/O

From Green software

(Difference between revisions)
Jump to: navigation, search
(NCQ)
Current revision (20:56, 20 September 2010) (edit) (undo)
(Sources)
 
(2 intermediate revisions not shown.)
Line 1: Line 1:
Asynchronous I/O, or non-blocking I/O, is a form of input/output processing that permits other processing to continue before the transmission has finished.
Asynchronous I/O, or non-blocking I/O, is a form of input/output processing that permits other processing to continue before the transmission has finished.
-
Synchronous I/O blocks an entire system until all I/O processing is done, which can increase the time it takes to process a job.
+
Synchronous I/O blocks an entire system until all I/O processing is done, which can increase the time it takes to process a job.
 +
Asynchronous I/O with the use of NCQ is more energy-efficient than synchronous I/O [http://software.intel.com/en-us/articles/creating-energy-efficient-software-part-1/].
== NCQ ==
== NCQ ==
Line 9: Line 10:
== Sources ==
== Sources ==
-
[1]. Steigerwald, B., Chabukswar, R., Krishnan, K., & De Vega, J. (2008). [http://software.intel.com/en-us/articles/creating-energy-efficient-software-part-1/ Creating Energy-Efficient Software] (PDF available from that website). Intel(r) Software Network.
+
This best practice is mentioned in:<br />
 +
Steigerwald, B., Chabukswar, R., Krishnan, K., & De Vega, J. (2008). [http://software.intel.com/en-us/articles/creating-energy-efficient-software-part-1/ Creating Energy-Efficient Software] (PDF available from that website). Intel(r) Software Network.

Current revision

Asynchronous I/O, or non-blocking I/O, is a form of input/output processing that permits other processing to continue before the transmission has finished. Synchronous I/O blocks an entire system until all I/O processing is done, which can increase the time it takes to process a job. Asynchronous I/O with the use of NCQ is more energy-efficient than synchronous I/O [1].

NCQ

When asynchronous I/O is used, Native Command Queuing (NCQ) can be utilized. NCQ is a technique that allows SATA hard disks to internally determine the order in which blocks are read.

Researchers of Intel tested the impact of Native Command Queuing on random reads. They observed a 15% time and energy reduction when utilizing NCQ over synchronous I/O for reading random 64KB. This experiment and others are described in [2].

Sources

This best practice is mentioned in:
Steigerwald, B., Chabukswar, R., Krishnan, K., & De Vega, J. (2008). Creating Energy-Efficient Software (PDF available from that website). Intel(r) Software Network.

Personal tools