{"id":21543327,"url":"https://github.com/marinoandrea/parallel-sudoku","last_synced_at":"2025-03-17T23:54:44.107Z","repository":{"id":110716783,"uuid":"191353953","full_name":"marinoandrea/parallel-sudoku","owner":"marinoandrea","description":"Parallel sudoku solver, computes every legal solution for a given grid.","archived":false,"fork":false,"pushed_at":"2019-06-11T11:04:10.000Z","size":118,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-24T08:43:54.511Z","etag":null,"topics":["backtracking","fork-join","java","multicore","parallelism","parallelization","speedup","sudoku","sudoku-solver"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marinoandrea.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-11T11:03:21.000Z","updated_at":"2019-06-11T11:18:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"d939cebe-62b5-40b8-be02-b51e784dbde9","html_url":"https://github.com/marinoandrea/parallel-sudoku","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marinoandrea%2Fparallel-sudoku","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marinoandrea%2Fparallel-sudoku/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marinoandrea%2Fparallel-sudoku/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marinoandrea%2Fparallel-sudoku/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marinoandrea","download_url":"https://codeload.github.com/marinoandrea/parallel-sudoku/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244130278,"owners_count":20402753,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backtracking","fork-join","java","multicore","parallelism","parallelization","speedup","sudoku","sudoku-solver"],"created_at":"2024-11-24T05:13:56.782Z","updated_at":"2025-03-17T23:54:44.099Z","avatar_url":"https://github.com/marinoandrea.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Parallel Sudoku\n\nThis is a java implementation of a parallel sudoku solver (it computes every possible solution) based on the fork-join paradigm. It also includes a sequential backtracking implementation in order to make benchmarking and speed-up analysis possible.\n\nThe program takes text files representing a sudoku grid as input:\n\n    .....2...\n    ..4...75.\n    73.9..6..\n    3.5..8...\n    .6.1...85\n    ..92.....\n    .9..4.26.\n    2.....17.\n    ...3.....\n\nAnd outputs in the following order:\n\n- The solution space\n- The completion percentage of the input grid\n- The number of possible solutions to the sudoku\n\nSome benchmark graphs:\n\n![Execution time vs Solution space](/benchmarks/time_space.png)\n![Speedup vs Number of processors](/benchmarks/speedup.png)\n\n# Usage\n\nCompile the main class as follows:\n\n    javac Sudoku.java\n\nRun any test by passing a text file in the specified format as parameter:\n\n    java Sudoku $(PATH_TO_FILE)\n\nOr use the grader.sh bash script to test the algorithm on any file present in the tests folder:\n\n    ./grader.sh\n\n# Features\n\n- Fork-Join parallelization\n- Sequential cutoff optimization\n- Thread-halving optimization\n- Bit masks optimization on candidates selection\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarinoandrea%2Fparallel-sudoku","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarinoandrea%2Fparallel-sudoku","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarinoandrea%2Fparallel-sudoku/lists"}