a status report on research in transparent informed prefetching (tip) presented by hsu hao chen
Post on 21-Dec-2015
215 views
TRANSCRIPT
A Status Report on Research in Transparent Informed Prefetching (TIP)
Presented by Hsu Hao Chen
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 abou
t 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 unmodifiedhcsh grep foo *
csh expands *
Read argumends
fork
exec grep
exit Prefetch file
More files?
exit
No
hcsh for hint-csh
Implementation- Application modified
make xcalc
exec make
fork
Standard make code
Prefetch file
exit More files?
exit
No
Yes
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(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