{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/matcha-speeding-up-decentralized-sgd-via","title":"MATCHA: Speeding Up Decentralized SGD via Matching Decomposition Sampling","arxiv_id":"1905.09435","date":"2019-05-23","proceeding":null,"authors":["Jianyu Wang","Anit Kumar Sahu","Zhouyi Yang","Gauri Joshi","Soummya Kar"],"abstract":"This paper studies the problem of error-runtime trade-off, typically encountered in decentralized training based on stochastic gradient descent (SGD) using a given network. While a denser (sparser) network topology results in faster (slower) error convergence in terms of iterations, it incurs more (less) communication time/delay per iteration. In this paper, we propose MATCHA, an algorithm that can achieve a win-win in this error-runtime trade-off for any arbitrary network topology. The main idea of MATCHA is to parallelize inter-node communication by decomposing the topology into matchings. To preserve fast error convergence speed, it identifies and communicates more frequently over critical links, and saves communication time by using other links less frequently. Experiments on a suite of datasets and deep neural networks validate the theoretical analyses and demonstrate that MATCHA takes up to $5\\times$ less time than vanilla decentralized SGD to reach the same training loss.","url_abs":"https://arxiv.org/abs/1905.09435v3","url_pdf":"https://arxiv.org/pdf/1905.09435v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"matcha-speeding-up-decentralized-sgd-via","repo_url":"https://github.com/JYWa/MATCHA","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"matcha-speeding-up-decentralized-sgd-via","repo_url":"https://github.com/makgyver/gossipy","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"matcha-speeding-up-decentralized-sgd-via","repo_url":"https://github.com/ricky-ma/DecentralizedRL","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"matcha-speeding-up-decentralized-sgd-via","repo_url":"https://github.com/ricky-ma/MATCHA","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}}],"tasks":[],"methods":[{"method_slug":"sgd","method_name":"SGD"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1905.09435","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1905.09435"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ricky-ma/MATCHA","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/makgyver/gossipy","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/JYWa/MATCHA","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ricky-ma/DecentralizedRL","reach":{"status":"ok"}}],"summary":{"unverified":3},"by_repo_kind":{"listed":{"samples":3,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"d497230d39571176","entry":"choice_not_n","repo":"makgyver/gossipy","repo_kind":"listed","path":"gossipy/utils.py","file_url":"https://github.com/makgyver/gossipy/blob/HEAD/gossipy/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d497230d39571176"}},{"code_sha256_prefix":"a76ac98ae309fa51","entry":"download_and_unzip","repo":"makgyver/gossipy","repo_kind":"listed","path":"gossipy/utils.py","file_url":"https://github.com/makgyver/gossipy/blob/HEAD/gossipy/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a76ac98ae309fa51"}},{"code_sha256_prefix":"d078ff699ab7c4c6","entry":"torch_models_eq","repo":"makgyver/gossipy","repo_kind":"listed","path":"gossipy/utils.py","file_url":"https://github.com/makgyver/gossipy/blob/HEAD/gossipy/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d078ff699ab7c4c6"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}