{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:31:02Z","timestamp":1750221062238,"version":"3.41.0"},"reference-count":75,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2018,8,28]],"date-time":"2018-08-28T00:00:00Z","timestamp":1535414400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGOPS Oper. Syst. Rev."],"published-print":{"date-parts":[[2018,8,28]]},"abstract":"<jats:p>In modern computing systems, object deserialization can become a surprisingly important bottleneck-in our test, a set of generalpurpose, highly parallelized applications spends 64% of total execution time deserializing data into objects. This paper presents the Morpheus model, which allows applications to move such computations to a storage device and bypass the overhead on the host system. We use this model to deserialize data into application objects inside storage devices, rather than in the host CPU. Using the Morpheus model for object deserialization avoids unnecessary system overheads, frees up scarce CPU and main memory resources for compute-intensive workloads, saves I\/O bandwidth, and reduces power consumption. In heterogeneous, coprocessor- equipped systems, Morpheus allows application objects to be sent directly from a storage device to a co-processor (e.g., a GPU) by peer-to-peer transfer, further improving application performance as well as reducing the CPU and main memory utilizations. This paper implements Morpheus-SSD, an SSD supporting the Morpheus model. Morpheus-SSD improves the performance of object deserialization by 1.66x, reduces power consumption by 7%, uses 42% less energy, and speeds up the total execution time by 1.32x. By using NVMe-P2P that realizes peer-to-peer communication between Morpheus-SSD and a GPU, Morpheus-SSD can speed up the total execution time by 1.39x in a heterogeneous computing platform.<\/jats:p>","DOI":"10.1145\/3273982.3273989","type":"journal-article","created":{"date-parts":[[2018,8,30]],"date-time":"2018-08-30T13:45:11Z","timestamp":1535636711000},"page":"71-83","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Morpheus"],"prefix":"10.1145","volume":"52","author":[{"given":"Hung-Wei","family":"Tseng","sequence":"first","affiliation":[{"name":"North Carolina State University"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Qianchen","family":"Zhao","sequence":"additional","affiliation":[{"name":"Arista Networks"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yuxiao","family":"Zhou","sequence":"additional","affiliation":[{"name":"Workday, Inc."}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Mark","family":"Gahagan","sequence":"additional","affiliation":[{"name":"University of California"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Steven","family":"Swanson","sequence":"additional","affiliation":[{"name":"University of California"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2018,8,28]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/SC.2005.24"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/291069.291026"},{"key":"e_1_2_1_3_1","unstructured":"Advanced Micro Devices Inc. 2014. FirePro DirectGMA Technical Overview. http:\/\/developer.amd.com\/tools-and-sdks\/graphics-development\/firepro-sdk\/ firepro-directgma-sdk\/.  Advanced Micro Devices Inc. 2014. FirePro DirectGMA Technical Overview. http:\/\/developer.amd.com\/tools-and-sdks\/graphics-development\/firepro-sdk\/ firepro-directgma-sdk\/."},{"volume-title":"Thrift: Scalable Cross- Language Services Implementation. Technical Report","year":"2007","author":"Agarwal Aditya","key":"e_1_2_1_4_1"},{"key":"e_1_2_1_5_1","unstructured":"Amber Huffman. 2012. NVM Express Revision 1.1. http:\/\/nvmexpress.org\/wp-content\/ uploads\/2013\/05\/NVM Express 1 1.pdf.  Amber Huffman. 2012. NVM Express Revision 1.1. http:\/\/nvmexpress.org\/wp-content\/ uploads\/2013\/05\/NVM Express 1 1.pdf."},{"key":"e_1_2_1_6_1","unstructured":"AMD. 2014. Compute Cores White Paper. https:\/\/www.amd.com\/Documents\/Compute Cores Whitepaper.pdf.  AMD. 2014. Compute Cores White Paper. https:\/\/www.amd.com\/Documents\/Compute Cores Whitepaper.pdf."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPSW.2013.128"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629575.1629577"},{"key":"e_1_2_1_9_1","unstructured":"ANSI standard INCITS 400-2004. 2004. Object-Based Storage Device Commands .  ANSI standard INCITS 400-2004. 2004. Object-Based Storage Device Commands ."},{"key":"e_1_2_1_10_1","unstructured":"ARM Ltd. 2016. Storage must be fast reliable and low power. ARM technology powers the worlds' leading HDDs and SSDs. http:\/\/www.arm.com\/markets\/embedded\/hdd-ssd.php.  ARM Ltd. 2016. Storage must be fast reliable and low power. ARM technology powers the worlds' leading HDDs and SSDs. http:\/\/www.arm.com\/markets\/embedded\/hdd-ssd.php."},{"volume-title":"Parallel Architectures for Database Systems","author":"Banerjee Jayanta","key":"e_1_2_1_11_1"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10586-013-0280-9"},{"volume-title":"Mass Storage Systems and Technologies (MSST), 2012 IEEE 28th Symposium on. 1-12","author":"Boboila S.","key":"e_1_2_1_13_1"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1449764.1449774"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/376656.376846"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2010.33"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508270"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2818950.2818983"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2166929.2166930"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2463676.2465295"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/514191.514197"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/319195.319197"},{"key":"e_1_2_1_23_1","unstructured":"Fusion-io. 2015. ioMemory Virtual Storage Layer (VSL). http:\/\/www.fusionio.com\/overviews\/ vsl-technical-overview.  Fusion-io. 2015. ioMemory Virtual Storage Layer (VSL). http:\/\/www.fusionio.com\/overviews\/ vsl-technical-overview."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2001420.2001456"},{"key":"e_1_2_1_25_1","unstructured":"Y. F. Hu R. J. Allan and K. C. F. Maguire. {n. d.}. Comparing the performance of JAVA with Fortran and C for numerical computing. http:\/\/yifanhu.net\/SOFTWARE\/JASPA\/index.html.  Y. F. Hu R. J. Allan and K. C. F. Maguire. {n. d.}. Comparing the performance of JAVA with Fortran and C for numerical computing. http:\/\/yifanhu.net\/SOFTWARE\/JASPA\/index.html."},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/CLUSTER.2012.72"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2749469.2750412"},{"volume-title":"Code Generation and Optimization, 2003. CGO 2003. International Symposium on. 48-56","author":"Kamin S.","key":"e_1_2_1_28_1"},{"key":"e_1_2_1_29_1","doi-asserted-by":"crossref","unstructured":"Yangwook Kang Yang-Suk Kee Ethan L. Miller and Chanik Park. 2013. Enabling costeffective data processing with smart SSD. In Mass Storage Systems and Technologies (MSST)  Yangwook Kang Yang-Suk Kee Ethan L. Miller and Chanik Park. 2013. Enabling costeffective data processing with smart SSD. In Mass Storage Systems and Technologies (MSST)","DOI":"10.1109\/MSST.2013.6558444"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/2502524.2502548"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/290593.290602"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICPP.1994.108"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1135777.1135796"},{"key":"e_1_2_1_34_1","first-page":"280","volume-title":"Proceedings of the Fourth International Conference on Very Large Data Bases -","volume":"4","author":"Leilich Hans-Otto","year":"1978"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/2043556.2043558"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2008.37"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/320434.320447"},{"volume-title":"Cluster Computing, 2002. Proceedings. 2002 IEEE Inter- national Conference on. 67-74","author":"Maccabe A.B.","key":"e_1_2_1_38_1"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/339647.339673"},{"key":"e_1_2_1_40_1","unstructured":"netplex. 2011. json-smart: A small and very fast json parser\/generator for java. http:\/\/netplex. github.io\/json-smart\/.  netplex. 2011. json-smart: A small and very fast json parser\/generator for java. http:\/\/netplex. github.io\/json-smart\/."},{"key":"e_1_2_1_41_1","unstructured":"NVIDIA Corporation. 2014. CUDA C Programming Guide v6.0. http:\/\/docs.nvidia.com\/cuda\/ pdf\/CUDA C Programming Guide.pdf.  NVIDIA Corporation. 2014. CUDA C Programming Guide v6.0. http:\/\/docs.nvidia.com\/cuda\/ pdf\/CUDA C Programming Guide.pdf."},{"key":"e_1_2_1_42_1","unstructured":"NVIDIA Corporation. 2014. Developing a Linux Kernel Module Using RDMA for GPUDirect. http:\/\/docs.nvidia.com\/cuda\/pdf\/GPUDirect RDMA.pdf.  NVIDIA Corporation. 2014. Developing a Linux Kernel Module Using RDMA for GPUDirect. http:\/\/docs.nvidia.com\/cuda\/pdf\/GPUDirect RDMA.pdf."},{"key":"e_1_2_1_43_1","unstructured":"NVM Express. 2013. NVM Express Explained. http:\/\/nvmexpress.org\/wp-content\/uploads\/ 2013\/04\/NVM whitepaper.pdf.  NVM Express. 2013. NVM Express Explained. http:\/\/nvmexpress.org\/wp-content\/uploads\/ 2013\/04\/NVM whitepaper.pdf."},{"volume-title":"2013 IEEE International Conference on Cluster Computing (CLUSTER ' 13)","author":"Oden L.","key":"e_1_2_1_44_1"},{"volume-title":"Proceedings. 19th IEEE International Conference on Distributed Computing Systems Workshops on. 96-101","author":"Opyrchal L.","key":"e_1_2_1_45_1"},{"key":"e_1_2_1_46_1","first-page":"224","volume-title":"Solid-State Circuits Conference, 1997","author":"Patterson D.","year":"1997"},{"key":"e_1_2_1_47_1","unstructured":"PCI-SIG. {n. d.}. PCI-Express Specification. https:\/\/www.pcisig.com\/specifications\/ pciexpress\/.  PCI-SIG. {n. d.}. PCI-Express Specification. https:\/\/www.pcisig.com\/specifications\/ pciexpress\/."},{"key":"e_1_2_1_48_1","unstructured":"PMC-Sierra. 2014. Flashtec NVMe Controllers. http:\/\/pmcs.com\/products\/storage\/flashtec nvme controllers\/.  PMC-Sierra. 2014. Flashtec NVMe Controllers. http:\/\/pmcs.com\/products\/storage\/flashtec nvme controllers\/."},{"key":"e_1_2_1_49_1","unstructured":"PMC-Sierra Inc. 2015. FLASHTEC NVRAM DRIVES. http:\/\/pmcs.com\/products\/storage\/ flashtec nvram drives\/.  PMC-Sierra Inc. 2015. FLASHTEC NVRAM DRIVES. http:\/\/pmcs.com\/products\/storage\/ flashtec nvram drives\/."},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPSW.2012.228"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/2540708.2540747"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.928624"},{"key":"e_1_2_1_53_1","first-page":"1","volume-title":"Information Technology, 2008. ITSim 2008. International Symposium on","volume":"3","author":"Ross J.C."},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1109\/IISWC.2009.5306797"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/2168836.2168863"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.1979.1675383"},{"key":"e_1_2_1_57_1","first-page":"67","volume-title":"Willow: A User-Programmable SSD. In 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 14)","author":"Seshadri Sudharsan","year":"2014"},{"volume-title":"GPUdrive: Reconsidering Storage Accesses for GPU Acceleration. In Workshop on Architectures and Systems for Big Data.","year":"2014","author":"Shihab Mustafa","key":"e_1_2_1_58_1"},{"volume-title":"PROJECT DONARD: PEER-TO-PEER COMMUNICATION WITH NVM EXPRESS DEVICES","year":"2014","author":"Bates Stephen","key":"e_1_2_1_59_1"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2011.102"},{"key":"e_1_2_1_61_1","unstructured":"tensilica Inc. 2014. Xtensa microprocessor. http:\/\/www.tensilica.com.  tensilica Inc. 2014. Xtensa microprocessor. http:\/\/www.tensilica.com."},{"key":"e_1_2_1_62_1","unstructured":"The Serial ATA International Organization. 2009. SATA-IO Releases SATA Revision 3.0 Specification. https:\/\/www.sata-io.org\/sites\/default\/files\/documents\/SATA-Revision-3. 0-Press-Release-FINAL-052609.pdf.  The Serial ATA International Organization. 2009. SATA-IO Releases SATA Revision 3.0 Specification. https:\/\/www.sata-io.org\/sites\/default\/files\/documents\/SATA-Revision-3. 0-Press-Release-FINAL-052609.pdf."},{"first-page":"4","volume-title":"Proceedings of the 2012 USENIX Conference on Power- Aware Computing and Systems (HotPower'12)","author":"Tiwari Devesh","key":"e_1_2_1_63_1"},{"key":"e_1_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICCD.2012.6378607"},{"volume-title":"Gullfoss: Accelerating and Simplifying Data Movement among Heterogeneous Computing and Storage Resources. Technical Report CS2015-1015. Department of Computer Science and Engineering","year":"2015","author":"Tseng Hung-Wei","key":"e_1_2_1_65_1"},{"key":"e_1_2_1_66_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2016.15"},{"volume-title":"Protocol Buffers: Google's Data Interchange Format. Technical Report","year":"2008","author":"Varda Kenton","key":"e_1_2_1_67_1"},{"key":"e_1_2_1_68_1","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2013.226"},{"key":"e_1_2_1_69_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00450-011-0171-3"},{"key":"e_1_2_1_70_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2014.6835958"},{"key":"e_1_2_1_71_1","doi-asserted-by":"publisher","DOI":"10.5555\/1364813.1364815"},{"key":"e_1_2_1_72_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2005.6"},{"key":"e_1_2_1_73_1","doi-asserted-by":"publisher","DOI":"10.14778\/2732967.2732972"},{"volume-title":"Long","year":"2015","author":"Xie Yulai","key":"e_1_2_1_74_1"},{"key":"e_1_2_1_75_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2015.43"}],"container-title":["ACM SIGOPS Operating Systems Review"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3273982.3273989","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3273982.3273989","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T00:44:44Z","timestamp":1750207484000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3273982.3273989"}},"subtitle":["Exploring the Potential of Near-Data Processing for Creating Application Objects in Heterogeneous Computing"],"short-title":[],"issued":{"date-parts":[[2018,8,28]]},"references-count":75,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2018,8,28]]}},"alternative-id":["10.1145\/3273982.3273989"],"URL":"https:\/\/doi.org\/10.1145\/3273982.3273989","relation":{},"ISSN":["0163-5980"],"issn-type":[{"type":"print","value":"0163-5980"}],"subject":[],"published":{"date-parts":[[2018,8,28]]},"assertion":[{"value":"2018-08-28","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}