A Status Report on Research in Transparent Informed Prefetching (TIP) Presented by Hsu Hao Chen
Outline Introduction I/O performance is lagging No current solution fully addresses read latency TIP to reduce latency Transparent Informed Prefetching (TIP) Implementation Evaluation Conclusions
Introduction (1/3) But, cache effectiveness is declining LFS LFS: log-structured file systems RAIDs cannot reduce seek and rotational latencies
Introduction (2/3) Disappointing performance over time growing file sizes they are accessed too infrequently
Introduction (3/3) Prefetching based on application level information is a feasible and effective strategy for reducing file access read latency TIP reduces application execution time in two ways: By exposing concurrency in the I/O workload Overlap I/O with computation or user think time Optimize I/O accesses over the larger number of outstanding requests With knowledge of future I/O requests, TIP and make informed cache management decisions that lower cache miss rates
Transparent Informed Prefetching(1/4) TIP Encapsulate programmer knowledge about future I/O requests in a hint Transfer hint to file system File system uses hints to transparently prefetch data and manage resources
Transparent Informed Prefetching(2/4) Obtaining Hints Early knowledge of serial file access Access patterns part of code algorithm large matrix supercomputing: read by row, read by column Hints generated by: programmer, compiler, profiler
Transparent Informed Prefetching(3/4) Hints generated by compiler (too complex) SpecHint tool is implemented in 16,000 lines of c C code SpecHint object files, 4000 lines of assembly code Data from Automatic I/O Hint Gereration Through Speculative Execution
Transparent Informed Prefetching(4/4) Users not qualified to give advice Advice not portable, disclosure is Disclosure allows more flexibility Disclosure supports global optimizations
Implementation Implementation of two ways: Application unmodified grep command Application modified make command access pattern profiler
Implementation- Application unmodified hcsh grep foo* csh expands* Read argumends fork exec grepexit Prefetch file More files? exit No hcsh for hint-csh
Implementation- Application modified
Evaluation(1/5) Application example grep foo *: 58 files, 1MB make xcalc: compile & link X window calculator The local disk tests were conducted on a Sun Sparcstation 2 running Mach/BSD Unix 4.3. The remote tests were run on two Decstation 5000/200 also running Mach.
Evaluation(2/5) grep unmodified hcsh for hint-csh make modified
Evaluation(3/5) Test Results
Evaluation(4/5) Lessons from tests Independent prefetch process overhead too high Example: context switching, processes schedule, system call cost Single prefetch process => no deep prefetch queues Disk write scheduling often very inefficient Sol: buffered writes
Evaluation(5/5) Lessons from tests Coda ioctl allowed too much prefetching thread starvation need low-priority prefetching premature cache flushing (prefetch data problem) need to track consumption
Conclusions TIP offers a powerful mechanism for overcoming the I/O crisis Hints that disclose, not advise, provide the best information and are consistent Applicable to local disk and network file servers Highlights the importance of combining prefetching with buffer management