The scalable commutativity rule: designing scalable software for multicore processors

What fundamental opportunities for scalability are latent in interfaces, such as system call APIs? Can scalability opportunities be identified even before any implementation exists, simply by considering interface specifications? To answer these questions this paper introduces the following rule: Wh...

Full description

Bibliographic Details
Main Authors: Clements, Austin T., Kaashoek, M. Frans, Zeldovich, Nickolai, Morris, Robert Tappan, Kohler, Edward W.
Other Authors: Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Format: Article
Language:en_US
Published: Association for Computing Machinery 2014
Online Access:http://hdl.handle.net/1721.1/86882
https://orcid.org/0000-0003-0238-2703
https://orcid.org/0000-0001-7098-586X
https://orcid.org/0000-0003-2700-9286
_version_ 1826211029924708352
author Clements, Austin T.
Kaashoek, M. Frans
Zeldovich, Nickolai
Morris, Robert Tappan
Kohler, Edward W.
author2 Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
author_facet Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Clements, Austin T.
Kaashoek, M. Frans
Zeldovich, Nickolai
Morris, Robert Tappan
Kohler, Edward W.
author_sort Clements, Austin T.
collection MIT
description What fundamental opportunities for scalability are latent in interfaces, such as system call APIs? Can scalability opportunities be identified even before any implementation exists, simply by considering interface specifications? To answer these questions this paper introduces the following rule: Whenever interface operations commute, they can be implemented in a way that scales. This rule aids developers in building more scalable software starting from interface design and carrying on through implementation, testing, and evaluation. To help developers apply the rule, a new tool named Commuter accepts high-level interface models and generates tests of operations that commute and hence could scale. Using these tests, Commuter can evaluate the scalability of an implementation. We apply Commuter to 18 POSIX calls and use the results to guide the implementation of a new research operating system kernel called sv6. Linux scales for 68% of the 13,664 tests generated by Commuter for these calls, and Commuter finds many problems that have been observed to limit application scalability. sv6 scales for 99% of the tests.
first_indexed 2024-09-23T14:59:27Z
format Article
id mit-1721.1/86882
institution Massachusetts Institute of Technology
language en_US
last_indexed 2024-09-23T14:59:27Z
publishDate 2014
publisher Association for Computing Machinery
record_format dspace
spelling mit-1721.1/868822022-10-01T23:46:49Z The scalable commutativity rule: designing scalable software for multicore processors Clements, Austin T. Kaashoek, M. Frans Zeldovich, Nickolai Morris, Robert Tappan Kohler, Edward W. Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science Clements, Austin T. Kaashoek, M. Frans Zeldovich, Nickolai Morris, Robert Tappan What fundamental opportunities for scalability are latent in interfaces, such as system call APIs? Can scalability opportunities be identified even before any implementation exists, simply by considering interface specifications? To answer these questions this paper introduces the following rule: Whenever interface operations commute, they can be implemented in a way that scales. This rule aids developers in building more scalable software starting from interface design and carrying on through implementation, testing, and evaluation. To help developers apply the rule, a new tool named Commuter accepts high-level interface models and generates tests of operations that commute and hence could scale. Using these tests, Commuter can evaluate the scalability of an implementation. We apply Commuter to 18 POSIX calls and use the results to guide the implementation of a new research operating system kernel called sv6. Linux scales for 68% of the 13,664 tests generated by Commuter for these calls, and Commuter finds many problems that have been observed to limit application scalability. sv6 scales for 99% of the tests. National Science Foundation (U.S.) (NSF award SHF-964106) National Science Foundation (U.S.) (NSF award CNS-1301934) Alfred P. Sloan Foundation (Fellowship) Microsoft Research (New Faculty Fellowship) 2014-05-08T19:49:11Z 2014-05-08T19:49:11Z 2013 Article http://purl.org/eprint/type/ConferencePaper 9781450323888 http://hdl.handle.net/1721.1/86882 Clements, Austin T., M. Frans Kaashoek, Nickolai Zeldovich, Robert T. Morris, and Eddie Kohler. “The Scalable Commutativity Rule: designing scalable software for multicore processors.” Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles - SOSP ’13 (2013). Nov. 3–6, 2013, Farmington, Pennsylvania, USA. p.2-17. https://orcid.org/0000-0003-0238-2703 https://orcid.org/0000-0001-7098-586X https://orcid.org/0000-0003-2700-9286 en_US http://dx.doi.org/10.1145/2517349.2522712 Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles - SOSP '13 Creative Commons Attribution-Noncommercial-Share Alike http://creativecommons.org/licenses/by-nc-sa/4.0/ application/pdf Association for Computing Machinery MIT web domain
spellingShingle Clements, Austin T.
Kaashoek, M. Frans
Zeldovich, Nickolai
Morris, Robert Tappan
Kohler, Edward W.
The scalable commutativity rule: designing scalable software for multicore processors
title The scalable commutativity rule: designing scalable software for multicore processors
title_full The scalable commutativity rule: designing scalable software for multicore processors
title_fullStr The scalable commutativity rule: designing scalable software for multicore processors
title_full_unstemmed The scalable commutativity rule: designing scalable software for multicore processors
title_short The scalable commutativity rule: designing scalable software for multicore processors
title_sort scalable commutativity rule designing scalable software for multicore processors
url http://hdl.handle.net/1721.1/86882
https://orcid.org/0000-0003-0238-2703
https://orcid.org/0000-0001-7098-586X
https://orcid.org/0000-0003-2700-9286
work_keys_str_mv AT clementsaustint thescalablecommutativityruledesigningscalablesoftwareformulticoreprocessors
AT kaashoekmfrans thescalablecommutativityruledesigningscalablesoftwareformulticoreprocessors
AT zeldovichnickolai thescalablecommutativityruledesigningscalablesoftwareformulticoreprocessors
AT morrisroberttappan thescalablecommutativityruledesigningscalablesoftwareformulticoreprocessors
AT kohleredwardw thescalablecommutativityruledesigningscalablesoftwareformulticoreprocessors
AT clementsaustint scalablecommutativityruledesigningscalablesoftwareformulticoreprocessors
AT kaashoekmfrans scalablecommutativityruledesigningscalablesoftwareformulticoreprocessors
AT zeldovichnickolai scalablecommutativityruledesigningscalablesoftwareformulticoreprocessors
AT morrisroberttappan scalablecommutativityruledesigningscalablesoftwareformulticoreprocessors
AT kohleredwardw scalablecommutativityruledesigningscalablesoftwareformulticoreprocessors