Guanzhou Hu, Andrea Arpaci-Dusseau, Remzi Arpaci-Dusseau
{"title":"Foreactor:通过明确推测利用存储 I/O 并行性","authors":"Guanzhou Hu, Andrea Arpaci-Dusseau, Remzi Arpaci-Dusseau","doi":"arxiv-2409.01580","DOIUrl":null,"url":null,"abstract":"We introduce explicit speculation, a variant of I/O speculation technique\nwhere I/O system calls can be parallelized under the guidance of explicit\napplication code knowledge. We propose a formal abstraction -- the foreaction\ngraph -- which describes the exact pattern of I/O system calls in an\napplication function as well as any necessary computation associated to produce\ntheir argument values. I/O system calls can be issued ahead of time if the\ngraph says it is safe and beneficial to do so. With explicit speculation,\nserial applications can exploit storage I/O parallelism without involving\nexpensive prediction or checkpointing mechanisms. Based on explicit speculation, we implement Foreactor, a library framework\nthat allows application developers to concretize foreaction graphs and enable\nconcurrent I/O with little or no modification to application source code.\nExperimental results show that Foreactor is able to improve the performance of\nboth synthetic benchmarks and real applications by significant amounts\n(29%-50%).","PeriodicalId":501333,"journal":{"name":"arXiv - CS - Operating Systems","volume":"60 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-09-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Foreactor: Exploiting Storage I/O Parallelism with Explicit Speculation\",\"authors\":\"Guanzhou Hu, Andrea Arpaci-Dusseau, Remzi Arpaci-Dusseau\",\"doi\":\"arxiv-2409.01580\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"We introduce explicit speculation, a variant of I/O speculation technique\\nwhere I/O system calls can be parallelized under the guidance of explicit\\napplication code knowledge. We propose a formal abstraction -- the foreaction\\ngraph -- which describes the exact pattern of I/O system calls in an\\napplication function as well as any necessary computation associated to produce\\ntheir argument values. I/O system calls can be issued ahead of time if the\\ngraph says it is safe and beneficial to do so. With explicit speculation,\\nserial applications can exploit storage I/O parallelism without involving\\nexpensive prediction or checkpointing mechanisms. Based on explicit speculation, we implement Foreactor, a library framework\\nthat allows application developers to concretize foreaction graphs and enable\\nconcurrent I/O with little or no modification to application source code.\\nExperimental results show that Foreactor is able to improve the performance of\\nboth synthetic benchmarks and real applications by significant amounts\\n(29%-50%).\",\"PeriodicalId\":501333,\"journal\":{\"name\":\"arXiv - CS - Operating Systems\",\"volume\":\"60 1\",\"pages\":\"\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2024-09-03\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"arXiv - CS - Operating Systems\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/arxiv-2409.01580\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Operating Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2409.01580","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Foreactor: Exploiting Storage I/O Parallelism with Explicit Speculation
We introduce explicit speculation, a variant of I/O speculation technique
where I/O system calls can be parallelized under the guidance of explicit
application code knowledge. We propose a formal abstraction -- the foreaction
graph -- which describes the exact pattern of I/O system calls in an
application function as well as any necessary computation associated to produce
their argument values. I/O system calls can be issued ahead of time if the
graph says it is safe and beneficial to do so. With explicit speculation,
serial applications can exploit storage I/O parallelism without involving
expensive prediction or checkpointing mechanisms. Based on explicit speculation, we implement Foreactor, a library framework
that allows application developers to concretize foreaction graphs and enable
concurrent I/O with little or no modification to application source code.
Experimental results show that Foreactor is able to improve the performance of
both synthetic benchmarks and real applications by significant amounts
(29%-50%).