Use asynchronous I/O

From Green software

(Difference between revisions)
Jump to: navigation, search
Current revision (20:56, 20 September 2010) (edit) (undo)
(Sources)
 
Line 11: Line 11:
== Sources ==
== Sources ==
This best practice is mentioned in:<br />
This best practice is mentioned in:<br />
-
Kansal, A. & Zhao, F. 2008. Fine-Grained Energy Profiling for Power-Aware Application Design. SIGMETRICS Perform. Eval. Rev., ACM, 36, p. 26-31 <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.
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