<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Peiran Qin | UCSC OSPO</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/author/peiran-qin/</link><atom:link href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/peiran-qin/index.xml" rel="self" type="application/rss+xml"/><description>Peiran Qin</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><image><url>https://deploy-preview-1007--ucsc-ospo.netlify.app/author/peiran-qin/avatar_hucec26c62a7d03b1432430360498eba83_191076_270x270_fill_lanczos_center_3.png</url><title>Peiran Qin</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/author/peiran-qin/</link></image><item><title>Final Blog: FetchPipe: Data Science Pipeline for ML-based Prefetching</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/uchicago/fetchpipe/20240918-peiranqin/</link><pubDate>Sat, 27 Jul 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/uchicago/fetchpipe/20240918-peiranqin/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>Hello, I’m &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/peiran-qin/">Peiran Qin&lt;/a>, a CS student at the University of Chicago. This summer I worked on the project &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uchicago/fetchpipe/">FetchPipe: Data Science Pipeline for ML-based Prefetching&lt;/a> under the mentorship of Prof. &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/haryadi-s.-gunawi/">Haryadi S. Gunawi&lt;/a>. The FetchPipe project focuses on building a unified Python simulator and evaluating the existing cache-eviction policy and ML-based prefetcher under this simulator. Through this projects, we make the following contributions and get several insights that can share with the community:&lt;/p>
&lt;ol>
&lt;li>We built up a simulator to evaluate various prefetchers under a unified framework, under the production level traces from Alibaba, Microsoft Research, and Tencent.&lt;/li>
&lt;li>Through the evaluation, we discover several downsides that existing heuristic-based prefetchers encounter.&lt;/li>
&lt;li>We draw several insights that can guide the future prefetchers&amp;rsquo; design.&lt;/li>
&lt;/ol>
&lt;h2 id="methodology">Methodology&lt;/h2>
&lt;p>In the first half of the SoR project, I mainly focus on the &lt;strong>simulator building of I/O prefetcher&lt;/strong>. The simulator should mimic the real OS-level prefetching as much as possible. First, we develop a mechanism that mimics the users sending I/O requests to the underlying systems. Then, we simulate the process of page division, and memory management inside the systems. Finally, we designed a sleep-based mechanism to mimic the I/O latency of backend storage. The outcome system can eventually simulate the data path of I/O request and prefetching of real systems, and collect the crucial metrics such as hit rate, total prefetched data, bandwidth usage, prefetch accuracy, total cache eviction, etc.&lt;/p>
&lt;p>In the second half of the SoR project, I concentrate on the &lt;strong>evaluation of existing prefetchers&lt;/strong>. First, we surveyed the existing state-of-the-art prefetchers and divided them into two categories: (1) Heuristic-based prefetchers and (2) ML-based prefetchers. Next, for each category, we picked several representative prefetchers and implemented them within our simulator. Then, we evaluated those prefetchers using the production-level over 600 traces from Alibaba, Tencent, and Microsoft Research. Finally, we analyzed the performance of those prefetchers and discovered some interesting insights that might guide the future prefeters&amp;rsquo;s design.&lt;/p>
&lt;p>Finally, based on the achievements of the SoR project, I will continue involving this interesting project with Prof. &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/haryadi-s.-gunawi/">Haryadi S. Gunawi&lt;/a>. We are leveraging the current insights we get to build an I/O prefetcher that mitigates the downsides of existing prefetchers.&lt;/p>
&lt;h2 id="insights">Insights&lt;/h2>
&lt;p>Based on our experiments on the existing prefetchers, we would like the share the following insights:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Heuristic-based prefetchers, including Linux Readahead and Stride prefetcher, rely on strict pre-fined rules and detect straightforward access patterns. However, those prefetchers are too conservative to recognize the increasingly complex access patterns. Especially, in real-world applications, sequential accesses are interweaved with random accesses, leading to a next-level complexity that makes it difficult for Linux Readahead and Stride prefetchers to recognize.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Offline learning-based prefetchers learn the access patterns by training machine learning models on pre-collected historical access patterns. Blessed by the representational power of machine learning, these prefetchers excel at recognizing complex access patterns. However, their effectiveness is constrained by their dependence on the patterns encountered during offline training, making them less adaptable to previously unseen patterns in online scenarios. Moreover, due to not relying on the pre-defined rule of prefetching, Offline learning-based prefetchers are more prone to prefetch useless data, which causes cache pollution and extra pressure on backend storage.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>We argue that a good prefetcher under nowadays complex and changing workload should have three properties: (1) Complexity-Recognition: which means the prefetcher should be able to recognize the complex access pattern of a complex workload. (2) Reliability: means the prefetcher should reduce its possibility to prefetch using less data and cause cache pollution. (3) Adaptability: means the prefetcher should adapt itself to the changing workload.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="future-works">Future Works&lt;/h2>
&lt;p>Based on the above insights, we are now designing our own prefetchers that can mitigate the downsides of existing prefetchers. We will make our code public after we finalize our design.&lt;/p>
&lt;h2 id="conclusion">Conclusion&lt;/h2>
&lt;p>Through the SoR project, I delved into the research area of I/O prefetching by reproducing the related works, characterizing their performance, and designing our own prefetcher. We contribute to the community with a comprehensive simulator, evaluation results of related prefetchers, and insights that can guide the future prefetchers&amp;rsquo; design. In the future, I will continue working on the research area of prefetcher and keep making contributions.&lt;/p></description></item><item><title>Mid Term Blog: FetchPipe: Data Science Pipeline for ML-based Prefetching</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/uchicago/fetchpipe/20240727-peiranqin/</link><pubDate>Sat, 27 Jul 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/uchicago/fetchpipe/20240727-peiranqin/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>Hello, I’m &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/peiran-qin/">Peiran Qin&lt;/a>, a CS student at the University of Chicago, currently working on the project &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uchicago/fetchpipe/">FetchPipe: Data Science Pipeline for ML-based Prefetching&lt;/a> under the mentorship of Prof. &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/haryadi-s.-gunawi/">Haryadi S. Gunawi&lt;/a>. The FetchPipe project focuses on building a unified python simulator and evaluating the existing chache-eviction and ML-Based prefetcher under this simulator.&lt;/p>
&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>Existing prefetching algorithms can be categorized into (a) heuristic-based methods such as the Linux lookahead prefetcher and (b) machine learning-based methods like Long Short Term Memory (LSTM) models. However, there is a research gap in comprehensively comparing all existing ML solutions, such as Leap and LSTM Prefetcher, under a consistent evaluation setup. To ensure the fairness of evaluations, it is essential to integrate all baselines and our prefetcher into a homogeneous evaluation environment. Additionally, there is a need to evaluate cache eviction algorithms under prefetching scenarios.&lt;/p>
&lt;p>Therefore, in this project, we aim to build a fair simulator, deploy state-of-the-art prefetchers and cache eviction algorithms onto this platform, and then evaluate them using comprehensive metrics. The state-of-the-art prefetchers we consider include Pythia (MICRO'21), SGDP (arXiv), and the Markov-Chain prefetcher. For cache eviction algorithms, we consider S3FIFO (SOSP'23) and SIEVE (NSDI'24). Our focus is on implementing these algorithms on our simulator and evaluating their performance using block storage datasets from Alibaba, Tencent, and MSR. Besides evaluating the prefetchers and eviction algorithms individually, we also aim to combine prefetchers with cache eviction algorithms to test overall performance.&lt;/p>
&lt;h2 id="current-progress">Current Progress&lt;/h2>
&lt;p>In the past one and a half months, I have focused on (1) implementing our Python simulator and (2) deploying state-of-the-art prefetchers and cache eviction algorithms on this simulator. The implementation phase is now complete. The detailed progress is as follows:&lt;/p>
&lt;ol>
&lt;li>The python simulator of evaluating both ML-based or heuristic-based prefetchers and cache eviction are done.&lt;/li>
&lt;li>Evaluations metrics collection, such as hit rate, total prefetched data, prefetch overhead, prefetch accuracy are implemented on the simulator.&lt;/li>
&lt;li>Two ML-based prefetchers, SGDP, Pythia and Markov-Chain are deployed on the simulator. SGDP is a graphed neural network based prefetcher, and Pythia is a reinforment learning based prefetcher.&lt;/li>
&lt;li>State-of-the-art heuristic based eviction algorithms are implemented in the simulator, including S3FIFO and SIEVE.&lt;/li>
&lt;/ol>
&lt;p>With the simulator and state-of-the-art ML-based prefetchers and eviction algorithms in place, the next steps are to (1) organize a large-scale dataset (including over 600 traces from real storage servers) for testing performance and (2) evaluate the implemented prefetchers and eviction algorithms on this dataset. Finally, I will analyze the evaluation results and provide insights from the experimental outcomes. For the ML-based prefetchers, I will analyze both ML-related metrics such as accuracy and F1-score, and system metrics such as hit rate and various overheads.&lt;/p>
&lt;h2 id="challenges">Challenges&lt;/h2>
&lt;p>The biggest challenge is implementing existing prefetchers correctly and fairly. Since some state-of-the-art prefetchers are designed for DRAM prefetching, adapting them for SSD prefetching in the simulator is challenging. Additionally, the lack of source code for some works makes it difficult to reproduce their algorithms accurately based solely on their paper descriptions.&lt;/p></description></item><item><title>FetchPipe: Data Science Pipeline for ML-based Prefetching</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/uchicago/fetchpipe/20240625-peiranqin/</link><pubDate>Tue, 25 Jun 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/uchicago/fetchpipe/20240625-peiranqin/</guid><description>&lt;p>Hello, I&amp;rsquo;m &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/peiran-qin/">Peiran Qin&lt;/a>, a first-year Pre-Doctoral student in Computer Science at the University of Chicago. In this summer I will focus
working on the project &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/uchicago/fetchpipe/">FetchPipe: Data Science Pipeline for ML-based Prefetching&lt;/a> under the mentorship of Prof. &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/haryadi-s.-gunawi/">Haryadi S. Gunawi&lt;/a>. This is my &lt;a href="https://docs.google.com/document/d/1Bq4tulf6bd9HuKyy3mxC-LRKwe9e7YAOVNYQNJTPsys/edit#heading=h.pwfhd8ioumbq" target="_blank" rel="noopener">proposal&lt;/a>.&lt;/p>
&lt;p>Caching and prefetching are integral components of modern storage systems, aimed at reducing I/O latency by utilizing faster but less dense memory for storing data that is accessed frequently. Traditional prefetching strategies, which primarily rely on heuristic-based methods, often fall short in performance, particularly in complex scenarios. To address the complex scenarios, in recent years, machine learning solutions have emerged as a promising alternative, offering the ability to learn and predict complicated data access patterns. However, each existing ML prefetcher may bias toward different scenarios and distinct evaluation metrics. There is still a necessity to evaluate state-of-the-art machine learning based literatures comprehensively and fairly under an aligned evaluation framework and extensive performance metrics. Therefore, It becomes the motivation for me to spend my summer on this interesting project!&lt;/p></description></item></channel></rss>