{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,25]],"date-time":"2025-11-25T14:10:25Z","timestamp":1764079825161,"version":"3.41.0"},"reference-count":58,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2022,12,16]],"date-time":"2022-12-16T00:00:00Z","timestamp":1671148800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100001809","name":"NSFC","doi-asserted-by":"crossref","award":["62032008"],"award-info":[{"award-number":["62032008"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"crossref"}]},{"name":"STCSM project","award":["20510712400"],"award-info":[{"award-number":["20510712400"]}]},{"name":"Ministry of Education-China Mobile Research Foundation","award":["MCM20180703"],"award-info":[{"award-number":["MCM20180703"]}]},{"name":"Alibaba Innovative Research (AIR) Program"},{"name":"SJTU-Enflame Joint Lab"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2023,3,31]]},"abstract":"<jats:p>With the rapid development of cloud computing, numerous cloud services, containers, and virtual machines have been bringing tremendous demands on high-performance memory resources to modern data centers. Heterogeneous memory, especially the newly released Optane memory, offer appropriate alternatives against DRAM in clouds with the advantages of larger capacity, lower purchase cost, and promising performance. However, cloud services suffer serious implementation inconvenience and performance degradation when using hybrid DRAM and Optane memory. This article proposes FlexHM, a practical system to manage transparent heterogeneous memory resources and flexibly optimize memory access performance for all VMs, containers, and native applications. We present an open-source prototype of FlexHM in Linux with several main contributions. First, FlexHM raises a novel two-level NUMA design to manage DRAM and Optane memory as transparent main memory resources. Second, FlexHM provides flexible and efficient memory management, helping optimize memory access performance or save purchase costs of memory resources for differential cloud services with customized management strategies. Finally, the evaluations show that cloud workloads using 50% Optane slow memory on FlexHM can achieve up to 93% of the performance when using all-DRAM, and FlexHM provides up to 5.8\u00d7 improvement over the previous heterogeneous memory system solution when workloads use the same ratio of DRAM and Optane memory.<\/jats:p>","DOI":"10.1145\/3565885","type":"journal-article","created":{"date-parts":[[2022,10,12]],"date-time":"2022-10-12T13:10:37Z","timestamp":1665580237000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":4,"title":["FlexHM: A Practical System for Heterogeneous Memory with Flexible and Efficient Performance Optimizations"],"prefix":"10.1145","volume":"20","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-6190-5327","authenticated-orcid":false,"given":"Bo","family":"Peng","sequence":"first","affiliation":[{"name":"Shanghai Jiao Tong University, Shanghai, China"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9623-5933","authenticated-orcid":false,"given":"Yaozu","family":"Dong","sequence":"additional","affiliation":[{"name":"Intel Asia-Pacific Research and Development Ltd., Shanghai, China"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1142-4496","authenticated-orcid":false,"given":"Jianguo","family":"Yao","sequence":"additional","affiliation":[{"name":"Shanghai Jiao Tong University, Shanghai, China"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3293-9042","authenticated-orcid":false,"given":"Fengguang","family":"Wu","sequence":"additional","affiliation":[{"name":"Intel Asia-Pacific Research and Development Ltd., Shanghai, China"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4714-7400","authenticated-orcid":false,"given":"Haibing","family":"Guan","sequence":"additional","affiliation":[{"name":"Shanghai Jiao Tong University, Shanghai, China"}]}],"member":"320","published-online":{"date-parts":[[2022,12,16]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"publisher","DOI":"10.1145\/3037697.3037706"},{"key":"e_1_3_2_3_2","first-page":"1","article-title":"Pareto distribution","author":"Arnold Barry C.","year":"2014","unstructured":"Barry C. Arnold. 2014. Pareto distribution. Wiley StatsRef: Statistics Reference Online (2014), 1\u201310.","journal-title":"Wiley StatsRef: Statistics Reference Online"},{"key":"e_1_3_2_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/3187009.3164147"},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/3035918.3054780"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2010.33"},{"key":"e_1_3_2_7_2","unstructured":"Global Memory Procurement Corp. 2019. Server Memory Prices | Server RAM Module Price List - Memory. NET. Retrieved from https:\/\/memory.net\/memory-prices\/."},{"key":"e_1_3_2_8_2","doi-asserted-by":"publisher","DOI":"10.1145\/356571.356573"},{"key":"e_1_3_2_9_2","unstructured":"Dormando. 2018. Memcached. Retrieved from http:\/\/memcached.org\/."},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1145\/3132402.3132418"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/2901318.2901344"},{"key":"e_1_3_2_12_2","unstructured":"Brendan D. Gregg. 2018. Working Set Size Estimation. Retrieved from http:\/\/www.brendangregg.com\/wss.html."},{"key":"e_1_3_2_13_2","doi-asserted-by":"publisher","DOI":"10.1145\/3326285.3329074"},{"key":"e_1_3_2_14_2","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2018.00056"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1145\/2817817.2731191"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF02021059"},{"key":"e_1_3_2_17_2","unstructured":"Tom\u2019s Hardware. 2019. Intel Optane DIMM Pricing: $695 for 128GB $2595 for 256GB $7816 for 512GB (Update). Retrieved from https:\/\/www.tomshardware.com\/news\/intel-optane-dimm-pricing-performance 39007.html."},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2015.58"},{"key":"e_1_3_2_19_2","unstructured":"Intel. 2019. EMON User Guide. Retrieved from https:\/\/software.intel.com\/sites\/default\/files\/emon_user_guide_2019u3.pdf."},{"key":"e_1_3_2_20_2","unstructured":"Intel. 2019. Intel Optane DC Persistent Memory. Retrieved from https:\/\/www.intel.com\/content\/www\/us\/en\/architecture-and-technology\/optane-dc-persistent-memory.html."},{"key":"e_1_3_2_21_2","article-title":"Basic performance measurements of the Intel Optane DC persistent memory module","volume":"1903","author":"Izraelevitz Joseph","year":"2019","unstructured":"Joseph Izraelevitz, Jian Yang, Lu Zhang, Juno Kim, Xiao Liu, Amirsaman Memaripour, Yun Joon Soh, Zixuan Wang, Yi Xu, Subramanya R. Dulloor, Jishen Zhao, and Steven Swanson. 2019. Basic performance measurements of the Intel Optane DC persistent memory module. CoRR abs\/1903.05714 (2019).","journal-title":"CoRR"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2010.52"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(88)90065-8"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/3079856.3080245"},{"key":"e_1_3_2_25_2","doi-asserted-by":"crossref","unstructured":"Sudarsun Kannan Yujie Ren and Abhishek Bhattacharjee. 2021. KLOCs: Kernel-level object contexts for heterogeneous memory systems. InProceedings of the Architectural Support for Programming Languages and Operating Systems Conference (ASPLOS\u201921). Association for Computing Machinery New York NY 65\u201378.","DOI":"10.1145\/3445814.3446745"},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2011.5767867"},{"key":"e_1_3_2_27_2","unstructured":"kernel.org. 2020. Fake NUMA for CPUSets. Retrieved from https:\/\/www.kernel.org\/doc\/html\/latest\/x86\/x86_64\/fake-numa-for-cpusets.html."},{"key":"e_1_3_2_28_2","unstructured":"Alexey Kopytov. 2004. SysBench: A system performance benchmark. Retrieved from http:\/\/sysbench.sourceforge.net\/."},{"key":"e_1_3_2_29_2","doi-asserted-by":"publisher","DOI":"10.1145\/2508834.2513149"},{"key":"e_1_3_2_30_2","first-page":"78","article-title":"The central limit theorem around 1935","author":"Cam Lucien Le","year":"1986","unstructured":"Lucien Le Cam. 1986. The central limit theorem around 1935. Statist. Sci. (1986), 78\u201391.","journal-title":"Statist. Sci."},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2013.98"},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","DOI":"10.1109\/CLUSTER.2017.130"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.1145\/3079079.3079089"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICCD.2016.7753305"},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/3373376.3378511"},{"key":"e_1_3_2_36_2","volume-title":"Proceedings of the 15th Workshop on Hot Topics in Operating Systems (HotOS XV)","author":"McSherry Frank","year":"2015","unstructured":"Frank McSherry, Michael Isard, and Derek G. Murray. 2015. Scalability! But at what COST. In Proceedings of the 15th Workshop on Hot Topics in Operating Systems (HotOS XV)."},{"key":"e_1_3_2_37_2","unstructured":"Carl Rod Nave. 1998. Gaussian Distribution Function. Retrieved from http:\/\/hyperphysics.phy-astr.gsu.edu\/hbase\/Math\/gaufcn.html."},{"key":"e_1_3_2_38_2","unstructured":"Neha Agarwal. 2017. Thermostat Code for ASPLOS 2017 Paper. Retrieved from https:\/\/github.com\/nehaag\/thermostat_asplos_2017.git."},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","DOI":"10.1109\/NAS.2018.8515694"},{"key":"e_1_3_2_40_2","volume-title":"The PageRank Citation Ranking: Bringing Order to the Web.","author":"Page Lawrence","year":"1999","unstructured":"Lawrence Page, Sergey Brin, Rajeev Motwani, and Terry Winograd. 1999. The PageRank Citation Ranking: Bringing Order to the Web.Technical Report. Stanford InfoLab."},{"key":"e_1_3_2_41_2","doi-asserted-by":"publisher","DOI":"10.1145\/2024724.2024738"},{"key":"e_1_3_2_42_2","unstructured":"pmdk.io. 2020. Persistent Memory Development Kit. Retrieved from https:\/\/pmem.io\/pmdk\/."},{"key":"e_1_3_2_43_2","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2012.30"},{"key":"e_1_3_2_44_2","doi-asserted-by":"publisher","DOI":"10.1145\/1995896.1995911"},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","DOI":"10.1145\/3477132.3483550"},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","DOI":"10.1145\/2442516.2442530"},{"key":"e_1_3_2_47_2","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2014.56"},{"key":"e_1_3_2_48_2","volume-title":"Moving to the Cloud: Developing Apps in the New World of Cloud Computing","author":"Sitaram Dinkar","year":"2011","unstructured":"Dinkar Sitaram and Geetha Manjunath. 2011. Moving to the Cloud: Developing Apps in the New World of Cloud Computing. Elsevier."},{"key":"e_1_3_2_49_2","unstructured":"ACPI Specification. 2017. IAdvanced Configuration and Power Interface Specification. Retrieved from https:\/\/uefi.org\/sites\/default\/files\/resources\/ACPI_6_2.pdf."},{"key":"e_1_3_2_50_2","first-page":"33","volume-title":"Proceedings of the USENIX Annual Technical Conference (USENIX ATC\u201920)","author":"Tsai Shin-Yeh","year":"2020","unstructured":"Shin-Yeh Tsai, Yizhou Shan, and Yiying Zhang. 2020. Disaggregating persistent memory and controlling them remotely: An exploration of passive disaggregated key-value stores. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC\u201920). USENIX Association, 33\u201348."},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","DOI":"10.1145\/3183713.3196897"},{"key":"e_1_3_2_52_2","unstructured":"Vish Viswanathan. 2019. Intel Memory Latency Checker v3.7. Retrieved from https:\/\/software.intel.com\/en-us\/articles\/intelr-memory-latency-checker."},{"key":"e_1_3_2_53_2","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2014.44"},{"key":"e_1_3_2_54_2","doi-asserted-by":"publisher","DOI":"10.1145\/3503222.3507731"},{"key":"e_1_3_2_55_2","doi-asserted-by":"publisher","DOI":"10.1145\/3126908.3126923"},{"key":"e_1_3_2_56_2","doi-asserted-by":"publisher","DOI":"10.1145\/3297858.3304024"},{"key":"e_1_3_2_57_2","doi-asserted-by":"publisher","DOI":"10.5555\/3386691.3386708"},{"key":"e_1_3_2_58_2","first-page":"17","volume-title":"Proceedings of the USENIX Annual Technical Conference (USENIX ATC\u201920)","author":"Yao Ting","year":"2020","unstructured":"Ting Yao, Yiwen Zhang, Jiguang Wan, Qiu Cui, Liu Tang, Hong Jiang, Changsheng Xie, and Xubin He. 2020. MatrixKV: Reducing write stalls and write amplification in LSM-tree based KV stores with matrix container in NVM. In Proceedings of the USENIX Annual Technical Conference (USENIX ATC\u201920). USENIX Association, 17\u201331."},{"key":"e_1_3_2_59_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICFN.2010.58"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3565885","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3565885","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T17:48:52Z","timestamp":1750182532000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3565885"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,12,16]]},"references-count":58,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2023,3,31]]}},"alternative-id":["10.1145\/3565885"],"URL":"https:\/\/doi.org\/10.1145\/3565885","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2022,12,16]]},"assertion":[{"value":"2022-05-07","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-09-20","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-12-16","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}