{"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/marina-faster-non-convex-distributed-learning","title":"MARINA: Faster Non-Convex Distributed Learning with Compression","arxiv_id":"2102.07845","date":"2021-02-15","proceeding":null,"authors":["Eduard Gorbunov","Konstantin Burlachenko","Zhize Li","Peter Richtárik"],"abstract":"We develop and analyze MARINA: a new communication efficient method for non-convex distributed learning over heterogeneous datasets. MARINA employs a novel communication compression strategy based on the compression of gradient differences that is reminiscent of but different from the strategy employed in the DIANA method of Mishchenko et al. (2019). Unlike virtually all competing distributed first-order methods, including DIANA, ours is based on a carefully designed biased gradient estimator, which is the key to its superior theoretical and practical performance. The communication complexity bounds we prove for MARINA are evidently better than those of all previous first-order methods. Further, we develop and analyze two variants of MARINA: VR-MARINA and PP-MARINA. The first method is designed for the case when the local loss functions owned by clients are either of a finite sum or of an expectation form, and the second method allows for a partial participation of clients -- a feature important in federated learning. All our methods are superior to previous state-of-the-art methods in terms of oracle/communication complexity. Finally, we provide a convergence analysis of all methods for problems satisfying the Polyak-Lojasiewicz condition.","url_abs":"https://arxiv.org/abs/2102.07845v3","url_pdf":"https://arxiv.org/pdf/2102.07845v3.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":"marina-faster-non-convex-distributed-learning","repo_url":"https://github.com/burlachenkok/marina","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"all","task_name":"All"},{"task_slug":"federated-learning","task_name":"Federated Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2102.07845","atlas_url":"https://app.syntology.ai/?focus=2102.07845","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2102.07845"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/burlachenkok/marina","reach":null}],"summary":{"ran_fixture":1,"ran_honours":4,"unverified":6},"by_repo_kind":{"official":{"samples":11,"ran":5,"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":11,"samples":[{"code_sha256_prefix":"5d88082f8cfcda98","entry":"get_subset","repo":"burlachenkok/marina","repo_kind":"official","path":"linear_model_with_non_convex_loss/experiment_no_vr_all.py","file_url":"https://github.com/burlachenkok/marina/blob/HEAD/linear_model_with_non_convex_loss/experiment_no_vr_all.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":2,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5d88082f8cfcda98"}},{"code_sha256_prefix":"d730ae609b56c683","entry":"mult_param","repo":"burlachenkok/marina","repo_kind":"official","path":"neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","file_url":"https://github.com/burlachenkok/marina/blob/HEAD/neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":2,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d730ae609b56c683"}},{"code_sha256_prefix":"97a92c5fc758942a","entry":"add_params","repo":"burlachenkok/marina","repo_kind":"official","path":"neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","file_url":"https://github.com/burlachenkok/marina/blob/HEAD/neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"97a92c5fc758942a"}},{"code_sha256_prefix":"dfc46b3f6fd6b16a","entry":"lossFunction","repo":"burlachenkok/marina","repo_kind":"official","path":"linear_model_with_non_convex_loss/experiment_no_vr_all.py","file_url":"https://github.com/burlachenkok/marina/blob/HEAD/linear_model_with_non_convex_loss/experiment_no_vr_all.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"dfc46b3f6fd6b16a"}},{"code_sha256_prefix":"021d9e3a3d209042","entry":"sub_params","repo":"burlachenkok/marina","repo_kind":"official","path":"neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","file_url":"https://github.com/burlachenkok/marina/blob/HEAD/neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"021d9e3a3d209042"}},{"code_sha256_prefix":"744af78738186c71","entry":"WorkerThreadMarina","repo":"burlachenkok/marina","repo_kind":"official","path":"neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","file_url":"https://github.com/burlachenkok/marina/blob/HEAD/neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"744af78738186c71"}},{"code_sha256_prefix":"2204368e032e2665","entry":"dbgprint","repo":"burlachenkok/marina","repo_kind":"official","path":"neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","file_url":"https://github.com/burlachenkok/marina/blob/HEAD/neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2204368e032e2665"}},{"code_sha256_prefix":"850a622da634e395","entry":"getModel","repo":"burlachenkok/marina","repo_kind":"official","path":"neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","file_url":"https://github.com/burlachenkok/marina/blob/HEAD/neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"850a622da634e395"}},{"code_sha256_prefix":"1f3d1c89c573589e","entry":"setupAllParamsRandomly","repo":"burlachenkok/marina","repo_kind":"official","path":"neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","file_url":"https://github.com/burlachenkok/marina/blob/HEAD/neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1f3d1c89c573589e"}},{"code_sha256_prefix":"d696629bd72d3efc","entry":"setupToZeroAllParams","repo":"burlachenkok/marina","repo_kind":"official","path":"neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","file_url":"https://github.com/burlachenkok/marina/blob/HEAD/neural_nets_experiments/nn_experiments_parallel_vr_marina_100K.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d696629bd72d3efc"}},{"code_sha256_prefix":"8c52793b16b1ef5d","entry":"zeroOneLoss","repo":"burlachenkok/marina","repo_kind":"official","path":"linear_model_with_non_convex_loss/experiment_no_vr_all.py","file_url":"https://github.com/burlachenkok/marina/blob/HEAD/linear_model_with_non_convex_loss/experiment_no_vr_all.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8c52793b16b1ef5d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}