Profiler and compiler assisted adaptive I/O prefetching for shared storage caches

dc.citation.epage121en_US
dc.citation.spage112en_US
dc.contributor.authorSon, S. W.en_US
dc.contributor.authorKandemir, M.en_US
dc.contributor.authorKolcu, I.en_US
dc.contributor.authorMuralidhara, S. P.en_US
dc.contributor.authorÖztürk, Öztürken_US
dc.contributor.authorKarakoy, M.en_US
dc.coverage.spatialToronto, Ontario, Canada
dc.date.accessioned2016-02-08T11:36:21Z
dc.date.available2016-02-08T11:36:21Z
dc.date.issued2008-10en_US
dc.departmentDepartment of Computer Engineeringen_US
dc.descriptionDate of Conference: 25-29 October, 2008
dc.descriptionConference name: PACT '08 Proceedings of the 17th international conference on Parallel architectures and compilation techniques
dc.description.abstractI/O prefetching has been employed in the past as one of the mech- anisms to hide large disk latencies. However, I/O prefetching in parallel applications is problematic when multiple CPUs share the same set of disks due to the possibility that prefetches from different CPUs can interact on shared memory caches in the I/O nodes in complex and unpredictable ways. In this paper, we (i) quantify the impact of compiler-directed I/O prefetching - developed originally in the context of sequential execution - on shared caches at I/O nodes. The experimental data collected shows that while I/O prefetching brings benefits, its effectiveness reduces significantly as the number of CPUs is increased; (ii) identify inter-CPU misses due to harmful prefetches as one of the main sources for this re- duction in performance with the increased number of CPUs; and (iii) propose and experimentally evaluate a profiler and compiler assisted adaptive I/O prefetching scheme targeting shared storage caches. The proposed scheme obtains inter-thread data sharing information using profiling and, based on the captured data sharing patterns, divides the threads into clusters and assigns a separate (customized) I/O prefetcher thread for each cluster. In our approach, the compiler generates the I/O prefetching threads automatically. We implemented this new I/O prefetching scheme using a compiler and the PVFS file system running on Linux, and the empirical data collected clearly underline the importance of adapting I/O prefetching based on program phases. Specifically, our pro- posed scheme improves performance, on average, by 19.9%, 11.9% and http://dx.doi.org/10.3% over the cases without I/O prefetching, with independent I/O prefetching (each CPU is performing compiler-directed I/O prefetching independently), and with one CPU prefetching (one CPU is reserved for prefetching on behalf of others), respectively, when 8 CPUs are used. Copyright 2008 ACM.en_US
dc.description.provenanceMade available in DSpace on 2016-02-08T11:36:21Z (GMT). No. of bitstreams: 1 bilkent-research-paper.pdf: 70227 bytes, checksum: 26e812c6f5156f83f0e77b261a471b5a (MD5) Previous issue date: 2008en
dc.identifier.doi10.1145/1454115.1454133en_US
dc.identifier.urihttp://hdl.handle.net/11693/26805en_US
dc.language.isoEnglishen_US
dc.publisherACMen_US
dc.relation.isversionofhttp://dx.doi.org/10.1145/1454115.1454133en_US
dc.source.titleParallel Architectures and Compilation Techniques - Conference Proceedings, PACTen_US
dc.subjectAdaptiveen_US
dc.subjectCompileren_US
dc.subjectPrefetchingen_US
dc.subjectProfileren_US
dc.subjectShared Storage Cacheen_US
dc.subjectCache memoryen_US
dc.subjectDecodingen_US
dc.subjectDisks (structural components)en_US
dc.subjectParallel architecturesen_US
dc.subjectProgram compilersen_US
dc.titleProfiler and compiler assisted adaptive I/O prefetching for shared storage cachesen_US
dc.typeConference Paperen_US

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Profiler and compiler assisted adaptive I O prefetching for shared storage caches.pdf
Size:
1.01 MB
Format:
Adobe Portable Document Format
Description:
Full printable version