{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,15]],"date-time":"2026-05-15T06:41:07Z","timestamp":1778827267499,"version":"3.51.4"},"reference-count":61,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2015,1,20]],"date-time":"2015-01-20T00:00:00Z","timestamp":1421712000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100016682","name":"VMware","doi-asserted-by":"crossref","id":[{"id":"10.13039\/100016682","id-type":"DOI","asserted-by":"crossref"}]},{"name":"National Science Foundation","award":["SHF-964106, CNS-1301934"],"award-info":[{"award-number":["SHF-964106, CNS-1301934"]}]},{"name":"Quanta Computer"},{"DOI":"10.13039\/100006112","name":"Microsoft Research","doi-asserted-by":"crossref","id":[{"id":"10.13039\/100006112","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/100000879","name":"Alfred P. Sloan Foundation","doi-asserted-by":"crossref","id":[{"id":"10.13039\/100000879","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/100006785","name":"Google","doi-asserted-by":"crossref","id":[{"id":"10.13039\/100006785","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Comput. Syst."],"published-print":{"date-parts":[[2015,1,20]]},"abstract":"<jats:p>\n            What opportunities for multicore scalability are latent in software interfaces, such as system call APIs? Can scalability challenges and opportunities be identified even before any implementation exists, simply by considering interface specifications? To answer these questions, we introduce the scalable commutativity rule:\n            <jats:italic>whenever interface operations commute, they can be implemented in a way that scales.<\/jats:italic>\n            This rule is useful throughout the development process for scalable multicore software, from the interface design through implementation, testing, and evaluation.\n          <\/jats:p>\n          <jats:p>\n            This article formalizes the scalable commutativity rule. This requires defining a novel form of commutativity,\n            <jats:italic>SIM commutativity<\/jats:italic>\n            , that lets the rule apply even to complex and highly stateful software interfaces.\n          <\/jats:p>\n          <jats:p>\n            We also introduce a suite of software development tools based on the rule. Our\n            <jats:sc>Commuter<\/jats:sc>\n            tool accepts high-level interface models, generates tests of interface operations that commute and hence could scale, and uses these tests to systematically evaluate the scalability of implementations. We apply\n            <jats:sc>Commuter<\/jats:sc>\n            to a model of 18 POSIX file and virtual memory system operations. Using the resulting 26,238 scalability tests,\n            <jats:sc>Commuter<\/jats:sc>\n            highlights Linux kernel problems previously observed to limit application scalability and identifies previously unknown bottlenecks that may be triggered by future workloads or hardware.\n          <\/jats:p>\n          <jats:p>\n            Finally, we apply the scalable commutativity rule and\n            <jats:sc>Commuter<\/jats:sc>\n            to the design and implementation sv6, a new POSIX-like operating system. sv6\u2019s novel file and virtual memory system designs enable it to scale for 99% of the tests generated by\n            <jats:sc>Commuter<\/jats:sc>\n            . These results translate to linear scalability on an 80-core x86 machine for applications built on sv6\u2019s commutative operations.\n          <\/jats:p>","DOI":"10.1145\/2699681","type":"journal-article","created":{"date-parts":[[2015,1,28]],"date-time":"2015-01-28T14:05:51Z","timestamp":1422453951000},"page":"1-47","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":44,"title":["The Scalable Commutativity Rule"],"prefix":"10.1145","volume":"32","author":[{"given":"Austin T.","family":"Clements","sequence":"first","affiliation":[{"name":"MIT CSAIL, Cambridge, MA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"M. Frans","family":"Kaashoek","sequence":"additional","affiliation":[{"name":"MIT CSAIL, Cambridge, MA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Nickolai","family":"Zeldovich","sequence":"additional","affiliation":[{"name":"MIT CSAIL, Cambridge, MA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Robert T.","family":"Morris","sequence":"additional","affiliation":[{"name":"MIT CSAIL, Cambridge, MA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Eddie","family":"Kohler","sequence":"additional","affiliation":[{"name":"Harvard University, Cambridge, MA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2015,1,20]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"AMD64 Architecture Programmer\u2019s Manual","author":"Devices Advanced Micro","unstructured":"Advanced Micro Devices . 2012. AMD64 Architecture Programmer\u2019s Manual . Vol. 2 . Advanced Micro Devices . Advanced Micro Devices. 2012. AMD64 Architecture Programmer\u2019s Manual. Vol. 2. Advanced Micro Devices."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1275517.1275518"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926442"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1583991.1584015"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629575.1629579"},{"key":"e_1_2_1_6_1","unstructured":"Fabrice Bellard and others. 2011. QEMU. Retrieved August 1 2014 from http:\/\/www.qemu.org\/.  Fabrice Bellard and others. 2011. QEMU. Retrieved August 1 2014 from http:\/\/www.qemu.org\/."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1314466.1314467"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/356842.356846"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/70082.68193"},{"key":"e_1_2_1_11_1","volume-title":"Proceedings of the 8th Symposium on Operating Systems Design and Implementation (OSDI\u201908)","author":"Boyd-Wickizer Silas","year":"2008","unstructured":"Silas Boyd-Wickizer , Haibo Chen , Rong Chen , Yandong Mao , M. Frans Kaashoek , Robert Morris , Aleksey Pesterev , Lex Stein , Ming Wu , Yuehua Dai , Yang Zhang , and Zheng Zhang . 2008 . Corey: An operating system for many cores . In Proceedings of the 8th Symposium on Operating Systems Design and Implementation (OSDI\u201908) . Silas Boyd-Wickizer, Haibo Chen, Rong Chen, Yandong Mao, M. Frans Kaashoek, Robert Morris, Aleksey Pesterev, Lex Stein, Ming Wu, Yuehua Dai, Yang Zhang, and Zheng Zhang. 2008. Corey: An operating system for many cores. In Proceedings of the 8th Symposium on Operating Systems Design and Implementation (OSDI\u201908)."},{"key":"e_1_2_1_12_1","volume-title":"Proceedings of the 9th Symposium on Operating Systems Design and Implementation (OSDI)","author":"Boyd-Wickizer Silas","year":"2010","unstructured":"Silas Boyd-Wickizer , Austin Clements , Yandong Mao , Aleksey Pesterev , M. Frans Kaashoek , Robert Morris , and Nickolai Zeldovich . 2010 . An analysis of Linux scalability to many cores . In Proceedings of the 9th Symposium on Operating Systems Design and Implementation (OSDI) . Vancouver, Canada. Silas Boyd-Wickizer, Austin Clements, Yandong Mao, Aleksey Pesterev, M. Frans Kaashoek, Robert Morris, and Nickolai Zeldovich. 2010. An analysis of Linux scalability to many cores. In Proceedings of the 9th Symposium on Operating Systems Design and Implementation (OSDI). Vancouver, Canada."},{"key":"e_1_2_1_13_1","volume-title":"Proceedings of the 8th Symposium on Operating Systems Design and Implementation (OSDI\u201908)","author":"Cadar Cristian","year":"2008","unstructured":"Cristian Cadar , Daniel Dunbar , and Dawson Engler . 2008 . KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs . In Proceedings of the 8th Symposium on Operating Systems Design and Implementation (OSDI\u201908) . Cristian Cadar, Daniel Dunbar, and Dawson Engler. 2008. KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs. In Proceedings of the 8th Symposium on Operating Systems Design and Implementation (OSDI\u201908)."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1180405.1180445"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1400214.1400227"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/351240.351266"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2150976.2150998"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2465351.2465373"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517349.2522712"},{"key":"e_1_2_1_21_1","volume-title":"Scalable Counters. Retrieved","author":"Corbet Jonathan","year":"2014","unstructured":"Jonathan Corbet . 2010. The Search for Fast , Scalable Counters. Retrieved August 1, 2014 , from http:\/\/lwn.net\/Articles\/170003\/. Jonathan Corbet. 2010. The Search for Fast, Scalable Counters. Retrieved August 1, 2014, from http:\/\/lwn.net\/Articles\/170003\/."},{"key":"e_1_2_1_22_1","volume-title":"Dcache scalability and RCU-walk. (April 23","author":"Corbet Jonathan","year":"2012","unstructured":"Jonathan Corbet . 2012. Dcache scalability and RCU-walk. (April 23 , 2012 ). Retrieved August 1, 2014, from http:\/\/lwn.net\/Articles\/419811\/. Jonathan Corbet. 2012. Dcache scalability and RCU-walk. (April 23, 2012). Retrieved August 1, 2014, from http:\/\/lwn.net\/Articles\/419811\/."},{"key":"e_1_2_1_23_1","volume-title":"Morris","author":"Cox Russ","year":"2011","unstructured":"Russ Cox , M. Frans Kaashoek , and Robert T . Morris . 2011 . Xv6, a simple Unix-like teaching operating system. (February 2011). Retrieved August 1, 2014, from http:\/\/pdos.csail.mit.edu\/6.828\/xv6\/. Russ Cox, M. Frans Kaashoek, and Robert T. Morris. 2011. Xv6, a simple Unix-like teaching operating system. (February 2011). Retrieved August 1, 2014, from http:\/\/pdos.csail.mit.edu\/6.828\/xv6\/."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.5555\/1792734.1792766"},{"key":"e_1_2_1_26_1","unstructured":"Adam Dunkels and others. 2012. Lightweight IP. Retrieved August 1 2014 from http:\/\/savannah.nongnu.org\/projects\/lwip\/.  Adam Dunkels and others. 2012. Lightweight IP. Retrieved August 1 2014 from http:\/\/savannah.nongnu.org\/projects\/lwip\/."},{"key":"e_1_2_1_27_1","unstructured":"DWARF Debugging Information Format Committee. 2010. DWARF debugging information format version&nbsp;4. Retrieved from http:\/\/www.dwarfstd.org\/doc\/DWARF4.pdf.  DWARF Debugging Information Format Committee. 2010. DWARF debugging information format version&nbsp;4. Retrieved from http:\/\/www.dwarfstd.org\/doc\/DWARF4.pdf."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1281100.1281106"},{"key":"e_1_2_1_29_1","volume-title":"Proceedings of the BSDCan Conference","author":"Evans Jason","year":"2006","unstructured":"Jason Evans . 2006 . A scalable concurrent malloc (3) implementation for FreeBSD . In Proceedings of the BSDCan Conference . Ottawa, Canada. Jason Evans. 2006. A scalable concurrent malloc (3) implementation for FreeBSD. In Proceedings of the BSDCan Conference. Ottawa, Canada."},{"key":"e_1_2_1_30_1","volume-title":"Proceedings of the 3rd Symposium on Operating Systems Design and Implementation (OSDI\u201999)","author":"Gamsa Ben","year":"1999","unstructured":"Ben Gamsa , Orran Krieger , Jonathan Appavoo , and Michael Stumm . 1999 . Tornado: Maximizing locality and concurrency in a shared memory multiprocessor operating system . In Proceedings of the 3rd Symposium on Operating Systems Design and Implementation (OSDI\u201999) . 87--100. Ben Gamsa, Orran Krieger, Jonathan Appavoo, and Michael Stumm. 1999. Tornado: Maximizing locality and concurrency in a shared memory multiprocessor operating system. In Proceedings of the 3rd Symposium on Operating Systems Design and Implementation (OSDI\u201999). 87--100."},{"key":"e_1_2_1_31_1","unstructured":"Sanjay Ghemawat. 2007. TCMalloc: Thread-caching Malloc. Retrieved from http:\/\/gperftools.googlecode.com\/svn\/trunk\/doc\/tcmalloc.html.  Sanjay Ghemawat. 2007. TCMalloc: Thread-caching Malloc. Retrieved from http:\/\/gperftools.googlecode.com\/svn\/trunk\/doc\/tcmalloc.html."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065010.1065036"},{"key":"e_1_2_1_33_1","volume-title":"MESIF: A Two-Hop Cache Coherency Protocol for Point-to-Point Interconnects. Technical Report","author":"Goodman J. R.","year":"2009","unstructured":"J. R. Goodman and H. H. J. Hum . 2009 . MESIF: A Two-Hop Cache Coherency Protocol for Point-to-Point Interconnects. Technical Report . University of Auckland and Intel. J. R. Goodman and H. H. J. Hum. 2009. MESIF: A Two-Hop Cache Coherency Protocol for Point-to-Point Interconnects. Technical Report. University of Auckland and Intel."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/1345206.1345237"},{"key":"e_1_2_1_35_1","unstructured":"Maurice Herlihy and Nir Shavit. 2008. The Art of Multiprocessor Programming. Morgan Kaufmann.   Maurice Herlihy and Nir Shavit. 2008. The Art of Multiprocessor Programming. Morgan Kaufmann."},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/78969.78972"},{"key":"e_1_2_1_37_1","volume-title":"Linux Patch. Retrieved","author":"Howells David","year":"2014","unstructured":"David Howells . 2010. Extended File Stat Functions , Linux Patch. Retrieved August 1, 2014 , from https:\/\/lkml.org\/lkml\/2010\/7\/14\/539. David Howells. 2010. Extended File Stat Functions, Linux Patch. Retrieved August 1, 2014, from https:\/\/lkml.org\/lkml\/2010\/7\/14\/539."},{"key":"e_1_2_1_38_1","volume-title":"The Open Group base specifications issue 7","author":"IEEE (The Institute of Electrical and Electronics Engineers) and The Open Group. 2013.","year":"2013","unstructured":"IEEE (The Institute of Electrical and Electronics Engineers) and The Open Group. 2013. The Open Group base specifications issue 7 , 2013 edition (POSIX.1-2008\/Cor 1-2013). Retrieved from http:\/\/pubs.opengroup.org\/onlinepubs\/9699919799\/. IEEE (The Institute of Electrical and Electronics Engineers) and The Open Group. 2013. The Open Group base specifications issue 7, 2013 edition (POSIX.1-2008\/Cor 1-2013). Retrieved from http:\/\/pubs.opengroup.org\/onlinepubs\/9699919799\/."},{"key":"e_1_2_1_39_1","volume-title":"The ACPI Component Architecture Project. Retrieved","year":"2014","unstructured":"Intel. 2012. The ACPI Component Architecture Project. Retrieved August 1, 2014 , from http:\/\/www.acpica.org\/. Intel. 2012. The ACPI Component Architecture Project. Retrieved August 1, 2014, from http:\/\/www.acpica.org\/."},{"key":"e_1_2_1_40_1","volume-title":"Intel 64 and IA-32 Architectures Software Developer\u2019s Manual","unstructured":"Intel. 2013. Intel 64 and IA-32 Architectures Software Developer\u2019s Manual . Vol. 3 . Intel Corporation . Intel. 2013. Intel 64 and IA-32 Architectures Software Developer\u2019s Manual. Vol. 3. Intel Corporation."},{"key":"e_1_2_1_41_1","volume-title":"Information technology -- Programming languages -- C&plus;&plus;","author":"ISO.","unstructured":"ISO. 2011. ISO\/IEC 14882:2011(E) : Information technology -- Programming languages -- C&plus;&plus; . Geneva, Switzerland . ISO. 2011. ISO\/IEC 14882:2011(E): Information technology -- Programming languages -- C&plus;&plus;. Geneva, Switzerland."},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/197917.198079"},{"key":"e_1_2_1_43_1","volume-title":"Proceedings of the 14th International Workshop on the Implementation of Functional Languages.","author":"Koopman Pieter","year":"2002","unstructured":"Pieter Koopman , Artem Alimarine , Jan Tretmans , and Rinus Plasmeijer . 2002 . Gast: Generic automated software testing . In Proceedings of the 14th International Workshop on the Implementation of Functional Languages. Pieter Koopman, Artem Alimarine, Jan Tretmans, and Rinus Plasmeijer. 2002. Gast: Generic automated software testing. In Proceedings of the 14th International Workshop on the Implementation of Functional Languages."},{"key":"e_1_2_1_44_1","volume-title":"Gelato Conference. Retrieved","author":"Lameter Christoph","year":"2005","unstructured":"Christoph Lameter . 2005 . Effective synchronization on Linux\/NUMA systems . In Gelato Conference. Retrieved August 1, 2014, from http:\/\/lameter.com\/gelato2005.pdf. Christoph Lameter. 2005. Effective synchronization on Linux\/NUMA systems. In Gelato Conference. Retrieved August 1, 2014, from http:\/\/lameter.com\/gelato2005.pdf."},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/2349896.2349911"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1002\/(SICI)1097-024X(199903)29:3%3C219::AID-SPE230%3E3.0.CO;2-0"},{"key":"e_1_2_1_47_1","volume-title":"Concurrent Code and Expensive Instructions. Retrieved","author":"McKenney Paul E.","year":"2014","unstructured":"Paul E. McKenney . 2011. Concurrent Code and Expensive Instructions. Retrieved August 1, 2014 , from https:\/\/lwn.net\/Articles\/423994\/. Paul E. McKenney. 2011. Concurrent Code and Expensive Instructions. Retrieved August 1, 2014, from https:\/\/lwn.net\/Articles\/423994\/."},{"key":"e_1_2_1_48_1","volume-title":"Proceedings of the Linux Symposium.","author":"McKenney Paul E.","year":"2002","unstructured":"Paul E. McKenney , Dipankar Sarma , Andrea Arcangeli , Andi Kleen , Orran Krieger , and Rusty Russell . 2002 . Read-copy update . In Proceedings of the Linux Symposium. Paul E. McKenney, Dipankar Sarma, Andrea Arcangeli, Andi Kleen, Orran Krieger, and Rusty Russell. 2002. Read-copy update. In Proceedings of the Linux Symposium."},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/103727.103729"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/800015.808204"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993500"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/267959.269969"},{"key":"e_1_2_1_53_1","volume-title":"Proceedings of the 1st USENIX Workshop on Hot Topics in Parallelism.","author":"Roy Amitabha","year":"2009","unstructured":"Amitabha Roy , Steven Hand , and Tim Harris . 2009 . Exploring the limits of disjoint access parallelism . In Proceedings of the 1st USENIX Workshop on Hot Topics in Parallelism. Amitabha Roy, Steven Hand, and Tim Harris. 2009. Exploring the limits of disjoint access parallelism. In Proceedings of the 1st USENIX Workshop on Hot Topics in Parallelism."},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/1081706.1081750"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.5555\/2050613.2050642"},{"key":"e_1_2_1_56_1","volume-title":"Convergent and commutative replicated data types. Bulletin of the EATCS 104 (June","author":"Shapiro Marc","year":"2011","unstructured":"Marc Shapiro , Nuno Preguica , Carlos Baquero , and Marek Zawirski . 2011b. Convergent and commutative replicated data types. Bulletin of the EATCS 104 (June 2011 ), 67--88. Marc Shapiro, Nuno Preguica, Carlos Baquero, and Marek Zawirski. 2011b. Convergent and commutative replicated data types. Bulletin of the EATCS 104 (June 2011), 67--88."},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1145\/96709.96731"},{"key":"e_1_2_1_58_1","unstructured":"Super Micro Computer. 2012. X8OBN-F manual. Retrieved from http:\/\/www.supermicro.com\/manuals\/motherboard\/7500\/X8OBN-F.pdf.  Super Micro Computer. 2012. X8OBN-F manual. Retrieved from http:\/\/www.supermicro.com\/manuals\/motherboard\/7500\/X8OBN-F.pdf."},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/2076022.1993491"},{"key":"e_1_2_1_60_1","unstructured":"Tyan Computer Corporation. 2006a. M4985 manual. (2006).  Tyan Computer Corporation. 2006a. M4985 manual. (2006)."},{"key":"e_1_2_1_61_1","unstructured":"Tyan Computer Corporation. 2006b. S4985G3NR manual. (2006).  Tyan Computer Corporation. 2006b. S4985G3NR manual. (2006)."},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01245400"},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1109\/12.9728"},{"key":"e_1_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1145\/1531793.1531805"}],"container-title":["ACM Transactions on Computer Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2699681","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2699681","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T06:16:59Z","timestamp":1750227419000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2699681"}},"subtitle":["Designing Scalable Software for Multicore Processors"],"short-title":[],"issued":{"date-parts":[[2015,1,20]]},"references-count":61,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2015,1,20]]}},"alternative-id":["10.1145\/2699681"],"URL":"https:\/\/doi.org\/10.1145\/2699681","relation":{},"ISSN":["0734-2071","1557-7333"],"issn-type":[{"value":"0734-2071","type":"print"},{"value":"1557-7333","type":"electronic"}],"subject":[],"published":{"date-parts":[[2015,1,20]]},"assertion":[{"value":"2014-10-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2014-10-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2015-01-20","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}