Skip to content

Add Docker-based reproducible build; remove PuLP, solve ILPs with Gur…#2

Open
edwjchen wants to merge 1 commit into
masterfrom
docker-repro
Open

Add Docker-based reproducible build; remove PuLP, solve ILPs with Gur…#2
edwjchen wants to merge 1 commit into
masterfrom
docker-repro

Conversation

@edwjchen

Copy link
Copy Markdown
Collaborator

Reproducibility / Docker

  • Add Dockerfile (python:3.11-slim + build-essential, clang/lld, cmake, ninja, golang) and .dockerignore; non-root build via USER_ID/GROUP_ID.
  • Add scripts/reproduce.sh with quick/full/execute modes; execute runs a compiled MLIR through the Lattigo backend (plaintext or FHE).
  • Add scripts/setup_dependencies.sh to build the Dacapo/Hecate frontend and Lattigo backend on demand (keeps the image lean).
  • Add scripts/gurobi_license_sweep.sh to classify which benchmark configs fit the bundled size-limited Gurobi license vs. need a full license.
  • run_orbit.py: add --threads passthrough and propagate optimizer exit code.
  • .gitignore: ignore .deps/ and repro_results/.
  • README: Docker build/run instructions, solver/license notes, and the optional end-to-end execution + Dacapo data-gen flow.

Solver: drop PuLP/CBC, use Gurobi only

  • ilp_core.py: remove the PuLP code path (var pool, safe-name helpers, *_pulp builders, _solve_ilp_pulp) and solve ILPs directly with Gurobi.
  • Remove the --ilp-solver flag and ilp_solver param plumbing across optimizer.py, run_orbit.py, and params.py.
  • requirements.txt: drop pulp.
  • Tests: drop the PuLP-specific test, update CLI/param/integration tests to the Gurobi-only path.

…obi only

Reproducibility / Docker
- Add Dockerfile (python:3.11-slim + build-essential, clang/lld, cmake,
  ninja, golang) and .dockerignore; non-root build via USER_ID/GROUP_ID.
- Add scripts/reproduce.sh with quick/full/execute modes; execute runs a
  compiled MLIR through the Lattigo backend (plaintext or FHE).
- Add scripts/setup_dependencies.sh to build the Dacapo/Hecate frontend
  and Lattigo backend on demand (keeps the image lean).
- Add scripts/gurobi_license_sweep.sh to classify which benchmark configs
  fit the bundled size-limited Gurobi license vs. need a full license.
- run_orbit.py: add --threads passthrough and propagate optimizer exit code.
- .gitignore: ignore .deps/ and repro_results/.
- README: Docker build/run instructions, solver/license notes, and the
  optional end-to-end execution + Dacapo data-gen flow.

Solver: drop PuLP/CBC, use Gurobi only
- ilp_core.py: remove the PuLP code path (var pool, safe-name helpers,
  *_pulp builders, _solve_ilp_pulp) and solve ILPs directly with Gurobi.
- Remove the --ilp-solver flag and ilp_solver param plumbing across
  optimizer.py, run_orbit.py, and params.py.
- requirements.txt: drop pulp.
- Tests: drop the PuLP-specific test, update CLI/param/integration tests
  to the Gurobi-only path.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant