{"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/hogwild-a-lock-free-approach-to-parallelizing","title":"HOGWILD!: A Lock-Free Approach to Parallelizing Stochastic Gradient Descent","arxiv_id":"1106.5730","date":"2011-06-28","proceeding":null,"authors":["Feng Niu","Benjamin Recht","Christopher Re","Stephen J. Wright"],"abstract":"Stochastic Gradient Descent (SGD) is a popular algorithm that can achieve\nstate-of-the-art performance on a variety of machine learning tasks. Several\nresearchers have recently proposed schemes to parallelize SGD, but all require\nperformance-destroying memory locking and synchronization. This work aims to\nshow using novel theoretical analysis, algorithms, and implementation that SGD\ncan be implemented without any locking. We present an update scheme called\nHOGWILD! which allows processors access to shared memory with the possibility\nof overwriting each other's work. We show that when the associated optimization\nproblem is sparse, meaning most gradient updates only modify small parts of the\ndecision variable, then HOGWILD! achieves a nearly optimal rate of convergence.\nWe demonstrate experimentally that HOGWILD! outperforms alternative schemes\nthat use locking by an order of magnitude.","url_abs":"http://arxiv.org/abs/1106.5730v2","url_pdf":"http://arxiv.org/pdf/1106.5730v2.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":"hogwild-a-lock-free-approach-to-parallelizing","repo_url":"https://github.com/ElizaWszola/HTHC","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"hogwild-a-lock-free-approach-to-parallelizing","repo_url":"https://github.com/dmmiller612/sparktorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"hogwild-a-lock-free-approach-to-parallelizing","repo_url":"https://github.com/lifeomic/sparkflow","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"hogwild-a-lock-free-approach-to-parallelizing","repo_url":"https://github.com/maxpumperla/elephas","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"hogwild-a-lock-free-approach-to-parallelizing","repo_url":"https://github.com/yongsheng268/sparkflow","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[{"method_slug":"sgd","method_name":"SGD"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1106.5730","atlas_url":"https://app.syntology.ai/?focus=1106.5730","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1106.5730"}},"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/yongsheng268/sparkflow","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/maxpumperla/elephas","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/lifeomic/sparkflow","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ElizaWszola/HTHC","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/dmmiller612/sparktorch","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":24},"by_repo_kind":{"listed":{"samples":24,"ran":0,"repositories":3}},"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":"5845a9f358c1aebd","entry":"add_params","repo":"maxpumperla/elephas","repo_kind":"listed","path":"elephas/utils/functional_utils.py","file_url":"https://github.com/maxpumperla/elephas/blob/HEAD/elephas/utils/functional_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5845a9f358c1aebd"}},{"code_sha256_prefix":"26266f994d9c5ab4","entry":"as_enum","repo":"maxpumperla/elephas","repo_kind":"listed","path":"elephas/utils/model_utils.py","file_url":"https://github.com/maxpumperla/elephas/blob/HEAD/elephas/utils/model_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"26266f994d9c5ab4"}},{"code_sha256_prefix":"f1d06b5ecd11b217","entry":"build_adam_config","repo":"lifeomic/sparkflow","repo_kind":"listed","path":"sparkflow/graph_utils.py","file_url":"https://github.com/lifeomic/sparkflow/blob/HEAD/sparkflow/graph_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f1d06b5ecd11b217"}},{"code_sha256_prefix":"de19052b4807c568","entry":"build_graph","repo":"lifeomic/sparkflow","repo_kind":"listed","path":"sparkflow/graph_utils.py","file_url":"https://github.com/lifeomic/sparkflow/blob/HEAD/sparkflow/graph_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"de19052b4807c568"}},{"code_sha256_prefix":"65ad80c13f16808e","entry":"build_optimizer","repo":"lifeomic/sparkflow","repo_kind":"listed","path":"sparkflow/tensorflow_async.py","file_url":"https://github.com/lifeomic/sparkflow/blob/HEAD/sparkflow/tensorflow_async.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"65ad80c13f16808e"}},{"code_sha256_prefix":"6931025bf1d0e11b","entry":"build_rmsprop_config","repo":"lifeomic/sparkflow","repo_kind":"listed","path":"sparkflow/graph_utils.py","file_url":"https://github.com/lifeomic/sparkflow/blob/HEAD/sparkflow/graph_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6931025bf1d0e11b"}},{"code_sha256_prefix":"b665a4bab47422a1","entry":"convert_json_to_weights","repo":"lifeomic/sparkflow","repo_kind":"listed","path":"sparkflow/ml_util.py","file_url":"https://github.com/lifeomic/sparkflow/blob/HEAD/sparkflow/ml_util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b665a4bab47422a1"}},{"code_sha256_prefix":"f7af48c85d7f2b6e","entry":"convert_to_serialized_torch","repo":"dmmiller612/sparktorch","repo_kind":"listed","path":"sparktorch/inference.py","file_url":"https://github.com/dmmiller612/sparktorch/blob/HEAD/sparktorch/inference.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f7af48c85d7f2b6e"}},{"code_sha256_prefix":"2fc09059ad3fca01","entry":"convert_weights_to_json","repo":"lifeomic/sparkflow","repo_kind":"listed","path":"sparkflow/ml_util.py","file_url":"https://github.com/lifeomic/sparkflow/blob/HEAD/sparkflow/ml_util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2fc09059ad3fca01"}},{"code_sha256_prefix":"2712866b8caee6bd","entry":"from_matrix","repo":"maxpumperla/elephas","repo_kind":"listed","path":"elephas/mllib/adapter.py","file_url":"https://github.com/maxpumperla/elephas/blob/HEAD/elephas/mllib/adapter.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2712866b8caee6bd"}},{"code_sha256_prefix":"80ae39b85048fd6f","entry":"from_vector","repo":"maxpumperla/elephas","repo_kind":"listed","path":"elephas/mllib/adapter.py","file_url":"https://github.com/maxpumperla/elephas/blob/HEAD/elephas/mllib/adapter.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"80ae39b85048fd6f"}},{"code_sha256_prefix":"60068090f95c632a","entry":"get_main","repo":"dmmiller612/sparktorch","repo_kind":"listed","path":"sparktorch/hogwild.py","file_url":"https://github.com/dmmiller612/sparktorch/blob/HEAD/sparktorch/hogwild.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"60068090f95c632a"}},{"code_sha256_prefix":"dabcb1f56c2aeec4","entry":"get_neutral","repo":"maxpumperla/elephas","repo_kind":"listed","path":"elephas/utils/functional_utils.py","file_url":"https://github.com/maxpumperla/elephas/blob/HEAD/elephas/utils/functional_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dabcb1f56c2aeec4"}},{"code_sha256_prefix":"a17f3090c2ef6a4c","entry":"get_server_weights","repo":"lifeomic/sparkflow","repo_kind":"listed","path":"sparkflow/HogwildSparkModel.py","file_url":"https://github.com/lifeomic/sparkflow/blob/HEAD/sparkflow/HogwildSparkModel.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a17f3090c2ef6a4c"}},{"code_sha256_prefix":"1146a0a7466202aa","entry":"get_state_dict","repo":"dmmiller612/sparktorch","repo_kind":"listed","path":"sparktorch/hogwild.py","file_url":"https://github.com/dmmiller612/sparktorch/blob/HEAD/sparktorch/hogwild.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1146a0a7466202aa"}},{"code_sha256_prefix":"2f23661733396fbf","entry":"handle_data","repo":"lifeomic/sparkflow","repo_kind":"listed","path":"sparkflow/tensorflow_async.py","file_url":"https://github.com/lifeomic/sparkflow/blob/HEAD/sparkflow/tensorflow_async.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2f23661733396fbf"}},{"code_sha256_prefix":"1bdf839eca414ecc","entry":"handle_features","repo":"dmmiller612/sparktorch","repo_kind":"listed","path":"sparktorch/util.py","file_url":"https://github.com/dmmiller612/sparktorch/blob/HEAD/sparktorch/util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1bdf839eca414ecc"}},{"code_sha256_prefix":"9d11d280b0167a20","entry":"load_byte_array","repo":"dmmiller612/sparktorch","repo_kind":"listed","path":"sparktorch/pipeline_util.py","file_url":"https://github.com/dmmiller612/sparktorch/blob/HEAD/sparktorch/pipeline_util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9d11d280b0167a20"}},{"code_sha256_prefix":"3974c66cb4e0844e","entry":"load_byte_array","repo":"lifeomic/sparkflow","repo_kind":"listed","path":"sparkflow/pipeline_util.py","file_url":"https://github.com/lifeomic/sparkflow/blob/HEAD/sparkflow/pipeline_util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3974c66cb4e0844e"}},{"code_sha256_prefix":"4afd4babdb245f0e","entry":"put_early_stop","repo":"dmmiller612/sparktorch","repo_kind":"listed","path":"sparktorch/hogwild.py","file_url":"https://github.com/dmmiller612/sparktorch/blob/HEAD/sparktorch/hogwild.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4afd4babdb245f0e"}},{"code_sha256_prefix":"2bd77115365b2003","entry":"subtract_params","repo":"maxpumperla/elephas","repo_kind":"listed","path":"elephas/utils/functional_utils.py","file_url":"https://github.com/maxpumperla/elephas/blob/HEAD/elephas/utils/functional_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2bd77115365b2003"}},{"code_sha256_prefix":"39f1bc951fa89a77","entry":"tensorflow_get_weights","repo":"lifeomic/sparkflow","repo_kind":"listed","path":"sparkflow/ml_util.py","file_url":"https://github.com/lifeomic/sparkflow/blob/HEAD/sparkflow/ml_util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"39f1bc951fa89a77"}},{"code_sha256_prefix":"e4fd2bc4dbc289b1","entry":"torch_decoder","repo":"dmmiller612/sparktorch","repo_kind":"listed","path":"sparktorch/util.py","file_url":"https://github.com/dmmiller612/sparktorch/blob/HEAD/sparktorch/util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e4fd2bc4dbc289b1"}},{"code_sha256_prefix":"899235f37bc817b4","entry":"torch_encoder","repo":"dmmiller612/sparktorch","repo_kind":"listed","path":"sparktorch/util.py","file_url":"https://github.com/dmmiller612/sparktorch/blob/HEAD/sparktorch/util.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"899235f37bc817b4"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}