Skip to content

Commit 287ac31

Browse files
committed
Use correct num PEXECS by default
1 parent feda2a3 commit 287ac31

File tree

3 files changed

+66
-48
lines changed

3 files changed

+66
-48
lines changed

.dockerignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
venv/
1+
.venv/
22
**/.git/
33
results/
44
plots/
55
artefacts/
66
src/
77
!src/parserbench
8-
!artefacts/prebuilt

Dockerfile

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,23 @@
11
# Use BuildKit features
22
# syntax=docker/dockerfile:1.4
33

4+
ARG PEXECS=1
5+
ARG EXPERIMENTS
6+
ARG SUITES
7+
ARG MEASUREMENTS
8+
49
FROM debian:latest as base
510

611
FROM base as build
712
WORKDIR /app
813

9-
ARG BUILD_QUICK=false
14+
ARG FULL
1015
ARG PEXECS
1116
ARG EXPERIMENTS
1217
ARG SUITES
1318
ARG MEASUREMENTS
1419

15-
ENV BUILD_QUICK=$BUILD_QUICK
20+
ENV FULL=$FULL
1621
ENV PEXECS=$PEXECS
1722
ENV EXPERIMENTS=$EXPERIMENTS
1823
ENV SUITES=$SUITES
@@ -27,7 +32,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
2732
libdwarf-dev libunwind-dev libboost-dev libboost-iostreams-dev \
2833
libboost-all-dev libboost-program-options-dev libboost-regex-dev zlib1g-dev zstd libelf-dev elfutils \
2934
libdw-dev pkg-config libssl-dev zlib1g-dev libzstd-dev liblzma-dev \
30-
libffi-dev libedit-dev llvm-dev clang procps autotools-dev \
35+
libffi-dev libedit-dev llvm-dev clang procps autotools-dev xz-utils \
3136
gperf bison flex xvfb
3237

3338
# Set Python 3.11 as default
@@ -51,22 +56,36 @@ RUN --mount=type=cache,target=/root/.cache/pip \
5156
pip install --upgrade pip --break-system-packages && \
5257
pip install .[dev] --break-system-packages
5358

54-
RUN mkdir -p /app/artefacts
55-
5659
COPY . .
5760

58-
RUN if [ "$BUILD_QUICK" = "false" ]; then \
59-
invoke build-alloy $EXPERIMENTS $MEASUREMENTS; \
60-
else \
61-
echo "Using prebuilt binaries"; \
62-
cp -r ./artefacts/prebuilt /app/artefacts/; \
61+
RUN mkdir -p /app/artefacts
62+
63+
RUN --mount=type=cache,target=/cache \
64+
if [ "$FULL" = "false" ]; then \
65+
./fetch_binaries.sh --out-dir /cache && \
66+
cp -r /cache/bin /app/artefacts/ && \
67+
ls -ls /app/artefacts/bin; \
6368
fi
6469

70+
RUN invoke build-alloy $EXPERIMENTS $MEASUREMENTS
6571

6672
FROM scratch as log_export
6773
COPY --from=build /app/experiment.log /docker-run-full.log
6874

6975
FROM debian:latest as runtime
76+
77+
ARG BUILD_QUICK=false
78+
ARG PEXECS
79+
ARG EXPERIMENTS
80+
ARG SUITES
81+
ARG MEASUREMENTS
82+
83+
ENV BUILD_QUICK=$BUILD_QUICK
84+
ENV PEXECS=$PEXECS
85+
ENV EXPERIMENTS=$EXPERIMENTS
86+
ENV SUITES=$SUITES
87+
ENV MEASUREMENTS=$MEASUREMENTS
88+
7089
WORKDIR /app
7190
COPY --from=build /app/artefacts /app/artefacts
7291

Makefile

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
CURDIR ?= $(shell pwd)
22

3-
IMAGE_full := full:latest
4-
IMAGE_quick := quick:latest
3+
IMAGE := $(if $(FULL),full:latest,quick:latest)
54
LOG_STAGE := log_export
65
RUNTIME_STAGE := runtime
76
RESULTS := $(CURDIR)/results
87
LOGFILE := experiment.log
98

109
VENV_DIR := .venv
1110
VENV_PYTHON := $(VENV_DIR)/bin/python
12-
PYTHON := $(VENV_PYTHON) # Use venv python consistently
11+
PYTHON := $(VENV_PYTHON)
1312
INVOKE := $(VENV_DIR)/bin/invoke
1413

1514
BIN_DIR ?= $(CURDIR)/artefacts/bin
1615
BIN_ARCHIVE ?= artefacts-bin.tar.xz
17-
PREBUILT_DIR := $(CURDIR)/artefacts/prebuilt
18-
PREBUILT_BIN := $(PREBUILT_DIR)/bin # Added definition
1916

20-
GDRIVE_FILE_ID = 1oDkZ2RH65iq25_65AppzdLH_zzbt6oRz
21-
GDRIVE_ARTEFACT = $(PREBUILT_DIR)/$(BIN_ARCHIVE)
17+
EXP_ARG := $(if $(strip $(EXPERIMENTS)),--experiments "$(EXPERIMENTS)")
18+
SUITE_ARG := $(if $(strip $(SUITES)),--suites $(SUITES))
19+
MEASURE_ARG := $(if $(strip $(MEASUREMENTS)),--measurements $(MEASUREMENTS))
20+
21+
QUICK_PEXECS = 5
22+
FULL_PEXECS = 30
2223

2324
.PHONY: run-full run-quick fetch-binaries bare-metal
2425

@@ -29,51 +30,50 @@ $(VENV_DIR):
2930

3031
venv: pyproject.toml | $(VENV_DIR)
3132

32-
run-quick: fetch-binaries
33-
docker buildx build \
33+
34+
define WITH_DOCKER
35+
docker buildx build --progress=plain \
36+
--build-arg FULL=$1 \
37+
$(if $(EXP_ARG),--build-arg EXPERIMENTS=$(EXP_ARG)) \
38+
$(if $(SUITE_ARG),--build-arg SUITES=$(SUITE_ARG)) \
39+
$(if $(MEASURE_ARG),--build-arg MEASUREMENTS=$(MEASURE_ARG)) \
3440
--target runtime \
35-
--tag $(IMAGE_quick) \
36-
--build-arg BUILD_QUICK=true \
41+
--tag $(IMAGE) \
3742
--load .
3843
@test -f $(LOGFILE) || touch $(LOGFILE)
3944
chmod a+w $(LOGFILE)
4045
docker run --rm -it \
4146
--mount type=bind,source="$(LOGFILE)",target=/app/experiment.log \
4247
--mount type=bind,source="$(RESULTS)",target=/app/results \
43-
$(IMAGE_quick)
48+
$(IMAGE)
49+
endef
50+
51+
52+
run-quick:
53+
$(call WITH_DOCKER,false)
4454

4555
run-full:
46-
docker buildx build \
47-
--build-arg $(if $(EXPERIMENTS),EXPERIMENTS="--experiments $(EXPERIMENTS))" \
48-
--build-arg $(if $(SUITES),SUITES="--suites $(SUITES))" \
49-
--build-arg $(if $(MEASUREMENTS),MEASUREMENTS="--measurements $(MEASUREMENTS))" \
50-
--target runtime \
51-
--tag $(IMAGE_full) \
52-
--load .
53-
@test -f $(LOGFILE) || touch $(LOGFILE)
54-
chmod a+w $(LOGFILE)
55-
docker run --rm -it \
56-
--mount type=bind,source="$(LOGFILE)",target=/app/experiment.log \
57-
--mount type=bind,source="$(RESULTS)",target=/app/results \
58-
$(IMAGE_full)
56+
$(call WITH_DOCKER,true)
5957

6058
tarball:
6159
@echo "Compressing $(BIN_DIR) with maximum compression..."
6260
cd artefacts && tar -cf - bin | xz -9e > $(BIN_ARCHIVE)
6361
@echo "Created $(BIN_ARCHIVE) ($$(du -h artefacts/$(BIN_ARCHIVE) | cut -f1))"
6462

65-
fetch-binaries: venv
66-
@mkdir -p $(PREBUILT_DIR)
67-
@echo "Downloading from Google Drive..."
68-
@gdown $(GDRIVE_FILE_ID) -O $(GDRIVE_ARTEFACT)
69-
@echo "Download complete. File size: $$(du -h $(GDRIVE_ARTEFACT) | cut -f1)"
70-
@echo "Unzipping $(GDRIVE_ARTEFACT) to $(PREBUILT_DIR)..."
71-
tar -xvf $(GDRIVE_ARTEFACT) -C $(PREBUILT_DIR) # Fixed typo
72-
@echo "Done"
63+
fetch-binaries: $(GDRIVE_ARTEFACT)
64+
65+
$(GDRIVE_ARTEFACT):
66+
./fetch_binaries.sh
7367

7468
bare-metal: venv
7569
@$(INVOKE) build-benchmarks \
76-
$(if $(EXPERIMENTS),--experiments $(EXPERIMENTS)) \
77-
$(if $(SUITES),--suites $(SUITES)) \
78-
$(if $(MEASUREMENTS),--measurements $(MEASUREMENTS))
70+
$(EXP_ARG) \
71+
$(SUITE_ARG) \
72+
$(MEASURE_ARG)
73+
74+
@$(INVOKE) run-benchmarks \
75+
$(if $(PEXECS),$(PEXECS),$(FULL_PEXECS)) \
76+
$(EXP_ARG) \
77+
$(SUITE_ARG) \
78+
$(MEASURE_ARG)
7979

0 commit comments

Comments
 (0)