From adaefc77ec359bec5b42711d23e7036835592e93 Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Fri, 28 Aug 2026 11:35:52 +0800 Subject: Remove application invocation in benchmark script + 5A5V result. --- test_prompts.sh | 78 +++++++++++++++++++-------------------------------------- 1 file changed, 26 insertions(+), 52 deletions(-) mode change 100755 => 100644 test_prompts.sh (limited to 'test_prompts.sh') diff --git a/test_prompts.sh b/test_prompts.sh old mode 100755 new mode 100644 index 1f86d4a..925a26b --- a/test_prompts.sh +++ b/test_prompts.sh @@ -1,34 +1,33 @@ #!/bin/sh -# Usage: ./test_prompts.sh [prompt_file] +# Usage: ./test_prompts.sh [-i prompt_file] [-o result_file] SOCK_PATH="/var/run/lexd/sock" -EXECUTABLE="lexd" -# Mandatory Model Argument -MODEL_PATH="$1" +# Defaults +PROMPT_FILE="test_prompts.txt" +RESULT_FILE="results.txt" -if [ -z "$MODEL_PATH" ]; then - echo "Usage: $0 [prompt_file]" >&2 - exit 1 -fi +# Parse -i and -o flags +while getopts "i:o:" opt; do + case "$opt" in + i) PROMPT_FILE="$OPTARG" ;; + o) RESULT_FILE="$OPTARG" ;; + *) echo "Usage: $0 [-i prompt_file] [-o result_file]" >&2; exit 1 ;; + esac +done -if [ ! -f "$MODEL_PATH" ]; then - echo "Error: Model file '$MODEL_PATH' not found." >&2 +# Ensure socket exists (daemon must already be running) +if [ ! -S "$SOCK_PATH" ]; then + echo "Error: Socket '$SOCK_PATH' not found. Is lexd running?" >&2 exit 1 fi -# Derive base model name and output result filename -MODEL_NAME=$(basename "$MODEL_PATH") -RESULT_FILE="results_${MODEL_NAME}.txt" - -# Default prompt filename (optional 2nd argument) -PROMPT_FILE="${2:-test_prompts.txt}" +# Retrieve running daemon PID +DAEMON_PID=$(pgrep -f "lexd" | head -n 1) -# Ensure executable exists -if [ ! -x "$EXECUTABLE" ]; then - echo "Error: Executable '$EXECUTABLE' not found or not executable." >&2 - exit 1 +if [ -z "$DAEMON_PID" ]; then + echo "Warning: Could not detect DAEMON_PID. RSS metrics may be unavailable." >&2 fi # Ensure prompt file exists @@ -38,15 +37,12 @@ if [ ! -f "$PROMPT_FILE" ]; then fi # Helper function to get current swap occupancy in MB by parsing swapctl -l -# OpenBSD swapctl -l outputs 512-byte block counts by default get_swap_occupancy_mb() { swapctl -l | awk ' NR > 1 { - # Column 3 is Used blocks (512-byte blocks) used_blocks += $3 } END { - # Convert 512-byte blocks to MB (blocks * 512 / 1024 / 1024) printf "%.2f", used_blocks * 512 / 1048576 }' } @@ -70,34 +66,14 @@ while [ $i -lt 72 ]; do i=$((i + 1)) done -# --- Start daemon --- - -echo "Starting daemon with model: '$MODEL_PATH'" -"$EXECUTABLE" -m "$MODEL_PATH" & -DAEMON_PID=$! +# Temporary file to capture time / rusage output +TIME_LOG=$(mktemp /tmp/lex_time.XXXXXX) cleanup() { - kill "$DAEMON_PID" 2>/dev/null - wait "$DAEMON_PID" 2>/dev/null rm -f "$TIME_LOG" } trap cleanup EXIT INT TERM -waited=0 -while [ ! -S "$SOCK_PATH" ]; do - if ! kill -0 "$DAEMON_PID" 2>/dev/null; then - echo "Error: daemon exited during startup (bad model path?)" >&2 - exit 1 - fi - sleep 1 - waited=$((waited + 1)) - if [ "$waited" -ge 120 ]; then - echo "Error: timed out waiting for daemon socket at $SOCK_PATH" >&2 - exit 1 - fi -done - -echo "Daemon ready (pid $DAEMON_PID) after ${waited}s" echo "Evaluating $total_prompts prompt(s) from '$PROMPT_FILE'" echo "Writing results to: '$RESULT_FILE'" echo "---------------------------------------------------" @@ -105,9 +81,6 @@ echo "---------------------------------------------------" current=0 first=1 -# Temporary file to capture time / rusage output -TIME_LOG=$(mktemp /tmp/lex_time.XXXXXX) - # Process each prompt while IFS= read -r prompt || [ -n "$prompt" ]; do case "$prompt" in @@ -125,12 +98,14 @@ while IFS= read -r prompt || [ -n "$prompt" ]; do printf "PROMPT: %s\n\n" "$prompt" >> "$RESULT_FILE" # Sample daemon RSS prior to request - daemon_rss_kb=$(ps -o rss= -p "$DAEMON_PID" 2>/dev/null | tr -d ' ') + if [ -n "$DAEMON_PID" ]; then + daemon_rss_kb=$(ps -o rss= -p "$DAEMON_PID" 2>/dev/null | tr -d ' ') + fi # Capture baseline swap occupancy before sending the prompt swap_start_mb=$(get_swap_occupancy_mb) - # Send prompt to daemon over socket + # Send prompt to daemon over socket (exact original invocation) /usr/bin/time -lp sh -c "printf '%s\n' \"\$1\" | nc -U \"\$2\"" _ "$prompt" "$SOCK_PATH" \ >> "$RESULT_FILE" 2> "$TIME_LOG" @@ -162,5 +137,4 @@ while IFS= read -r prompt || [ -n "$prompt" ]; do done < "$PROMPT_FILE" echo "---------------------------------------------------" -echo "Done! Processed $total_prompts prompt(s)." - +echo "Done! Processed $total_prompts prompt(s)." \ No newline at end of file -- cgit v1.2.3