Experiments KO - k-p2p-lab/kpl-v3 GitHub Wiki
Wiki home โบ ํ๊ตญ์ด ๋ฌธ์ ยท ์์ด ์๋ฌธ
๋ฌธ์ ์๋ด ยท ์์ค ์ ์ฅ์
Swarm ๋ฐฐํฌ์ Agent ์ฉ๋ ์ค์ ์ดํ์ ์ ์ฐจ์ ๋๋ค. ์ ์ฅ ์๋๋ฆฌ์ค๋ ์ฌ์ฌ์ฉํ ์ ๋ ฅ, run์ ํ ๋ฒ์ ์คํ, batch๋ ๋ฐ๋ณต ํ์ฐจ์ ๋ฌถ์, retry๋ ๋ฏธ์๋ฃ ํ์ฐจ์ ์ ์๋์ ๋๋ค.
- ๋์๋ณด๋์ Run experiment๋ฅผ ์ฝ๋๋ค. ์ ์ฅ ์๋๋ฆฌ์ค๋ฅผ ๋ถ๋ฌ์ค๊ฑฐ๋ YAML์ ์ ๋ ฅํฉ๋๋ค. ํ๋๋ ์๋๋ฆฌ์ค ์ฐธ์กฐ๊ฐ ์ ์ํฉ๋๋ค.
-
Validate๋ฅผ ๋๋ฅด๊ณ Agent ๊ฐ์ฉ ์ํ๋ฅผ ํ์ธํฉ๋๋ค. ๊ฒ์ฆ์ ์
๋ ฅ์ ๊ฒ์ฌํ๋ฉฐ ์คํ ์ฉ๋ยท์ฐ๊ฒฐ๊น์ง ํ์ธํ์ง ์์ต๋๋ค. ์์ ์ฒซ ์คํ์
examples/monitoring.yaml์ ์ฌ์ฉํ ์ ์์ต๋๋ค. - Runs๋ฅผ ์ง์ ํ๊ณ Run์ ๋๋ฆ ๋๋ค. Experiment progress์์ ์งํ์ ํ์ธํ๊ณ ๊ธฐ๋ก์ Saved results์์ ํ์ธํฉ๋๋ค.
๋ค๋ฅธ ์คํ์ด ์คํ ์ค์ด์ด๋ Run experiment โ Run์ ์ฌ๋ฌ ๋ฒ ์ ์ถํ ์ ์์ต๋๋ค. ์ ์ํ ์์๋๋ก Controller ๋๊ธฐ์ด์ ๋ค์ด๊ฐ๋ฉฐ, ํ ์ ์ถ์ ๋ฐ๋ณต ํ์ฐจ๊ฐ ๋ชจ๋ ๋๋ ๋ค์ ์ ์ถ์ ์คํํฉ๋๋ค. ์ฌ์๋ยท์ด์ดํ๊ธฐยทAdd runs๋ ๊ฐ์ ๋๊ธฐ์ด์ ์ฌ์ฉํฉ๋๋ค. YAMLยทseedยท์์ํ ๊ฒฐ๊ณผ ๊ทธ๋ฃน์ ์ ์ ์ ํ์ ํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์๋ ์ ์ํ ์์ ์ ์ ์ง๋ฉ๋๋ค.
Experiment progress์์ ๋๊ธฐ ์ค์ธ ๋ฐฐ์น ์์ ๋ช ๊ฐ์ ์ ์ถ์ด ์๋์ง ํ์ํฉ๋๋ค. ํด๋น ํญ๋ชฉ์ ์ค์ง ๋ฒํผ์ ๊ทธ ์ ์ถ๊ณผ ๋ฐ๋ณต ํ์ฐจ๋ง ์ทจ์ํฉ๋๋ค. ์คํ ์ค์ธ ๋ฐฐ์น๋ฅผ ์ค์งํ๊ฑฐ๋ ์คํ์ด ์คํจํ๋ฉด ๊ทธ ๋ฐฐ์น์ ๋จ์ ํ์ฐจ๋ง ์ทจ์ํ๊ณ , Peer ์ ๋ฆฌ์ ์ต์ข telemetry ์์ง ํ ๋ค์ ์ ์ถ๋ก ๋์ด๊ฐ๋๋ค. ์ฑ๊ณตํ ๋จ์ผ Run์ด ์ ์งํ Peer๋ ๋ค์ ์ ์ถ ์์ ์ ์ ์ ๊ฑฐํฉ๋๋ค. ์ ๋ฆฌ๋ฅผ ํ์ธํ์ง ๋ชปํ๋ฉด ๋ค์ ์ ์ถ์ Waiting for previous Peer cleanup์ผ๋ก ๋๊ธฐํ๋ฉฐ, ์ ๋ฆฌ ์๋๊ฐ ์คํจํ ๋๋ง๋ค 3์ด ํ ์ฌ์๋ํฉ๋๋ค. ๊ทธ ๋๊ธฐ ํญ๋ชฉ์ ์ทจ์ํด๋ ์ดํ ์ ์ถ์ด ์ ๋ฆฌ๋ฅผ ๊ฑด๋๋ฐ์ง๋ ์์ต๋๋ค.
์์ฝ ๋๊ธฐ ์๊ฐ์ Run ์์ ์๊ฐยทphase timeoutยทschedule ์๊ณ์ ํฌํจํ์ง ์์ต๋๋ค. Controller ์ฌ์์ ์ ์์ฝํ ๊ฒฐ๊ณผ๋ interrupted๋ก ๋จ์ผ๋ฉฐ Retry experiment / Retry from run์ผ๋ก ์๋ ๋ณต๊ตฌํฉ๋๋ค. ์ฌ์์ ํ ๋๊ธฐ์ด์ ์๋ ์ฌ์คํํ์ง ์์ต๋๋ค.
์คํ ๋คํธ์ํฌ ์ค๋น API๋ ๋ฐ๋ณต ํ์ฐจยท์ฌ์๋ยท์ด์ดํ๊ธฐยท์ถ๊ฐ Run์ ํฌํจํ์ฌ ๋งค Run ์ ์ ์ Peer overlay๋ฅผ ์ค๋นํฉ๋๋ค. Peer ์ ๋ฆฌ ํ์ธ์ ๊ธฐ๋ค๋ฆฌ๊ณ ๋ชจ๋ Agent๊ฐ ์ ๋คํธ์ํฌ๋ฅผ ์๋ฝํ ๋ค ์คํ ์๊ณ๋ฅผ ์์ํฉ๋๋ค. Preparing network ์๊ฐ์ ์๋๋ฆฌ์ค phase์ schedule ์๊ฐ์ ํฌํจํ์ง ์์ต๋๋ค. ์ด๊ธฐํ ์คํจ ์ ์ฒซ phase๋ฅผ ์์ํ์ง ์๊ณ ๊ธฐ์กด ์คํจยท์์ฝ ๊ท์น์ ๋ฐ๋ฆ ๋๋ค. ์ ๊ณต๋๋ Swarm stack์์๋ ์ด๊ธฐํ๋ฅผ ํ์ฑํํฉ๋๋ค. ๊ธฐ์กด ๋ฐฐํฌ์๋ ๊ฐฑ์ ํ ์ด๋ฏธ์ง์ stack์ด ํ์ํฉ๋๋ค. ์๋ ๋คํธ์ํฌ ์ด๊ธฐํ๋ฅผ ์ฐธ๊ณ ํ์ญ์์ค.
Run experiment์์ YAML์ ์
๋ ฅํ๊ณ Run ์์ Runs๋ฅผ 1~100 ์ ์๋ก ์ง์ ํ์ญ์์ค. Controller๊ฐ ๋ชจ๋ ํ์ฐจ๋ฅผ ๋๊ธฐ์ด์ ๋ฑ๋กํ ๋ค ์์๋๋ก ์คํํ๋ฏ๋ก ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์๋ ๊ณ์๋ฉ๋๋ค. ํ์ฐจ๋ง๋ค ๊ณ ์ run ID, ๋ณ๋ ๊ฒฐ๊ณผ ๋๋ ํฐ๋ฆฌ, ๋ฉํ๋ฐ์ดํฐ์ batchId, iteration, repetitions๊ฐ ๋ถ์ฌ๋ฉ๋๋ค.
2ํ ์ด์์ด๋ฉด ๊ฐ ํ์ฐจ์ ์ข ๋ฃ ์ ์ฑ ์ ๋ฐ๋ผ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ์ทจ์ํ๊ฑฐ๋ ์๋ฃ๊น์ง ๊ธฐ๋ค๋ฆฌ๊ณ , ํด๋น ํ์ฐจ์ Peer ์์ฑ์ ์ฐจ๋จํ๊ณ ์ ๊ฑฐํ ๋ค Agent ์ํ๋ฅผ ๊ฐฑ์ ํด์ผ ๋ค์ ํ์ฐจ๊ฐ ์์๋ฉ๋๋ค. ์คํยท์ ๋ฆฌ ์คํจ๋ ํด๋น ๋ฐฐ์น์ ๋จ์ ํ์ฐจ๋ฅผ ์ทจ์ํฉ๋๋ค. ์คํ ์ค์ด๊ฑฐ๋ ๋๊ธฐ ์ค์ธ ํญ๋ชฉ์ Stop batch๋ ๊ทธ ์ ์ถ์ ํ์ฌ ํ์ฐจ์ ๋๋จธ์ง ๋ฐ๋ณต๋ง ์ทจ์ํฉ๋๋ค. ๋ค๋ฅธ ์ ์ถ์ ๋๊ธฐ ์์๋ ์ ์งํฉ๋๋ค.
๋ชจ๋ ํ์ฐจ์ YAML์ ๋์ผํฉ๋๋ค. ๋ช
์ํ 0์ด ์๋ seed๋ ์ฌ์ฌ์ฉํ๊ณ , 0์ด๊ฑฐ๋ ์๋ต๋๋ฉด ํ์ฐจ๋ณ๋ก ์ seed๋ฅผ ์์ฑํด ๊ธฐ๋กํฉ๋๋ค. ๋์ผ seed๋ ํ๋ณธ ์ถ์ถ ์
๋ ฅ์ ๋ฐ๋ณตํ์ง๋ง Docker ํ์ด๋ฐ, ํ๋ณด ์งํฉ, ๋คํธ์ํฌ ์คํ ๊ฒฐ๊ณผ๊น์ง ๋์ผํ๊ฒ ๋ง๋ค์ง๋ ์์ต๋๋ค. Controller ์ฌ์์ ์ ๋๊ธฐ์ด์ ์๋์ผ๋ก ์ฌ๊ฐํ์ง ์์ผ๋ฉฐ ๋จ์ queuedยทrunning ๊ธฐ๋ก์ interrupted๋ก ํ์ํฉ๋๋ค.
์๋ํ๋ ์คํ ์ ์ถ API๋ฅผ ์ฐธ๊ณ ํ์ญ์์ค.
Saved results์ ์๋ฃ ๊ทธ๋ฃน์์ Add runs๋ฅผ ๋๋ฅด๊ณ Additional runs์ ์ถ๊ฐ ์๋์ ์ ๋ ฅํ ๋ค ์ดํฉ์ ํ์ธํ๊ณ Add and start๋ฅผ ์ ํํฉ๋๋ค. 10ํ ์๋ฃ ๊ทธ๋ฃน์ 10ํ๋ฅผ ๋ํ๋ฉด ๊ฐ์ ๋ฐฐ์น ID๋ก Run 11 of 20๋ถํฐ Run 20 of 20๊น์ง ์งํํฉ๋๋ค. ์ ์ฅ๋ YAML๊ณผ seed ์ ์ฑ ์ ์ฌ์ฌ์ฉํ๊ณ ๊ธฐ์กด ๊ฒฐ๊ณผยท๊ฐ๋ณ ๋ฉ๋ชจยทGroup ๋ฉ๋ชจ๋ฅผ ๋ณด์กดํฉ๋๋ค. ์๋ฃ๋ ๋จ์ผ Run์๋ ์ถ๊ฐํ์ฌ ๊ทธ๋ฃน์ผ๋ก ํ์ฅํ ์ ์์ต๋๋ค. ๊ทธ๋ฃน ์ดํฉ์ ๊ธฐ์กด๊ณผ ๊ฐ์ด ์ต๋ 100ํ์ ๋๋ค.
ํ์ฌ ํ์ฐจ๊ฐ ๋น ์ง์์ด ์๋ฃ๋ ๊ทธ๋ฃน๋ง ํ์ฅํ ์ ์์ต๋๋ค. ์คํยท์ข ๋ฃ ์ ๋ฆฌยท๋ค์ด๋ก๋ยท๊ฐ๋ณ/๋ฐฐ์น ๋ถ์์ด ์งํ ์ค์ด๋ฉด ์ถ๊ฐ๋ฅผ ๋ง์ผ๋ฉฐ, ๋ฏธ์๋ฃ ๊ทธ๋ฃน์ ๊ธฐ์กด ์ฌ์๋ยท์ด์ดํ๊ธฐ ๊ธฐ๋ฅ์ผ๋ก ๋จผ์ ๋ง๋ฌด๋ฆฌํ์ญ์์ค. ์ ํ์ฐจ ์ ์ ์ด์ Peer๋ฅผ ์ ๋ฆฌํ๊ณ ๋ก์ปฌ ์ฌ์ ๊ณต๊ฐ ๊ฒ์ฌ๋ฅผ ์ ์ฉํฉ๋๋ค. ์ค์งยท์คํจํ๋ฉด ์ ๋๊ธฐ ํ์ฐจ๋ฅผ ์ทจ์ํ๋ฉฐ Retry from run์ ์๋ฃ ํ์ฐจ๋ฅผ ๋ฐ๋ณตํ์ง ์๊ณ ๋ฏธ์๋ฃ ์ถ๊ฐ๋ถ์ ์ฌ์๋ํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์๋ ์ ์๋ ์คํ์ ๊ณ์๋ฉ๋๋ค.
์ถ๊ฐ ์คํ์ด ๋๋๋ฉด Analyze batch mean์ผ๋ก ๊ทธ๋ฃน ์ ์ฒด๋ฅผ ๋ค์ ๋ถ์ํฉ๋๋ค. ๊ตฌ์ฑ์์ด ๋ฐ๋๋ฉด ๊ธฐ์กด ๋ถ์ ์บ์๋ฅผ ์ต์ ๊ฒฐ๊ณผ๋ก ์ฌ์ฌ์ฉํ์ง ์์ต๋๋ค. 10 + 10์ด๋ฉด 20ํ ์ ์ฒด์์ ์ ์๋ ์งํ์ ๊ธฐ์ฌ ํ๋ณธ ์๋ 20์ด๋ฉฐ ๊ฐ Run์ ๋์ผ ๊ฐ์ค์น๋ก ์ง๊ณํฉ๋๋ค. ์ด์ ์คํจ ์๋๋ ๊ณ์ ์ ์ธํฉ๋๋ค. Completed ํํฐ์์ ์ถ๊ฐํ๋ค๋ฉด ๊ทธ๋ฃน์ด ๊ณ์ ๋ณด์ด๋๋ก ์ํ ํํฐ๋ฅผ All๋ก ์ ํํฉ๋๋ค.
์ต์ด ์ ์ถยท์ฌ์๋ยท์ด์ดํ๊ธฐยท์ถ๊ฐ ์ ์๋ ๋ชจ๋ ๋ก์ปฌ result-groups/<batch-id>/batch.json ๊ธฐ๋ก์ผ๋ก ํ์ ํฉ๋๋ค. ํ์ ์ ์ค๋น ์ค ์ค๋จ๋ ์์ฝ์ ๋กค๋ฐฑํ๊ณ , ํ์ ํ ์ฌ์์๋ ๋ฏธ์๋ฃ Run์ interrupted๋ก ๋ณด์กดํ์ฌ ์ฌ์๋ํ ์ ์์ต๋๋ค. ์คํจยท์๊ฐ ์ด๊ณผ ์์ฒญ์ ๊ฒฐ๊ณผ๋ฅผ ์๋ก๊ณ ์นจํ ๋ค ์ฌ์์ฒญ ์ฌ๋ถ๋ฅผ ํ๋จํ์ญ์์ค. result-groups/๋ ๋ฐฑ์
์ ํฌํจํด์ผ ํฉ๋๋ค. ๊ธฐ์กด experiment.json๊ณผ ๊ณผ๊ฑฐ ๋ถ์ ์ค๋
์ท์ ๋น์ ์ดํฉ์ ์ ์งํ๊ณ ํ์ฌ ๋ชฉ๋กยท์ ํตํฉ ๋ถ์์ ํ์ ๋ ๊ทธ๋ฃน ์ดํฉ์ ์ฌ์ฉํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ ์ต์ด ์ ์ถ ์๋ต์ด ์ฑ๊ณตํ ๋๊น์ง ์ ์ถ ํค๋ฅผ ์ ์งํฉ๋๋ค. ์๋ต์ด ์ ์ค๋ ๋ค ๊ฐ์ ์
๋ ฅ์ ์ฌ์ ์กํ๋ฉด ๊ธฐ์กด ๊ทธ๋ฃน์ ๋ฐํํ์ฌ ์ค๋ณต ์คํ์ ๋ง์ต๋๋ค. ์๋ํ์์๋ API ๊ฐ์ด๋์ Idempotency-Key๋ฅผ ์ง์ ์ง์ ํ๊ณ ์ฌ์ฌ์ฉํ์ญ์์ค.
์ต์ ์๋ ์ ๋ณด๋ ๊ฐ๋ณ ๊ฒฐ๊ณผ ์ญ์ ํ์๋ ์ ์ง๋ฉ๋๋ค. ์ต์ ์ฌ์๋๋ฅผ ์ญ์ ํ๋ฉด ํด๋น ํ์ฐจ๊ฐ ๋๋ฝ์ผ๋ก ๋จ์ผ๋ฉฐ ์ด์ ์คํจ๊ฐ ํ์ฌ ํ์ฐจ๋ก ๋์ด์๋์ง ์์ต๋๋ค. ๊ทธ๋ฃน์ ํ์ฅํ๋ ค๋ฉด ๋๋ฝ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณต๊ตฌํด์ผ ํฉ๋๋ค. ๊ทธ๋ฃน ์์ฝ ๊ธฐ๋ก์ด ์์๋๋ฉด ํด๋น ๊ทธ๋ฃน์ ์์ ์ ๋ง๊ณ Controller ๋ก๊ทธ์ ๋จ๊ธฐ๋ฉฐ ๋ค๋ฅธ ๊ทธ๋ฃน์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์งํ ์ค ์คํ์ ์ ์ง ๋ฒํผ์ด๋ ๋ฐ๋ณต ๊ทธ๋ฃน์ Stop batch๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ทจ์๊ฐ ์ ์๋๋ฉด ์์ ๊ณผ Peer๋ฅผ ์ ๋ฆฌํ๋ ๋์ **Stoppingโฆ**๋ฅผ ํ์ํฉ๋๋ค. ๋ฐ๋ณตํด์ ๋๋ฅผ ํ์ ์์ด ์ํ๊ฐ ํ์ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค. ํ์ฑ ๋ฐฐ์น๋ฅผ ์ ์งํ๋ฉด ์คํยท๋๊ธฐ ํ์ฐจ๋ฅผ ์ทจ์ํฉ๋๋ค. Controller ์ข ๋ฃยท๋น์ ์ ์ข ๋ฃ์ ์ ๋ฆฌ ๋ฒ์๋ ์ฅ์ ์ ์ข ๋ฃ๋ฅผ ์ฐธ๊ณ ํ์ญ์์ค.
Peer ์ข ๋ฃ ์ HTTP ๋ฐํ ์์ฒญ์๋ ๊ฐ์ ์ทจ์ ์ ํธ๋ฅผ ์ ๋ฌํฉ๋๋ค. ๋ฐํ ์ ๊ธ์ด๋ topic ์ค๋น๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์์ฒญ์ ์ต์ข telemetry drain ์ ์ ์ ์ํ ์ข ๋ฃ๋ฉ๋๋ค.
์ ์๋ ์คํ ๋ฌถ์๋ง๋ค ์ executionId๋ฅผ ๋ถ์ฌํ๋ฉฐ run ID๋ฅผ ์ฌ์ฌ์ฉํ๋ ์ด์ดํ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. UI๋ ์ค์ง ์์ฒญ์ ์ด ๊ฐ์ ์ ๋ฌํ๊ณ ๋์๋ณด๋๋ฅผ ์๋ก๊ณ ์นจํด๋ **Stoppingโฆ**๋ฅผ ์ ์งํฉ๋๋ค. ์ด์ ์คํ์ ์ง์ฐ๋ ์ค์ง ์์ฒญ์ด ์ ์ฌ์๋ยท์ถ๊ฐ ์คํ์ ์ทจ์ํ ์ ์์ต๋๋ค. API ํด๋ผ์ด์ธํธ๋ X-KPL-Execution์ ์ ๋ฌํด์ผ ํฉ๋๋ค.
์คํ ์ํ, Peer ์ ๋ฆฌ, ๋ก๊ทธ ์์ง ์ํ๋ ๋ณ๊ฐ์
๋๋ค. canceled๋ง์ผ๋ก ์ ๋ฆฌ ์ฑ๊ณต์ ํ๋จํ์ง ๋ง์ญ์์ค. ์ ์ฅ ๊ฒฐ๊ณผ๋ ์ ๋ฆฌ ์คํจ์ ๋ถ์์ ยท๋ฏธํ์ธ ๋ก๊ทธ๋ฅผ ํจ๊ป ํ์ํฉ๋๋ค. ์์ฐ ์ข
๋ฃ ํ Peer๋ฅผ ์ ์งํ ๋จ์ผ ์คํ์ cleanupState: retained, dataState: collecting์ด๋ฉฐ ๋ก๊ทธ๊ฐ ๊ณ์ ๋ฐ๋ ์ ์์ต๋๋ค.
์ฌ์์ ํ ์ ์ฅ ์ํ๊ฐ running ๋๋ queued์ธ ์คํ์ interrupted๋ก ํ์ํ๋ฉฐ ZIP ์๋ณธ ๋ฉํ๋ฐ์ดํฐ๋ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. ์ด๋ ํ์ ์ํ์ด๋ฉฐ ์ค์ Peer ์ข
๋ฃ๋ฅผ ์ฆ๋ช
ํ์ง ์์ต๋๋ค. ์ค์๊ฐ ์ํยท์นด์ดํฐ๋ฅผ ๋ณต์ํ๊ฑฐ๋ ์คํ์ ์๋ ์ฌ๊ฐํ์ง ์์ง๋ง ZIP ์งํ๋ ๋ณด์กด๋ ๋ก๊ทธ์์ ์ฌ๊ณ์ฐํฉ๋๋ค. ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์๋ ํญ๋ชฉ์ unreadable๋ก ํ์ํ๋ฏ๋ก ๋ก๊ทธยท์ ์ฅ ํ์ผ์ ํ์ธํ์ญ์์ค.
Runs 1โ3 ์๋ฃ ํ Run 4 of 10์ด ์คํจํ๋ค๋ฉด ๋ชฉ์ ์ ๋ง๊ฒ ์ ํํฉ๋๋ค.
| ์์ | ๋ค์ ์คํ | ์ด์ ์๋ |
|---|---|---|
| Continue remaining | ์์ง ์์ํ์ง ์์ Runs 5โ10๋ง ์คํ | Run 4๋ ์คํจ๋ก ๋จ์ผ๋ฉฐ ์ฑ๊ณต 10ํ๋ฅผ ์ฑ์ฐ๋ ๋์ฒด ํ์ฐจ๋ ์ถ๊ฐํ์ง ์์ |
| Retry from run 4 | ๋ฏธ์๋ฃ Runs 4โ10์ ๊ฐ๊ฐ ์ฒซ phase๋ถํฐ ์คํ | ์๋ฃ ํ์ฐจ๋ ๋ณด์กดํ๊ณ ์ฌ์๋ ํ์ฐจ๋ ์ run ID๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ด์ ๋ก๊ทธ๋ฅผ ์ ์ง |
์๋ ๋ณต๊ตฌ ๊ธฐ๋ฅ์ด๋ฉฐ phase ์ค๊ฐ ์ง์ ๋ณต์์ด๋ ์๋ ์ฅ์ ์ ํ์ ์๋๋๋ค.
Saved results์์ ์ค๋จ๋ ์๋ฆฌ์ฆ์ **Continue remaining (N)**์ ๋๋ฅด๋ฉด ์์ง ์์ํ์ง ์์ ํ์ฐจ๋ง ์ฌ๊ฐํฉ๋๋ค. ์๋ฃยท์คํจํ ํ์ฐจ์ ๊ทธ ๋ฐ์ ์ด๋ฏธ ์์ํ ํ์ฐจ๋ ๋ณด์กดํ๊ณ ๋ค์ ์คํํ์ง ์์ต๋๋ค. ์๋ batch ID, run ID, ํ์ฐจ ๋ฒํธ, ์ ์ฒด ๋ฐ๋ณต ์, ์ ์ฅ YAML๊ณผ ํ์ฐจ๋ณ seed๋ฅผ ์ ์งํฉ๋๋ค. ์๋ฅผ ๋ค์ด Run 2 of 5์์ ์คํจํ๋ค๋ฉด Runs 3โ5๋ฅผ ์คํํ๋ฉฐ, ์ฑ๊ณต 5ํ๋ฅผ ์ฑ์ฐ๊ธฐ ์ํ ๋์ฒด ํ์ฐจ๋ฅผ ์ถ๊ฐํ์ง ์์ต๋๋ค. ๋ฐฐ์น ํ๊ท ์๋ ๊ณ์ ์๋ฃ๋ ํ์ฐจ๋ง ํฌํจํฉ๋๋ค.
Controller ์ฌ์์ ํ์๋ ์ ์ฅ ๊ฒฐ๊ณผ์์ ์ฌ๊ฐํ ์ ์์ต๋๋ค. ์คํจ ํ์ฐจ ๋๋ ์์ ํ interrupted๊ฐ ๋ ํ์ฐจ๊ฐ ์๊ณ ๋ฏธ์์ ํ์ฐจ๊ฐ ๋ณด์กด๋์ด ์์ด์ผ ํฉ๋๋ค. Controller๋ ํผ์ด ์์ฑ ์ ์ ๊ธฐ๋กํ ์์ Agent์ ์ ๋ฆฌ๋ฅผ ์ฌ์์ฒญํ ๋ค ๋๋จธ์ง๋ฅผ ์์ํฉ๋๋ค. Controller ์ฌ์์ ํ Agent๊ฐ ์์ง ์ฌ๋ฑ๋กํ์ง ์์๋ ์ ์ฅ๋ ์์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ๋ฉฐ, ํด๋น Agent์ ์ฐ๊ฒฐํ ์ ์์ผ๋ฉด ์ ํ์ฐจ๋ฅผ ์์ํ์ง ์์ต๋๋ค. ์์ ๊ธฐ๋ก์ด ์๋ ๊ณผ๊ฑฐ ๊ฒฐ๊ณผ๋ ํ์ฌ ๋ฑ๋ก๋ Agent๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์๋ ค์ง์ง ์์ ํธ์คํธ์ ์ ๋ฆฌ๊น์ง ์ฆ๋ช ํ์ง ๋ชปํฉ๋๋ค. ์ ๋ฆฌ๊ฐ ์คํจํ๋ฉด ๋จ์ ํ์ฐจ๋ ์์ํ์ง ์๊ณ ์ค๋ฅ๋ฅผ ํ์ํ๋ฉฐ Continue remaining์ ๋ค์ ์๋ํ ์ ์์ต๋๋ค. ์ดํ ํ์ฐจ๊ฐ ๋ ์คํจํ๋ฉด ๋๋จธ์ง๋ ๋ค์ ์ค๋จ๋ฉ๋๋ค. ์ค๋ณต ์ฌ๊ฐ, ํ์ฑ ๋ฐฐ์น, ๋ค์ด๋ก๋์ ์งํ ์ค์ธ ๋ถ์ ์์ ์ ์ฌ๊ฐ ์ ์๋ฅผ ๋ง์ต๋๋ค. Stop batch๋ก ์ฌ๊ฐ ์ ์ ๋ฆฌ ๋จ๊ณ๋ ์ทจ์ํ ์ ์๊ณ , ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์๋ ์ ์๋ ์์ ์ ๊ณ์๋ฉ๋๋ค.
**Saved results โ Retry from run N (์๋)**์ผ๋ก ์คํจยท์ค๋จ๋ ํ์ฐจ๋ฅผ ํฌํจํ ๋ฏธ์๋ฃ ํ์ฐจ๋ถํฐ ๋ค์ ์คํํ ์ ์์ต๋๋ค. ์๋ฃ๋ ํ์ฐจ์ ๊ฒฐ๊ณผ๋ ์ ์งํฉ๋๋ค. ๋จ์ผ ์คํ ์คํจ์๋ Retry experiment๋ฅผ ์ฌ์ฉํฉ๋๋ค. Controller๊ฐ ๋จผ์ ์ด์ Peer๋ฅผ ์ ๋ฆฌํ ๋ค ์๋ ์๋๋ฆฌ์คยทํ์ฐจ ๋ฒํธยทseed๋ก ๊ฐ ํ์ฐจ์ ์ฒซ phase๋ถํฐ ์คํํฉ๋๋ค. ์ ๋ฆฌ๊ฐ ์คํจํ๋ฉด ์ ํ์ฐจ๋ ์ทจ์ ์ํ๋ก ๋จ์ผ๋ฉฐ ์์ธ์ ํด๊ฒฐํ ๋ค ๋ค์ ์ด์ดํ๊ธฐ๋ฅผ ๋๋ฅผ ์ ์์ต๋๋ค. ์ด์ ๋ก๊ทธ๋ Previous attempts์ ๋ณด์กดํ๊ณ ๋ฐฐ์น ์งํ๋ฅ ยทํ๊ท ์์ ์ ์ธํฉ๋๋ค. ๊ธฐ์กด Continue remaining์ ์๋ํ๋ ํ์ฐจ๋ฅผ ๊ฑด๋๋ฐ๊ณ ๋ฏธ์์ ์์ฌ ํ์ฐจ๋ง ์คํํฉ๋๋ค.
๋ ๋ฐฉ์ ๋ชจ๋ ์ด์ Peer๋ฅผ ์ ๋ฆฌํ ๋ค ์ ์คํ์ ์์ํฉ๋๋ค. Agent ์ฐ๊ฒฐยท์ ๋ฆฌ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ ๋ค ์ฌ์๋ํ์ญ์์ค. ํ์ฑ ์คํยท์ข ๋ฃ ์ฒ๋ฆฌยท๋ค์ด๋ก๋ยท์งํ ์ค run/batch ๋ถ์์ด ์์ผ๋ฉด ๋ณต๊ตฌ ์ ์๊ฐ ๊ฑฐ์ ๋ ์ ์์ต๋๋ค. ์ ์ ์กฐ๊ฑด์ ๋ณต๊ตฌ API, ๋น๊ต์ ํฌํจํ ์๋ ์ด๋ ฅ ๋ณด๊ณ ๋ ์ฐ๊ตฌ ์์น์ ์ฐธ๊ณ ํ์ญ์์ค.
Experiment progress๋ ์งํ ์ค โ ์ ์ถ ์์์ ๋๊ธฐ ํญ๋ชฉ โ ์ข ๋ฃ ์์๋ก ํ์ํฉ๋๋ค. ๋๊ธฐ ์ค์ธ ๊ฐ์ ์ ์ถ์ ๋ฐ๋ณต์ ํ์ฐจ ์ซ์ ์์๋ฅผ ์ ์งํฉ๋๋ค. Saved results์ ๋ฐฐ์น ๋ด๋ถ๋ Run n of M์ ํ์ฐจ ์ซ์ ์์๋ฅผ ์ ์งํ๋ฉฐ ์ด์ ์๋๋ ๋ณ๋๋ก ํ์ํฉ๋๋ค. ๊ฒ์ยท๋ด๋ณด๋ด๊ธฐยท์ญ์ ๋ ๊ฒฐ๊ณผ ๊ด๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ์ญ์์ค.
Experiment progress์ ์คํ ์คยท๋๊ธฐ ์ค์ธ ๊ฐ Run์ Est. finish์ ๋๋ต์ ์ธ ๋จ์ ์๊ฐ์ ํ์ํฉ๋๋ค. ์นด๋ ์ ์์ฝ์๋ ์งํ ์ค์ธ ๋ฐ๋ณต ์คํ ๊ทธ๋ฃน๋ณ Group est. finish๊ฐ ํ์๋ฉ๋๋ค. ์ข ๋ฃ ์๊ฐ์ ๋ธ๋ผ์ฐ์ ์ ํ์ง ์๊ฐ๋์ด๋ฉฐ, ๋จ์ ์๊ฐ์ Controller๊ฐ ๊ฐ์ ๊ทธ๋ฃน์์ ๋จผ์ ์คํ๋ Run์ ๋๊ธฐ ์๊ฐ๊น์ง ํฌํจํด ๊ณ์ฐํฉ๋๋ค. ์์ ๋ฐฐ์น๋ ์ด์ Peer ์ ๋ฆฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ ์ถ์ ์์ ๊ฐ๋ฅํ ๋๊น์ง **Estimatingโฆ**์ผ๋ก ํ์ํ๋ฉฐ, ์ ํ ์์ ์ด ํด๊ฒฐ๋๊ธฐ ์ ์ ํ์ ์ ์ธ ์ข ๋ฃ ์๊ฐ์ ์ ์ํ์ง ์์ต๋๋ค.
์ด๊ธฐ Scenario estimate๋ ๋๊ธฐ ์๊ฐ, ๋ฐ๋ณต ํ์์ ์ํ๋งํ interval์ ๊ณ์ฐํ๊ณ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์
์ ๊ฒน์นจ, wait-jobs, stop-all, onExit์ ๋ฐ์ํฉ๋๋ค. ์ค๋น ๋ฐฐ๋ฆฌ์ด๋ ์ฒ์์ ์ค์ ๋ timeout์ ์๊ฐ ์ฌ์ ๋ก ์ฌ์ฉํฉ๋๋ค. ์์ฒญ ์๋ ์ค์ ๋ ์ต๋๊ฐ์ ์ฌ์ฉํ๋ฏ๋ก ์ค์ publishยทleave ํ๋ณด๊ฐ ์ ์ผ๋ฉด ๋ ๋นจ๋ฆฌ ๋๋ ์ ์์ต๋๋ค. ๋
ธ๋ ๊ธฐ๋, ์ฉ๋ ๋๊ธฐ, ์์ฒญ ์ฒ๋ฆฌ์ ์ ๋ฆฌ ์๊ฐ์ ์ฌ์ ์ ์ ์ ์์ต๋๋ค. ๋จ๊ณ๊ฐ ๋๋๋ฉด ์ค์ ์์ยท์ข
๋ฃ ์๊ฐ์ผ๋ก ์์ธก์ ๊ฐฑ์ ํ๊ณ , ๊ฐ์ ์งํ ์ค ๊ทธ๋ฃน์์ ์ฑ๊ณตํ Run์ ํ๊ท ๋จ๊ณ ์๊ฐ๊ณผ ์ ๋ฆฌ๋ฅผ ํฌํจํ ์ ์ฒด ์์ ์๊ฐ์ผ๋ก ์ดํ ์ถ์ ์น๋ฅผ ๋ณด์ ํฉ๋๋ค. ์ด๋ Based on N completed runs๋ก ๋ณด์ ๊ทผ๊ฑฐ๋ฅผ ํ์ํฉ๋๋ค.
์์์น๋ ์ข ๋ฃ ๊ธฐํ์ด ์๋๋๋ค. ์๊ฐ ์ ๋ณด๊ฐ ๋ถ์กฑํ๋ฉด Estimatingโฆ, ์์์ ์ด๊ณผํ๋ฉด Taking longer than estimated๋ฅผ ํ์ํ๊ณ ๋ค์ ๋๊ธฐ Run๊ณผ ๊ทธ๋ฃน์ ์์ ์๊ฐ์ ๋ฆ์ถฅ๋๋ค. Run ์ค์งยท์ข ๋ฃ ํ์๋ ํด๋น ์์ธก์ ์ ๊ฑฐํฉ๋๋ค. ์ด ๊ฐ์ผ๋ก ์๋ ์ค์งํ์ง ์์ผ๋ฉฐ Saved results์ ์์ธก์ ๋ณด์กดํ์ง ์์ต๋๋ค.