{"id":47918973,"url":"https://github.com/samth/parbench","last_synced_at":"2026-04-04T05:50:23.338Z","repository":{"id":318710922,"uuid":"1071790109","full_name":"samth/parbench","owner":"samth","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-21T21:24:46.000Z","size":529,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-31T12:42:50.232Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Racket","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-10-07T20:17:16.000Z","updated_at":"2026-01-21T21:24:49.000Z","dependencies_parsed_at":"2025-10-10T13:38:26.253Z","dependency_job_id":"47f942f5-6501-419c-86e3-62b9b439347e","html_url":"https://github.com/samth/parbench","commit_stats":null,"previous_names":["samth/parbench"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/samth/parbench","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samth%2Fparbench","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samth%2Fparbench/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samth%2Fparbench/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samth%2Fparbench/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samth","download_url":"https://codeload.github.com/samth/parbench/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samth%2Fparbench/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31389391,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T04:26:24.776Z","status":"ssl_error","status_checked_at":"2026-04-04T04:23:34.147Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-04-04T05:50:22.612Z","updated_at":"2026-04-04T05:50:23.325Z","avatar_url":"https://github.com/samth.png","language":"Racket","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Parallel Benchmark Suite\n\nA comprehensive benchmarking suite for evaluating parallel performance in Racket.\n\n[![CI](https://github.com/samth/parbench/actions/workflows/ci.yml/badge.svg)](https://github.com/samth/parbench/actions/workflows/ci.yml)\n[![Racket Package](https://img.shields.io/badge/raco%20pkg-parbench-blue)](https://pkgs.racket-lang.org/package/parbench)\n[![Documentation](https://img.shields.io/badge/docs-racket--lang.org-blue)](https://docs.racket-lang.org/parbench/)\n\n## Installation\n\nInstall from the Racket package catalog:\n\n```bash\nraco pkg install parbench\n```\n\nOr install from source:\n\n```bash\ngit clone https://github.com/samth/parbench.git\ncd parbench\nraco pkg install --link .\n```\n\nAfter installation, use `raco parbench` to run benchmarks.\n\n**Documentation:** [docs.racket-lang.org/parbench](https://docs.racket-lang.org/parbench/)\n\n## Quick Start\n\n```bash\n# Run a benchmark (prints summary table)\n./bench fib\n\n# Run specific suite\n./bench mpl          # 27 MPL parallel benchmarks\n./bench shootout     # 6 Shootout benchmarks\n./bench racket       # 3 Racket benchmarks\n\n# Quick smoke test (3 iterations)\n./bench --quick\n\n# Verbose output\n./bench -v fib\n\n# Save results to log files\n./bench --save fib\n\n# Save logs and generate HTML report\n./bench --html fib\n\n# Set number of iterations\n./bench --iterations 5 fib\n\n# Scale problem sizes (for quick testing)\n./bench --work 0.1 fib       # 10% of normal size\n./bench --work 0.001 fib     # Very small for smoke tests\n\n# Specific core counts\n./bench --cores 1,4,8\n./bench mpl --cores 1-8\n\n# View options\n./bench --help\n./bench --list\n```\n\nBy default, `./bench` runs quietly and prints a summary table without saving files.\nUse `--save` to save log files or `--html` to also generate HTML reports.\n\nAfter installing the package, `raco parbench` accepts all the same arguments.\n\n### Example Output\n\n```\n$ ./bench --quick fib\nParbench (quick mode)\n\nRunning mpl benchmarks...\n  fib\n\n========================================\n  Results Summary\n========================================\n\n                              seq                  1 workers               4 workers\nBenchmark               mean/median/min         mean/median/min         mean/median/min\n--------------------------------------------------------------------------------------------\nfib                     785.0/788.0/764         798.0/797.0/795         216.0/217.0/209\n```\n\n## Benchmark Suites\n\n| Suite | Benchmarks | Description |\n|-------|------------|-------------|\n| **mpl** | 27 | Graph algorithms, sorting, numeric, text processing |\n| **shootout** | 6 | Classic language benchmark game workloads |\n| **racket** | 3 | Boyer-Moore, Richards, synthetic workloads |\n\n### MPL Benchmarks (27)\nGraph: bfs, mis, msf, connectivity, triangle-count, centrality, convex-hull\nSorting: integer-sort, merge-sort, samplesort, suffix-array\nNumeric: histogram, primes, fib, nqueens, mcss, subset-sum, bignum-add\nText: tokens, word-count, grep, dedup, palindrome, parens\nOther: flatten, collect, shuffle\n\n### Shootout Benchmarks (6)\nbinary-trees, spectral-norm, fannkuch-redux, mandelbrot, k-nucleotide, regex-dna\n\n### Racket Benchmarks (3)\nbmbench (Boyer-Moore majority), richards (OS simulator), rows1b (data processing)\n\n## Requirements\n\n- Racket 9.0+\n- 4+ CPU cores recommended\n- Linux or macOS (Windows via WSL)\n\n## Running Individual Benchmarks\n\n```bash\n# Run a single benchmark directly\nracket benchmarks/mpl/fib.rkt --n 42 --workers 4 --repeat 3\n\n# With logging\nracket benchmarks/mpl/histogram.rkt --n 10000000 --workers 8 --log results/hist.sexp\n```\n\n## Analyzing Results\n\n```bash\n# Summarize log files\nracket benchmarks/tools/summarize-results.rkt results/*.sexp\n\n# Generate plots\nracket benchmarks/tools/plot-results.rkt --input results/*.sexp --output plot.png\n```\n\n## Testing\n\n```bash\nraco test tests/\n```\n\n## Documentation\n\n- **[Online Documentation](https://docs.racket-lang.org/parbench/)** - Full reference on docs.racket-lang.org\n- **[BENCHMARKS.md](BENCHMARKS.md)** - Detailed usage guide and CLI reference\n- **[docs/PERFORMANCE.md](docs/PERFORMANCE.md)** - Performance analysis and findings\n\n## Repository Structure\n\n```\nbench                 # Unified benchmark runner\nrun-*-benchmarks.rkt  # Suite-specific runners\nbenchmarks/\n  common/             # Shared CLI, logging infrastructure\n  mpl/                # MPL parallel algorithms (27)\n  shootout/           # Shootout benchmarks (6)\n  racket/             # Racket benchmarks (3)\n  tools/              # Analysis and visualization\n  config/             # Configuration files\ntests/                # RackUnit test suite\ndocs/                 # Additional documentation and analysis\n```\n\n## License\n\nApache 2.0 or MIT, at your option. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamth%2Fparbench","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamth%2Fparbench","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamth%2Fparbench/lists"}