Files
2026-07-29 23:32:26 +09:00

1.7 KiB

Step 3: Phase 1 Scale Benchmark

읽어야 할 파일

  • /AGENTS.md
  • /docs/PRD.md
  • /docs/ARCHITECTURE.md
  • /docs/ADR.md
  • /docs/RELEASE_CHECKLIST.md
  • /include/fesa/analysis/run_solver.hpp
  • /tests/performance/assembly_benchmark.cpp

작업

약 100,000 DOF의 deterministic Beam chain 모델로 메모리와 시간을 측정하는 tests/performance/phase1_scale_benchmark.cpp를 만든다.

  • model generation, parsing/Domain build, assembly, PARDISO solve, recovery, HDF5 write 시간을 구분해 출력한다.
  • peak working set 또는 Windows에서 재현 가능한 memory metric을 기록한다.
  • benchmark는 finite result, equilibrium, expected DOF count와 정상 종료만 assertion한다.
  • 임의 성능 기준이나 speedup을 pass 조건으로 만들지 않는다.

Acceptance Criteria

cmake --build --preset windows-release
.\out\build\windows-release\Release\fesa_phase1_scale_benchmark.exe
ctest --preset windows-release --output-on-failure

출력에 모델 크기, 각 stage 시간, memory metric, thread 설정, solver 설정이 포함되어야 한다.

검증 절차

  1. 작은 model에서 benchmark correctness test를 먼저 실패시킨다.
  2. 동일 generator로 목표 크기를 실행한다.
  3. 측정값과 환경을 release checklist에 기록한다.
  4. index summary에 결과 위치와 실제 DOF count를 기록한다.

금지사항

  • benchmark를 unit test timeout에 묶지 마라. 이유: 머신 성능에 따라 달라진다.
  • 결과 정확성 검사를 생략하지 마라. 이유: 빠른 오답은 성능 증거가 아니다.
  • 실제 측정 없이 목표 시간을 만들지 마라. 이유: 요구사항에 근거가 없다.