{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:31:57Z","timestamp":1750221117577,"version":"3.41.0"},"reference-count":32,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2019,2,17]],"date-time":"2019-02-17T00:00:00Z","timestamp":1550361600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Contribution during internship at Microsoft Research Asia"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Reconfigurable Technol. Syst."],"published-print":{"date-parts":[[2019,3,31]]},"abstract":"<jats:p>Web search engines deploy large-scale selection services on CPUs to identify a set of web pages that match user queries. An FPGA-based accelerator can exploit various levels of parallelism and provide a lower latency, higher throughput, more energy-efficient solution than commodity CPUs. However, maintaining such a customized accelerator in a commercial search engine is challenging because selection services are changed often. This article presents our design for FlexSaaS (Flexible Selection as a Service), an FPGA-based accelerator for web search selection. To address efficiency and flexibility challenges, FlexSaaS abstracts computing models and separates memory access from computation. Specifically, FlexSaaS (i) contains a reconfigurable number of matching processors that can handle various possible query plans, (ii) decouples index stream reading from matching computation to fetch and decode index files, and (iii) includes a universal memory accessor that hides the complex memory hierarchy and reduces host data access latency. Evaluated on FPGAs in the selection service of a commercial web search--the Bing web search engine\u2014FlexSaaS can be evolved quickly to adapt to new updates. Compared to the software baseline, FlexSaaS on Arria 10 reduces average latency by 30% and increases throughput by 1.5\u00d7.<\/jats:p>","DOI":"10.1145\/3301409","type":"journal-article","created":{"date-parts":[[2019,2,19]],"date-time":"2019-02-19T20:54:15Z","timestamp":1550609655000},"page":"1-20","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["FlexSaaS"],"prefix":"10.1145","volume":"12","author":[{"given":"Shijie","family":"Cao","sequence":"first","affiliation":[{"name":"Harbin Institute of Technology, Harbin, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Lanshun","family":"Nie","sequence":"additional","affiliation":[{"name":"Harbin Institute of Technology, Harbin, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Dechen","family":"Zhan","sequence":"additional","affiliation":[{"name":"Harbin Institute of Technology, Harbin, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Wenqiang","family":"Wang","sequence":"additional","affiliation":[{"name":"Microsoft Research, Beijing, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ningyi","family":"Xu","sequence":"additional","affiliation":[{"name":"Microsoft Research, Beijing, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ramashis","family":"Das","sequence":"additional","affiliation":[{"name":"Microsoft, Beijing, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Ming","family":"Wu","sequence":"additional","affiliation":[{"name":"Microsoft Research, Beijing, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Lintao","family":"Zhang","sequence":"additional","affiliation":[{"name":"Microsoft Research, Beijing, China"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Derek","family":"Chiou","sequence":"additional","affiliation":[{"name":"Microsoft, Washington, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2019,2,17]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Intel. n.d. Altera SDK for OpenCL. Available at https:\/\/www.altera.com\/.  Intel. n.d. Altera SDK for OpenCL. Available at https:\/\/www.altera.com\/."},{"volume-title":"Retrieved","year":"2019","key":"e_1_2_1_2_1","unstructured":"Intel. n.d. Intel Vtune Amplifier . Retrieved January 26, 2019 from https:\/\/software.intel.com\/en-us\/intel-vtune-amplifier-xe. Intel. n.d. Intel Vtune Amplifier. Retrieved January 26, 2019 from https:\/\/software.intel.com\/en-us\/intel-vtune-amplifier-xe."},{"key":"e_1_2_1_3_1","volume-title":"Retrieved","author":"MP.","year":"2019","unstructured":"Open MP. n.d. OpenMP Home Page . Retrieved January 26, 2019 from https:\/\/www.openmp.org\/. OpenMP. n.d. OpenMP Home Page. Retrieved January 26, 2019 from https:\/\/www.openmp.org\/."},{"key":"e_1_2_1_4_1","unstructured":"Xilinx. n.d. SDAccel Development Environment. Available at https:\/\/www.xilinx.com\/.  Xilinx. n.d. SDAccel Development Environment. Available at https:\/\/www.xilinx.com\/."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/564376.564416"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1023\/B:INRT.0000048490.99518.5c"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.14778\/2002974.2002975"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.5555\/882455.875020"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.5555\/297805.297827"},{"volume-title":"Proceedings of the 39th Annual Symposium on Foundations of Computer Science (FOCS\u201998)","author":"Andrei","key":"e_1_2_1_10_1","unstructured":"Andrei Z. Broder and Monika Rauch Henzinger. 1998. Information retrieval on the web . In Proceedings of the 39th Annual Symposium on Foundations of Computer Science (FOCS\u201998) . 6. Andrei Z. Broder and Monika Rauch Henzinger. 1998. Information retrieval on the web. In Proceedings of the 39th Annual Symposium on Foundations of Computer Science (FOCS\u201998). 6."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2554688.2554787"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.5555\/3195638.3195647"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1498759.1498761"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1526709.1526766"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1125857.1125859"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2016.30"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/3079856.3080246"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2008.31"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2016.42"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2016.25"},{"volume-title":"Introduction to Industrial Minerals","author":"Manning DAC","key":"e_1_2_1_21_1","unstructured":"DAC Manning . 1995. Introduction . In Introduction to Industrial Minerals . Springer , 1--16. DAC Manning. 1995. Introduction. In Introduction to Industrial Minerals. Springer, 1--16."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/HOTCHIPS.2014.7478821"},{"volume-title":"Proceedings of the 2016 IEEE Hot Chips 28 Symposium (HCS\u201916)","author":"Ouyang Jian","key":"e_1_2_1_23_1","unstructured":"Jian Ouyang , Wei Qi , Yong Wang , Yichen Tu , Jing Wang , and Bowen Jia2016. SDA : Software-defined accelerator for general-purpose big data analysis system . In Proceedings of the 2016 IEEE Hot Chips 28 Symposium (HCS\u201916) . IEEE, Los Alamitos, CA, 1--23. Jian Ouyang, Wei Qi, Yong Wang, Yichen Tu, Jing Wang, and Bowen Jia2016. SDA: Software-defined accelerator for general-purpose big data analysis system. In Proceedings of the 2016 IEEE Hot Chips 28 Symposium (HCS\u201916). IEEE, Los Alamitos, CA, 1--23."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3079856.3080256"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.5555\/2665671.2665678"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/FPL.2009.5272246"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/I-SPAN.2009.89"},{"key":"e_1_2_1_29_1","volume-title":"Proceedings of the IEEE International Symposium on Parallel and Distributed Processing, Workshops, and Phd Forum (IPDPSW\u201910)","author":"Wu Di","year":"2010","unstructured":"Di Wu , Fan Zhang , Naiyong Ao , Gang Wang , Xiaoguang Liu , and Jing Liu . 2010 . Efficient lists intersection by CPU-GPU cooperative computing . In Proceedings of the IEEE International Symposium on Parallel and Distributed Processing, Workshops, and Phd Forum (IPDPSW\u201910) . IEEE, Los Alamitos, CA, 1--8. Di Wu, Fan Zhang, Naiyong Ao, Gang Wang, Xiaoguang Liu, and Jing Liu. 2010. Efficient lists intersection by CPU-GPU cooperative computing. In Proceedings of the IEEE International Symposium on Parallel and Distributed Processing, Workshops, and Phd Forum (IPDPSW\u201910). IEEE, Los Alamitos, CA, 1--8."},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/FCCM.2012.28"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1367497.1367550"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1132956.1132959"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2006.150"}],"container-title":["ACM Transactions on Reconfigurable Technology and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3301409","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3301409","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T01:02:05Z","timestamp":1750208525000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3301409"}},"subtitle":["A Reconfigurable Accelerator for Web Search Selection"],"short-title":[],"issued":{"date-parts":[[2019,2,17]]},"references-count":32,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2019,3,31]]}},"alternative-id":["10.1145\/3301409"],"URL":"https:\/\/doi.org\/10.1145\/3301409","relation":{},"ISSN":["1936-7406","1936-7414"],"issn-type":[{"type":"print","value":"1936-7406"},{"type":"electronic","value":"1936-7414"}],"subject":[],"published":{"date-parts":[[2019,2,17]]},"assertion":[{"value":"2018-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-12-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-02-17","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}