Files
Aislo/docs/raw/plans/2026-10-31_plan_612_618.md
T

32 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PLAN 612 · 618 이관 — 전국 미리 계산 · 두 PC 나눠 돌림(요구 493 · 507~511)
## 612 전국 미리 계산 — 지형 · 0차곡 · E07 · 도엽 조각 일괄 (요구 493 · 진행 · 요구서_486 6장)
- 정함(브레인): 요구서_486 6장 · 급경사 · 음영 = 저장 안 함(지형에서 0.1~0.4 s) · 단계 1 = 산지 도엽 지형 2 m + 0차곡 누적 + E07 경사 · 집수 면적 · 기본 SI · 단계 2 = 도엽 조각(등고 · 계곡) + B 하강장(609 뒤) · 이어 하기 · 낮은 우선순위 · 병렬.
- 사용자 확정: 전국 등고선 미리 계산해 보관(요구 493-5) · 일부 지역 느려짐 괜찮음(493-2).
- [x] 612-1 일괄 도구 `tools/precompute_terrain.py`(도엽 목록 = 전국 등고선이 덮는 도엽 · 산지 먼저 · 단계 · 이어 하기 · 진행 기록 · 일꾼 수 · 낮은 우선순위) — 607 · 608 · 610 함수만 부름 · 확인 = 새 시험 · 시험 지역 1:50,000 한 장(100 도엽) 실측(시간 · 크기)
- 검증완료 — 시험 test_612 6 · 607 · 608 · 610 12 그대로 · 용화 36901 100 도엽 일꾼 넷 실패 0 · 장당 지형 51.6 s(가운데) · 0차곡 14.2 s(가장자리는 이웃 지형까지 최대 173 s) · E07 14.1 s · 벽시계 지형 1,237 + 0차곡 934 + E07 360 = 2,531 s(42 분 · 둘레 46 도엽 지형 포함) · 도엽당 지형 4.2 + 0차곡 1.3 + E07 16.2 = 21.7 MB · 끊음(taskkill) → 죽은 잠금 4 치움 · 끝난 도엽 0.0 s 건너뜀 · 반쯤 쓴 파일 0 · 4220eb6e0
- 쓰는 법 — `./venv/Scripts/python.exe tools/precompute_terrain.py --workers 4`(기본 = 높이 차 150 m 이상 산지 12,904 도엽 · 길이 큰 것부터) · `--status` 진행 요약 · 기록 `storage/_shared/terrain/_precompute_progress.json` · 도엽 목록 `_precompute_sheets.json`(첫 셈 110 s)
- 전국 어림 — 산지 12,904 도엽 × 약 21~25 s(일꾼 넷 벽시계) ≈ 75~90 h · 창고 약 280 GB(E07 209 · 지형 54 · 0차곡 17) · ⚠ E07 이 4 분의 3 · C 남은 353 GB → 다 돌면 약 70 GB 남음
- [x] 612-2 전국 산지 단계 1 돌림(브레인 · WMI 백그라운드 · 일꾼 넷) — 확인 = 진행 기록 · 창고 크기 · C 드라이브 남은 칸
- 검증완료 — 10-31 21:40 지형 · 0차곡 · 0차곡 선 12,904 / 12,904 · 실패 0 · E07 은 뺌(처음 쓸 때) · 617 빠른 셈 · 618 두 PC(데스크탑은 18:45 끔) · 628 실패 36 고침
- 10-30 23:40 시작(pid 17960 · `--steps dem,zero --workers 4` · E07 뺌 = 도엽당 16.2 MB · 처음 쓸 때 14 s 라 그때 셈) · 산지 12,904 장 · 어림 도엽당 5.5 MB → 약 71 GB · 약 3~4 일 · 기록 `tmp/precompute_612.log` · 상태 = `tools/precompute_terrain.py --status`
- 10-31 06:55 일꾼 4 → 7 다시 켬(pid 18528 · 사용자 CPU 35 % 허락 · 실측 32.5 %) · 그때 지형 2,383 / 12,904 · 남은 어림 약 38~45 h(11-01 밤 ~ 11-02 새벽)
## 618 전국 미리 계산 두 PC 나눠 돌림 (요구 507 · 508 · 509 · 진행)
- 정함: 랩탑 = 고성능 코어 7 + 저전력 코어(논리 12~19) 3 · 데스크탑(sub_desktop_1 · i7-8700K) = 전체 CPU 70 % 상한(시스템 · 사용 포함 · 여유 30 %) 넘으면 새 도엽 안 줌 · 도엽은 겹치지 않게 비율로 나눔(랩탑 약 70 · 데스크탑 약 30) · 진행 기록 PC 별 파일 · 시놀로지가 창고를 서로 옮김 → 같은 파일을 두 PC 가 쓰지 않음 · 0차곡 단계는 이웃 지형이 없으면 셈하지 않고 건너뜀(다른 PC 몫 · 동기 기다림) · 데스크탑 메인(임시 배포) 폴더 · 서버 안 건드림 · 결과는 비트 동일 그대로.
- [x] 618-1 도구 — `tools/precompute_terrain.py` 나눔(`--part`) · PC 별 진행 기록 · `--cpu-cap` · 저전력 코어 지정 일꾼 · 0차곡 이웃 없으면 건너뜀 · `--status` 가 두 PC 합침 — 확인 = 시험 · 나눔 겹침 0 · 상한 멈춤 · 지정 코어
- 검증완료 — 시험 test_618 9 · 612 6 · 617-1 13 통과 · 임시 창고 용화 도엽 10 장 `--part 0-49/100` 지형 25 일감 · `50-99/100` 18 일감 = 합 43(나눔 없음과 같음) · 겹침 0 · 0-49 먼저 = 0차곡 5 장 이웃 없어 미룸 → 50-99 뒤 다시 = 10 장 끝 · 결과 53 파일 공용 창고와 비트 동일 · `--cpu-cap 3`(전체 52 %) 25 s 동안 새 도엽 0 · `--e-workers 3` = 단계 둘 일꾼 8 중 6 이 논리 12~19 지정(단계마다 3) (88ec2da19)
- 쓰는 법 — 랩탑 `./venv/Scripts/python.exe tools/precompute_terrain.py --steps dem,zero --workers 10 --part 0-69/100 --e-cores 12-19 --e-workers 3` · 데스크탑 `./venv/Scripts/python.exe tools/precompute_terrain.py --steps dem,zero --workers 8 --part 70-99/100 --cpu-cap 70` · 상태 = `--status`(모든 PC 기록 + 창고 실물) · 기록 `_precompute_progress_<컴퓨터 이름>.json`
- 뜻 — 지형 단계가 0차곡 이웃(목록 밖 · 띠 넘음 `도엽@좌표계`)까지 몫대로 셈 · 0차곡 미룸은 `--defer-wait`(600 s) 마다 다시 · 끝없이 기다림(다른 PC 지형 단계가 늦으면 그동안 돎) · ⚠ 두 PC 전국 등고선 파일 지문(크기 · 수정 시각)이 같아야 서로 지형을 씀 — 다르면 남의 몫 이웃을 영영 미룸
- [x] 618-2 브레인 — 데스크탑 sub_desktop_1 받기 · 랩탑 다시 켬(617-2 함께) · 데스크탑 원격 켬(낮은 우선순위 · 떨어져 돎) — 확인 = 두 PC 진행 · 데스크탑 전체 CPU ≤ 70 % · 충돌 사본 0
- 검증완료 — 데스크탑 4 일꾼 · 상한 60 · 18:45 끔(느림) · 랩탑 혼자 마무리 · 진행 기록 PC 별 · 충돌 사본 0 · 데스크탑 결과 비트 동일
- 10-31 11:34 랩탑 pid 61672(동시 계산 10 · 0-69 · 저전력 3 지정 확인 0xFF000) · 11:36 데스크탑 pid 21040(sub_desktop_1 · 8 · 70-99 · 상한 70) · 데스크탑 전국 파일 수정 시각 = 랩탑 값으로 맞춤(06:45:52.0 → .6008276Z · 지문 같음) · 데스크탑 numpy 2.5 로 셈한 도엽 = 창고 비트 동일(9 장 · 1 일꾼 525 s = 장당 58 s · D = HDD)
- 12:10 비율 다시 — 처리량 실측(14 분) 랩탑 약 1,250 장/h · 데스크탑(4 · 상한 60 · 전체 평균 약 57 %) 약 320 장/h → 랩탑 0-79 pid 62160 · 데스크탑 80-99 pid 26344 · 남은 산지 지형 7,866 장 · 완료 어림 19 시 전후(17 시 반~21 시)
- 12:20 랩탑 저전력 6(요구 510) — 랩탑 13(고성능 7 + 저전력 6 지정 0xFF000 ×6) · 0-82 · pid 59496 · 전체 약 83 % · 데스크탑 4 · 83-99 · pid 36156 · 전체 45~78 %(평균 약 66 % · chrome 9 % 사용 중) · 완료 어림 18 시 15~30 분
- 18:45 데스크탑 끔(이웃 지형 987 장 남은 채 1 시간 진척 0 · 느림) · 랩탑 혼자 전부 `--part 0-99/100`(13 · 저전력 6 · pid 59076) · 그때 0차곡 7,535 / 12,904