Skip to content

v0.3.0 - Fast Parallel Mode

Pre-release
Pre-release

Choose a tag to compare

@Rick-Wilson Rick-Wilson released this 07 Jan 20:55
· 296 commits to main since this release

Highlights

  • 5x+ faster than C dealer.exe with parallel execution
  • New xoshiro256++ RNG enables stateless deal generation
  • --legacy flag preserves dealer.exe compatibility

New Features

  • Fast parallel mode (default) with xoshiro256++ RNG
  • --legacy flag for dealer.exe-compatible single-threaded mode
  • deal-validator binary for validating deals against filters
  • Chained comparison support (a == b == c)
  • Positional input file argument
  • -g and -p can now be used together

Performance

Implementation Time Speedup
C dealer.exe 16.1s 1.0x (baseline)
Rust legacy 14.0s 1.15x
Rust fast (12 threads) 3.1s 5.2x
  • 3.9x speedup with 12 threads vs single-threaded
  • FxHashMap and reference-based evaluation (9.6x eval speedup)

Bug Fixes

  • Predeal parsing for suit-only holdings
  • Parser compatibility with dlr test suite
  • dealer.exe generate limit (10M) and average format (%g)

Usage

# Fast mode (default) - uses all CPU cores
dealer -p 1000 -s 42 filter.dlr

# Legacy mode - exact dealer.exe compatibility
dealer --legacy -p 1000 -s 42 filter.dlr

# Validate deals against filter
./dealer -p 100 -s 42 -f oneline filter.dlr | ./deal-validator filter.dlr

See CHANGELOG.md for full details.