60 lines
1.7 KiB
Makefile
60 lines
1.7 KiB
Makefile
CXX = g++
|
|
CXXFLAGS = -O2 -std=c++17 -pthread
|
|
|
|
TARGET = lab2
|
|
SRC = main.cpp
|
|
|
|
PY = python3
|
|
EXPORTER = exporter.py
|
|
|
|
# ================= BUILD =================
|
|
all: $(TARGET)
|
|
|
|
$(TARGET): $(SRC)
|
|
$(CXX) $(CXXFLAGS) $< -o $@
|
|
|
|
# ================= BATCH 1 =================
|
|
# FIXED THREAD COUNT = 2
|
|
# VARYING WORKLOAD SIZE
|
|
batch_size: $(TARGET)
|
|
@echo "=== BATCH 1: scaling by size (threads = 2) ==="
|
|
./$(TARGET) 5000 2 > log_size_5k.txt
|
|
./$(TARGET) 10000 2 > log_size_10k.txt
|
|
./$(TARGET) 20000 2 > log_size_20k.txt
|
|
./$(TARGET) 50000 2 > log_size_50k.txt
|
|
./$(TARGET) 100000 2 > log_size_100k.txt
|
|
|
|
# ================= BATCH 2 =================
|
|
# FIXED LARGE WORKLOAD
|
|
# VARYING THREAD COUNT
|
|
batch_threads: $(TARGET)
|
|
@echo "=== BATCH 2: scaling by threads (size = 50000) ==="
|
|
./$(TARGET) 50000 0 > log_thr_0.txt
|
|
./$(TARGET) 50000 2 > log_thr_2.txt
|
|
./$(TARGET) 50000 4 > log_thr_4.txt
|
|
./$(TARGET) 50000 8 > log_thr_8.txt
|
|
|
|
# ================= FULL BENCH =================
|
|
logs: batch_size batch_threads
|
|
|
|
# ================= ANALYSIS =================
|
|
analyze_size: batch_size
|
|
$(PY) $(EXPORTER) log_size_5k.txt out/size/
|
|
$(PY) $(EXPORTER) log_size_10k.txt out/size/
|
|
$(PY) $(EXPORTER) log_size_20k.txt out/size/
|
|
$(PY) $(EXPORTER) log_size_50k.txt out/size/
|
|
$(PY) $(EXPORTER) log_size_100k.txt out/size/
|
|
|
|
analyze_threads: batch_threads
|
|
$(PY) $(EXPORTER) log_thr_0.txt out/threads/
|
|
$(PY) $(EXPORTER) log_thr_2.txt out/threads/
|
|
$(PY) $(EXPORTER) log_thr_4.txt out/threads/
|
|
$(PY) $(EXPORTER) log_thr_8.txt out/threads/
|
|
|
|
# ================= FULL ANALYZE =================
|
|
analyze: logs analyze_size analyze_threads
|
|
|
|
# ================= CLEAN =================
|
|
clean:
|
|
rm -f $(TARGET) *.txt timeline.png
|