์๋ ํ์ธ์. ์ด ๋น๋์ค์์๋ Python์์ ๋ฉํฐํ๋ก์ธ์ฑ๊ณผ ๋ฉํฐ์ค๋ ๋ฉ์ ๋น๊ตํด๋ณด๊ฒ ์ต๋๋ค. ์ด์ Python์ ๋ฉํฐ์ค๋ ๋ฉ๊ณผ ๊ด๋ จํ์ฌ ๋ ๊ฐ์ง ์ฃผ์ฅ์ ๋ง์ด ๋ฃ์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ Python์ด ๋ฉํฐ์ค๋ ๋๋ฅผ ์ง์ํ๋ค๋ ๊ฒ์ด๊ณ , ๋ ๋ฒ์งธ๋ Python์ด ๋ฉํฐ์ค๋ ๋๋ฅผ ์ง์ํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ ๊ฒ์ด ๋ง์๊น์? ์ ๊ฐ ์๊ฐํ๊ธฐ์๋ ์ ํํ ํํ์ Python์ด ๋ฉํฐ์ค๋ ๋๋ฅผ ์ง์ํ์ง๋ง ๋์์ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ์คํ๋ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ, ๋ ๊ฐ์ ์ค๋ ๋๊ฐ ๋์์ ์คํ๋ ์๋ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ค๋ ๋๋ ๋ฌด์์ผ๊น์? ์ด๋ฅผ ์ดํดํ๊ธฐ ์ํด ๋จผ์ ํ๋ก์ธ์ค๊ฐ ๋ฌด์์ธ์ง ์์์ผ ํฉ๋๋ค. ํ๋ก์ธ์ค๋ ํ๋ก๊ทธ๋จ์ ์ธ์คํด์ค์ ๋๋ค. ์๋ฅผ ๋ค์ด, Firefox์ ์ธ์คํด์ค๋ ์ฌ๋ฌ ๊ฐ์ Microsoft Word ์ธ์คํด์ค๊ฐ ์์ ์ ์์ต๋๋ค. ํ๋ก์ธ์ค๋ ์ฝ๋์ ๋ฐ์ดํฐ๋ฅผ ์ํด ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋ฉ๋๋ค. ํ๋ก์ธ์ค๋ ์ต์ ํ๋์ ์ค๋ ๋๋ฅผ ๊ฐ์ง๋ฉฐ, ์ด ์ค๋ ๋๋ ์์ฒด ๋ ์ง์คํฐ์ ์คํ์ ๊ฐ์ง๋๋ค. ์ด ์ค๋ ๋๋ ํ๋ก์ธ์ค์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์ค๋ ๋๋ ์ด์์ฒด์ ๊ฐ ๊ด๋ฆฌํ ์ ์๋ ๊ฐ์ฅ ์์ ๋ช ๋ น์ด ์ํ์ค์ ๋๋ค. ์ฆ, ์ด์์ฒด์ ๋ ์ค๋ ๋๊ฐ ์ธ์ ์ผ๋ง๋ ์ค๋ ์คํ๋ ์ ์๋์ง๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ํ๋ก์ธ์ค๋ ๋ค๋ฅธ ์ค๋ ๋๋ฅผ ์์ฑํ๊ฑฐ๋ ๋ฉํฐ์ค๋ ๋๋ฅผ ๊ฐ์ง ์ ์์ผ๋ฉฐ, ๊ฐ ์ค๋ ๋๋ ์์ฒด ๋ ์ง์คํฐ์ ์คํ, ์ฆ ๋ฉ๋ชจ๋ฆฌ์์์ ๊ณ ์ ๊ณต๊ฐ์ ๊ฐ์ง๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ค๋ ๋๊ฐ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ๊ทผํ ์ ์๋ค๋ ์ ์ ๋๋ค. ๋ฐ๋ผ์ ์ค๋ ๋๋ ํ๋ก์ธ์ค ๋ด์ ๋ณด๊ด๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
์ฌ์ง์ด Python ๊ตฌํ์ฒด๊ฐ ์ปค๋ ์ค๋ ๋ ๋์ ์ฌ์ฉ์ ์์ค์ ์ค๋ ๋๋ฅผ ์์ฑํ๋๋ผ๋, ์ค๋ ๋ ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์๋ ํ๋ก์ธ์ค์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์ต๋๋ค. ๋์ผํ ํ๋ก๊ทธ๋จ์ ๋ ๋ค๋ฅธ ์ธ์คํด์ค๋ฅผ ์คํํ๋ฉด ๊ณ ์ ํ ์ฝ๋์ ๋ฐ์ดํฐ ๊ณต๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ง๋๋ค. ์ด๋ฌํ ํ๋ก์ธ์ค๋ ๋ชจ๋ ๊ณ ์ ์ ์ค๋ ๋๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ฅ ์ค์ํ ์ ์ ํ๋ก์ธ์ค ๊ฐ์๋ ๋ฐ์ดํฐ๊ฐ ์ ๊ทผ ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋๋ค. ํ ํ๋ก์ธ์ค์ ๋ฐ์ดํฐ ๊ณต๊ฐ์ ๋ค๋ฅธ ํ๋ก์ธ์ค์์ ์ ๊ทผํ ์ ์์ต๋๋ค. ๋ ํ๋ก์ธ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ ค๋ฉด ํ๋ ํ์ดํ๋ฅผ ํตํด์ผ ํฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ์ค๋ ๋๋ ํ์ ํ์ดํ๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ์ ์์ง๋ง, ํ์ดํ์ ํ์๋ ๊ณ ๋ คํด์ผ ํ ์ค๋ฒํค๋๊ฐ ์์ต๋๋ค.
์ด์ Python์์์ ์ค๋ ๋์ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ ์์ธํ ์ดํด๋ด ์๋ค. ์๋ฅผ ๋ค์ด, ํ๋ก์ธ์ค 0๊ณผ ํ๋ก์ธ์ค 1์ด๋ผ๋ ๋ ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์์ต๋๋ค. ๊ฐ ํ๋ก์ธ์ค๋ ์ค๋ ๋ 0๊ณผ ์ค๋ ๋ 1์ด๋ผ๋ ๋ ๊ฐ์ ์ค๋ ๋๋ฅผ ๊ฐ์ง๋๋ค. 4์ฝ์ด CPU์์ ์ด๋ค ์ผ์ด ์ผ์ด๋๋์ง ๊ณ ๋ คํด๋ณด๋ฉด, Python์ ์ค๋ ๋๋ ๋์์ ์ผ๋ก ์คํ๋์ง๋ง ๋ณ๋ ฌ๋ก ์คํ๋์ง๋ ์์ต๋๋ค. ์ฆ, ๊ฐ ์ค๋ ๋๋ ์๊ฐ์ ์ผ๋ก ๋ถํ ๋์ด ์ฝ๊ฐ์ฉ ์งํ๋์ง๋ง, ๋์ผํ ํ๋ก์ธ์ค์ ๋ ์ค๋ ๋๋ ์ ๋ ๋์์ ์คํ๋์ง ์์ต๋๋ค. ์ค๋ ๋์ ํ๋ก์ธ์ค๋ ๋ฌผ๋ฆฌ์ CPU ์ฝ์ด์์ ์ด๋ฆฌ์ ๋ฆฌ ์ด๋ํ ์ ์์ต๋๋ค. ์ด ๋์์ ์ด์์ฒด์ ์์ ํน์ CPU ์ฝ์ด์ ๋ํ ์นํ์ฑ์ ์์ฒญํ์ฌ ์ต์ ํ ์ ์์ง๋ง, ์ด๋ ์ด์์ฒด์ ๊ฐ ๊ฒฐ์ ํ ๋ฌธ์ ์ ๋๋ค. ์ด์จ๋ , ์ฃผ์ด์ง ํ๋ก์ธ์ค์ ๊ฐ ์ค๋ ๋๋ ๋์์ ์คํ๋ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ Python์์ ๋์ผํ ํ๋ก์ธ์ค์ ๋ ์ค๋ ๋๊ฐ ๋์์ ์๋ํ ์ ์๋ค๋ ์ ์ ๋๋ค. ๋ฐ๋ฉด์ ํ๋ก์ธ์ค๋ ๋์์ ์คํ๋ ์ ์์ต๋๋ค. ์ฆ, ๊ฐ๋ณ ํ๋ก์ธ์ค์ ์ค๋ ๋ 0๊ณผ ์ค๋ ๋ 1์ ๊ฐ๊ฐ ๊ฐ๋ณ ํ๋ก์ธ์ค์ ์ํ๊ธฐ ๋๋ฌธ์ ๋์์ ์คํ๋ ์ ์์ต๋๋ค.
์ค๋ ๋๊ฐ ์คํ๋๊ธฐ ์ํด์๋ ํ๋ก์ธ์ค ๋ด์์ ๋ณดํธ๋ ์ ์ญ ์ธํฐํ๋ฆฌํฐ ์ ๊ธ์ ํ๋ํด์ผ ํฉ๋๋ค. ์ด๋ ํ ๋ฒ์ ํ๋์ ์ค๋ ๋๋ง ์คํํ ์ ์๋๋ก ๋ณด์ฅํ์ฌ ์ค๋ ๋ ์์ ์ฑ์ ์ ์งํฉ๋๋ค. ์ฌ๊ธฐ์ ์ค๋ ๋ ์์ ์ฑ์ด๋ ๋ฐ๋๋ฝ์ด ๋ฐ์ํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ์ด๋ ๋จ์ผ ์ค๋ ๋ ์ฑ๋ฅ์ ํฅ์์ํค์ง๋ง, ํ๋ก์ธ์ค ๋ด์์ ๋์ ๋ฉํฐ์ค๋ ๋ฉ์ ๋ฐฉ์งํฉ๋๋ค. ๋ค์ ๋งํด, ๋ ๊ฐ์ ์ค๋ ๋๊ฐ ๋์์ ์คํ๋ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ CPU๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ์์ ์ด ๋ณ๋ ฌ๋ก ์ํ๋ ์ ์๋ค๋ ์๋ฏธ์ ๋๋ค. ํ์ง๋ง ์ข์ ์ ์ IO ์ ํ ์ค๋ ๋๋ ๊ฑฐ์ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค. ๋๋ถ๋ถ์ ์๊ฐ์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋ ๋ฐ์ดํฐ๊ฐ ๋๊ฐ๊ธฐ ์ํ ์ ํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋ฐ ์๋นํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด์ CPU ๋ฐ์ด๋ ์์ ๋์ IO ๋ฐ์ด๋ ์์ ์ ๊ณ ๋ คํด ๋ด ์๋ค. ์ฌ๊ธฐ์ ๊ฐ ํ๋ก์ธ์ค์ ์ค๋ ๋ 0์ด IO ๋ฐ์ด๋ ์์ ์ ์ํํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์ค๋ ๋ 0์ IO ์์ ์ ๊ฐ์ง๋ฉฐ, ์ด๋ฌํ IO ์์ ์ ์ฐจ๋จ๋ฉ๋๋ค. ์ฆ, IO ์์ฒญ์ด ๋ฐ์ํ๋ฉด ์ค๋ ๋๋ ๋ฐํ ๊ฐ์ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ์ผ์ ์ฝ๊ฑฐ๋ ์ฐ๊ฑฐ๋, ์๋ฆฌ์ผ ํฌํธ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ฐ๊ฑฐ๋, URL์ ๊ฐ์ ธ์ค๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. Python์์๋ IO ์์ฒญ์ด ๋ฐ์ํ๋ฉด ์ธํฐํ๋ฆฌํฐ๊ฐ ์ ์ญ ์ธํฐํ๋ฆฌํฐ ์ ๊ธ์ ํด์ ํ์ฌ ๋ค๋ฅธ ์ค๋ ๋๊ฐ ์คํ๋ ์๊ฐ์ ํ์ฉํฉ๋๋ค. ์ค๋ ๋ 1์ด ๋ง์ ์์ ์ ์ํํ๋ CPU ์ ํ ์์ ์ด๋ผ๋ฉด, ๊ฐ๋ IO ์์ ์ ์ํํ๊ธฐ ์ํด ์ค๋จ๋๋ ๊ฒ์ ํ์ฉ๋ฉ๋๋ค. ํนํ ๋์์ด ๊ธด ์ฒ๋ฆฌ ์์ ์ ์ํํ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ ๊ธฐ๋ค๋ ค์ผ ํ๋ ๊ฒฝ์ฐ๋ผ๋ฉด ๋์ฑ ๊ทธ๋ ์ต๋๋ค. Python ์ค๋ ๋ฉ์ ์ฌ์ฉํ๋ฉด ๋ค์ ์์ ์ด ์์ฒญ๋๋ ๋์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
์ด์ Python์์ ์ค๋ ๋์ ํ๋ก์ธ์ค๋ฅผ ๋ช ๊ฐ์ง ๋ค๋ฅธ ์ธก์ ์งํ๋ฅผ ์ฌ์ฉํ์ฌ ๋น๊ตํด ๋ด ์๋ค. ์ค์ ๋น์ฉ ์ธก๋ฉด์์ ์ค๋ ๋๋ ์๊ฐ๊ณผ ์์ ๋ฉด์์ ํ๋ก์ธ์ค๋ณด๋ค ๋น์ฉ์ด ์ ๊ฒ ๋ญ๋๋ค. ์ฒ๋ฆฌ ๋ฐฉ์์์๋ CPython ์ธํฐํ๋ฆฌํฐ๊ฐ ์ค๋ ๋๋ฅผ ์ฒ๋ฆฌํ๊ณ , ์ด์์ฒด์ ๊ฐ ํ๋ก์ธ์ค๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์์๋ ์ค๋ ๋๊ฐ ํธ์คํธ ํ๋ก์ธ์ค์ ๋ชจ๋ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ, ์ด ๋ฐ์ดํฐ ๊ณต๊ฐ์ ๋ค๋ฅธ ์ค๋ ๋์ ๊ณต์ ํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด์ ํ๋ก์ธ์ค๋ ๋ณ๋์ ๋ฐ์ดํฐ ๊ณต๊ฐ์ ๊ฐ์ง๋๋ค. ์คํ ์ธก๋ฉด์์๋ ๋ ๋ค ๋์์ ์ด์ง๋ง, ์ค์ํ ์ ์ Python์์ ์ค๋ ๋๋ ๋ณ๋ ฌ์ ์ด์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ ์ค๋ ๋๋ ๋์์ ์คํ๋ ์ ์๊ณ , ํ๋ก์ธ์ค๋ ๊ฐ๋ฅํฉ๋๋ค.
์ดํดํ๊ธฐ ์ด๋ ค์ธ ์ ์์ผ๋ฏ๋ก ์๋ฅผ ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์ฌ๊ธฐ์๋ ํ์์คํฌํ t0์ ๋ฐฐ์ด์ ์ ๋ ฅ์ผ๋ก ๋ฐ๋ ํจ์๊ฐ ์์ต๋๋ค. ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์ด์ 50,000 ๋๋ ธ์ด(์ฆ, 50 ๋ง์ดํฌ๋ก์ด) ๊ฐ๊ฒฉ์ผ๋ก ์๊ฐ์ ๊ฐ์ง๋ฉฐ, ๋ ๋ฒ์งธ ์ด์๋ 0์ด ์ค์ ๋ฉ๋๋ค. ํจ์๋ ํ์์คํฌํ ์ดํ์ ์๊ฐ์ ์ฑ๋ฅ ์นด์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ฐํ๋ ๋ฌดํ ๋ฃจํ์ ๋ค์ด๊ฐ๋๋ค. ์ฑ๋ฅ ์นด์ดํฐ๊ฐ ๋ฐํํ ์๊ฐ์ด 75,000 ๋๋ ธ์ด์ธ ๊ฒฝ์ฐ, ๋ ๋ฒ์งธ ์ด์ ๋ ๋ฒ์งธ ํ์ด ์ฆ๊ฐํฉ๋๋ค. ์๊ฐ์ด ๋ฐฐ์ด์ ์ต๋ ์๊ฐ์ ์ด๊ณผํ๋ฉด ํจ์๊ฐ ๋ฐํ๋ฉ๋๋ค. ๊ฒฐ๊ตญ ๋ฐฐ์ด์ 50 ๋ง์ดํฌ๋ก์ด ์๊ฐ ๊ฐ๊ฒฉ ๋ด์์ ๋ฃจํ๊ฐ ์คํ๋ ํ์๋ก ์ฑ์์ง๊ฒ ๋ฉ๋๋ค. ์ด ํจ์๋ ํญ์ ๋ฌด์ธ๊ฐ๋ฅผ ์ํํ๋ ์ง์ค์ ์ธ ํจ์์ด๋ฉฐ, ์ค์ํ ๊ฒ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋ฉํฐ์ค๋ ๋๋ก ์๋ํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ค์ ๋ก ๋จ์ผ ์ฝ์ด ์ ํ์ ๋๋ค.
์ด์ threading ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ์ ์ฌ๋ฌ ์ค๋ ๋๋ฅผ ์์ฑํ๊ณ , ์ด ๋ฐฐ์ด์ ๊น์ ๋ณต์ฌ๋ณธ์ ๊ฐ ์ค๋ ๋์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ฐ ์ค๋ ๋๋ฅผ ์คํํ์ฌ ๋ฐฐ์ด์ ๊น์ ๋ณต์ฌ๋ณธ์ด ์ด ํจ์ f์ ๋ฐ์ดํฐ๋ก ์ฑ์์ง๋๋ก ํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ค ๋ชจ์ต์ผ๊น์? ์ฌ๊ธฐ 4๊ฐ์ ์ค๋ ๋ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค. ์ฐธ๊ณ ๋ก ์ ๋ 16๊ฐ์ ์ปค๋ ์ค๋ ๋๊ฐ ๋์์ ์คํ๋ ์ ์๋ 8์ฝ์ด CPU๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. 4๊ฐ๋ง ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ผ์ชฝ์ ๊ฐ๋ก ๋ง๋๋ ํน์ ์๊ฐ ๊ฐ๊ฒฉ์ ๋ํด ํ์คํ ๊ทธ๋จ์ด ์ฑ์์ก๋์ง๋ฅผ ๋ํ๋ ๋๋ค. ์์์ด ์๋ ๊ณณ์ ์ค๋ ๋๊ฐ ์์ ์ ์ํํ๊ณ ์์์ ์๋ฏธํฉ๋๋ค. ์ธ์ ๋ ์ง ํ ๋ฒ์ ํ๋์ ์ค๋ ๋๋ง ์คํ๋๊ณ ์์์ ์ ์ ์์ต๋๋ค. ์ค๋ ๋๋ ๋ชจ๋ 15๋ฐ๋ฆฌ์ด์ ๊ฐ๋ณ ์ฒญํฌ๋ก ๋๋์ด์ ธ ์์ผ๋ฉฐ, ์ด๋ ์ฐ์ฐ์ด ์๋๋๋ค. CPython์ ์ค๋ ๋๊ฐ ์ฐจ๋จ IO ํธ์ถ์ ๋๋ฌํ๊ฑฐ๋ 15๋ฐ๋ฆฌ์ด๊ฐ ๊ฒฝ๊ณผํ ๋๊น์ง ์คํ์ ํ์ฉํฉ๋๋ค. ๋งค์ฐ ๋๋ฌผ๊ฒ ์ค๋ ๋๋ 15๋ฐ๋ฆฌ์ด ์ดํ์ ๋ค์ ์คํํ ์ ์์ผ๋ฉฐ, ์ด๋ ์ฝ๊ฐ์ ์ผ์ ์ค์ง๋ฅผ ์ด๋ํฉ๋๋ค. ์ด 3์ด ๋์ ์์ฑ๋ ํ๋ ํ๋กฏ์์ ์ด๋ 200๊ฐ์ ์ค๋ ๋ ํ ๋น ์ฒญํฌ๋ฅผ ๋ํ๋ ๋๋ค. ๊ฐ ์ค๋ ๋๊ฐ ์คํ๋ ์๊ฐ์ ์ค๋ฅธ์ชฝ์ ํ๋กํ ๋์ด ์์ต๋๋ค. ๋ชจ๋ ์ค๋ ๋๊ฐ ๋์ผํ ์์ ์ ์ํํจ์๋ ๋ถ๊ตฌํ๊ณ ์ค๋ ๋์ ์คํ ์๊ฐ์ด ๊ณ ๋ฅด์ง ์์ต๋๋ค. ์ ์ฒด์ ์ผ๋ก 3์ด ๋์ ๋ชจ๋ ์ค๋ ๋์์ ์ฝ 3์ด์ ์์ ์ด ์ํ๋์๊ณ , ๋ชจ๋ ์ค๋ ๋์ ํจ์ ํธ์ถ ์๋ ์ฝ 200๋ง ๋ฒ์ด์์ต๋๋ค.
8๊ฐ์ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ ๋ ์ํฉ์ ๋งค์ฐ ์ ์ฌํ์ง๋ง, ์ด 3์ด ๋์ ์ค๋ ๋๊ฐ ํ ๋น๋ ์๊ฐ์ ํจ์ฌ ๋ ๋ง์ ๋น๋์นญ์ด ๋ฐ์ํฉ๋๋ค. ์ผ๋ถ ์ฒญํฌ์์ ์ฝ๊ฐ์ ์ค๋จ์ด ๋ณด์ด๋ฉฐ, ์ด๋ ์ด์์ฒด์ ๊ฐ ๊ฐ์ ํ์ฌ ์ค๋ ๋๋ฅผ ์ ์ ์ค๋จ์ํค๊ณ ๋ค๋ฅธ ๋ฌผ๋ฆฌ์ ๋๋ ๊ฐ์ ํ๋ก์ธ์๋ก ์ด๋์ํค๋ ๋ฑ์ ์์ ์ ์ํํ๋ ๊ฒฝ์ฐ์ ๋๋ค. ์ด๋ ํจ์ ๋ฐ๋ณต์ด ์๋ฃ๋์ง ์์ ์ต์ 50 ๋ง์ดํฌ๋ก์ด์ ์ฐฝ์ ์ด๋ํฉ๋๋ค. 8๊ฐ์ ์ค๋ ๋๋ฅผ ํ ๋นํ์์๋ ๋ถ๊ตฌํ๊ณ ์ํ๋ ์ค์ ํจ์ ํธ์ถ ์๋ ์ฝ 200๋ง ๋ฒ์ผ๋ก, ์ค๋ ๋ ์๋ฅผ ๋ ๋ฐฐ๋ก ๋๋ ธ์์๋ ๋ถ๊ตฌํ๊ณ ์ค์ ํจ์ ํธ์ถ ์๋ ๊ฑฐ์ ๋์ผํฉ๋๋ค.
16๊ฐ์ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ ๋ ์ฒซ ๋ฒ์งธ 3์ด ํ ์คํธ์์ ๋งค์ฐ ํฐ ๋น๋์นญ์ด ๋ํ๋ฉ๋๋ค. ์ ์ฒด์ ์ผ๋ก 3์ด ๋์ 16๊ฐ์ ์ค๋ ๋์์ ์ฝ 3์ด์ ์์ ์ด ์ํ๋๋ฉฐ, ๋ชจ๋ ์ค๋ ๋์์ ํฐ ๋น๋์นญ์ด ๋ฐ์ํฉ๋๋ค. ๋ฎ์ ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ง ์ค๋ ๋๊ฐ ๋ ๋ง์ ์ด๊ธฐ ์๊ฐ์ ํ ๋น๋ฐ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
์ฌ์ค, ์ง๊ธ ๋ณด์๋ค์ํผ, ์ค๋ ๋ 12, 13, 14, 15 ์ค ์ด๋ ๊ฒ๋ ์ค์ ๋ก ์คํํ ์๊ฐ์ด ํ ๋น๋์ง ์์์ต๋๋ค. ๊ทธ๋์ 16๊ฐ์ ์ค๋ ๋์ ์ด ํจ์ ํธ์ถ ์๋ ์ฝ 200๋ง ๋ฒ์ผ๋ก, 8๊ฐ์ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ ๋์ ๋น๊ตํด๋ ๊ฐ์ ๋ ์ ์ด ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด, ์ด๋ฌํ CPU ์ ํ ์์ ์ ์ํํ ๋ ์ด๋ป๊ฒ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์๊น์? ๋ฉํฐ์ฝ์ด ์์คํ ์ ํ์ฉํ์ฌ ์ฑ๋ฅ์ ์ค์ ๋ก ๋์ด๋ ค๋ฉด ๋ฉํฐํ๋ก์ธ์ฑ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฉํฐํ๋ก์ธ์ฑ์ ์ฌ๋๋ค์ด ์ค์ ๋ก ๋ฉํฐ์ค๋ ๋ฉ์ด๋ผ๊ณ ์๊ฐํ๋ ์์ ์ ์ํํ ์ ์๋ ํ์ค ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ๋ฉํฐํ๋ก์ธ์ฑ์ ํตํด ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋์์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์ฝ๋๋ฅผ ์์ ํ์ฌ ์ด๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ก, ํนํ ์๋์ฐ์์ ์ฌ์ฉํ ๋ offset ์๊ฐ์ time.time์ผ๋ก ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. ์ฑ๋ฅ ์นด์ดํฐ๋ ํ๋ก์ธ์ค ์์ ์๊ฐ์ ์๋์ ์ด๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋ค๋ฅธ ์๊ฐ์ ์์ฑํ๋ฉด offset์ผ๋ก perf counter๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. time.clock๋ ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ๋ฉฐ, ํ์ด์ฌ 3.8์์ ์ ๊ฑฐ๋ ์์ ์ ๋๋ค. time.process_time๋ ํ๋ก์ธ์ค์ ํน์ ํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋คํํ๋, ์ต์ํ ์ ์ปดํจํฐ์์๋ time.time ํจ์๊ฐ ์ฝ 1๋ฐ๋ฆฌ์ด์ ํด์๋๋ฅผ ๊ฐ์ง๋ฉฐ ํ๋ก์ธ์ค์ ํน์ ๋์ง ์์ต๋๋ค. 1๋ฐ๋ฆฌ์ด๋ ํ์ฉ ๊ฐ๋ฅํ offset์ด๋ฏ๋ก, ์ฐ๋ฆฌ๋ ๋๊ธฐํ๋ฅผ ์ํด time.time์ ์ฌ์ฉํ๊ณ ๋์ ์ฑ๋ฅ์ binning์ ์ํด time.perf_counter๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ํ, ํ๋ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ์ง ์์ผ๋ฏ๋ก ์ด๋ฒ์๋ ๋ฐฐ์ด์ ๋ฐํํด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ณ๋์ ๋ฐฐ์ด ๋ณต์ฌ๋ณธ์ ํ๋ก์ธ์ค์ ๋ณด๋ด์ผ ํ๋ฉฐ, ํ๋ก์ธ์ค๋ ์ด๋ฅผ ๋ค์ ๋ณด๋ด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ด ๋ฐฐ์ด์ ๊น์ ๋ณต์ฌ๋ณธ์ ์ฌ๋ฌ ๊ฐ ์์ฑํ๊ณ , multiprocessing.Pool ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ์์ปค ํ์ ์์ฑํฉ๋๋ค. ์ด ํ์ ์๋์ผ๋ก ๋ฐฐ์ด์ starmap ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ์กํ๊ณ , ๋ฐํ๋ ๋ฐฐ์ด๋ ์์๋๋ก ์ฒ๋ฆฌํฉ๋๋ค. ๊ฐ๋ณ ํ๋ก์ธ์ค์ ์ ๋ขฐํ ์ ์๋ ํ์์คํฌํ(t0)๋ฅผ ๋ณด๋ด ๋๊ธฐํ๋ฅผ ๋ณด์ฅํฉ๋๋ค. ํ๋ก์ธ์ค ๊ฐ์๋ ํต์ ์ ํฌํจํ ๋ง์ ์ค๋ฒํค๋๊ฐ ์์ต๋๋ค. ์ ์ฑ๋์ ์ด์ ๊ด๋ จ๋ ๋ค๋ฅธ ๋น๋์ค๋ ์์ผ๋ ์ฐธ๊ณ ํ์ธ์. ์ด๋ฒ ๋น๋์ค์์๋ ํ๋ก์ธ์ค์ ์คํ ์ฑ๋ฅ๋ง์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ด์ 4๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ ํ๋กฏ์ ๋ค์ ์ดํด๋ณด๋ฉด, ๋งค์ฐ ๋ค๋ฅธ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ๊ฐ ํ๋ก์ธ์ค๊ฐ ๋์์ ์คํ๋๋ ๊ฒ์ ๋ช ํํ ๋ณผ ์ ์์ต๋๋ค. ๋ํ, ๋ณ๋ ฌ๋ก ์คํ๋๊ธฐ ๋๋ฌธ์ ์ฒ๋ฆฌ ์๊ฐ์ด ๊ฑฐ์ ๋์ผํฉ๋๋ค. ๋ชจ๋ ํ๋ก์ธ์ค๋ ๊ฑฐ์ ๋์์ ์์๋๋ฉฐ, ์์ ๋ฐฐ์ด์ ๊ฐ ํ๋ก์ธ์ค์ ๋ณด๋ด๊ณ ๋ง์ ์์ ์ ์ํํ๊ธฐ ๋๋ฌธ์ ๋ฉํฐ์ค๋ ๋ฉ๋ณด๋ค ์ฝ 4๋ฐฐ ๋ ๋ง์ ์์ ์ ์ํํฉ๋๋ค. ์ค์ ๋ก, ์ด 3์ด ๋์ ์ฐ๋ฆฌ๋ 900๋ง ๋ฒ์ ํจ์ ๋ฐ๋ณต์ ์ํํ์ฌ, ๋ฉํฐ์ค๋ ๋ฉ์์ ์ ๊ณต๋ ์ฝ 200๋ง ๋ฒ๋ณด๋ค 4๋ฐฐ ์ด์ ๋ง์ ์์ ์ ์ํํ์ต๋๋ค. ์ด์์ฒด์ ๊ฐ ํ๋ก์ธ์ค๋ฅผ ๋ค๋ฅธ ์ฝ์ด๋ก ์ ํํ๋ ๋ฑ์ ์์ ์ ํ ๋ ๊ฐ๋ ๋๊น์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ ๋ฐ์ ์ผ๋ก ๋จ์ผ ์ค๋ ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋นํด ์์ฒญ๋ ํฅ์์ด ์์ต๋๋ค.
8๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ ๋๋ ๋งค์ฐ ํฅ๋ฏธ๋ก์ด ํ์์ ๋ณผ ์ ์์ต๋๋ค. ๊ฐ ํ๋ก์ธ์ค์ ์์ ์๊ฐ์ด ์๋ก ๋ค๋ฅด๋ฉฐ ํ์์คํฌํ ์ ํ๋๋ฅผ ์ด๊ณผํฉ๋๋ค. ์ด๋ ์ฌ์ ํ ๋จ์ผ ํ๋ก์ธ์ค(๋ฉ์ธ ํ๋ก์ธ์ค)์ ๋ช ๊ฐ์ ์ค๋ ๋๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ ์์ปค ํ๋ก์ธ์ค๋ก ํจํนํ๊ณ ์ ์กํ๋ ์์ ์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋ฌํ ์ค๋ ๋๋ ๋ณ๋ ฌ๋ก ์คํ๋ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋ฉํฐํ๋ก์ธ์ฑ์ ๋ง์ ์์ ์ ์ํํด์ผ ํ๋ CPU ์ ํ ์์ ์ ๋ ์ ํฉํฉ๋๋ค. ์ CPU๋ 8๊ฐ์ ์ฝ์ด์ ๋์์ ๋ฉํฐ์ค๋ ๋ฉ์ ์ง์ํ์ฌ ๊ฑฐ์ ๋ชจ๋ ์ฝ์ด๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์๋์ฐ๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ ์ ์ํํ ์ถฉ๋ถํ ์ฒ๋ฆฌ ์ฝ์ด๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ฐ๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๊ฐ ๋ง์ ๋ฉํฐ์ฝ์ด CPU ์ ์์ ์๊ตฌํ์ฌ ํ์ด์ฌ ํ๋ก์ธ์ค์ CPU ์๊ฐ์ ๊ฒฝ์ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฉํฐ์ค๋ ๋ฉ๋ณด๋ค 8๋ฐฐ ๋ ๋ง์ ์์ ์ ์ํํ๊ณ , ์ด 1,670๋ง ๋ฒ์ ํจ์ ๋ฐ๋ณต์ด ์ด๋ฃจ์ด์ก์ต๋๋ค. ์ด๋ 4๊ฐ์ ํ๋ก์ธ์ค๋ณด๋ค ์ฝ 85% ๋ ๋ง์ ์์ ์ด๋ฉฐ, 8๊ฐ์ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ ๋๋ณด๋ค 8๋ฐฐ ๋ ๋ง์ ์์ ์ ์ํํ ๊ฒ์ ๋๋ค.
๋ค์์ผ๋ก 16๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ ์๋ฅผ ๋ณด๋ฉด ๋งค์ฐ ํฅ๋ฏธ๋กญ์ต๋๋ค. ์ CPU๋ 8๊ฐ์ ๋ฌผ๋ฆฌ์ ์ฝ์ด์ ๋์์ ๋ฉํฐ์ค๋ ๋ฉ์ ํ์ฑํํ์ฌ 16๊ฐ์ ๋์ ์ปดํจํ ์ ๋์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ํ๋ก์ธ์ค์ ์์ ์๊ฐ์ด ๋ชจ๋ ๋ถ์ฐ๋์ด ์์ต๋๋ค. ์ด ๋ถ์ฐ์ ์ฝ 180๋ฐ๋ฆฌ์ด๋ก, ์ด์ 8๊ฐ์ ์ค๋ ๋์ 10๋ฐ๋ฆฌ์ด๋ณด๋ค ํจ์ฌ ํฝ๋๋ค. ์ด 3์ด ๋์ ์ผ๋ถ ํ๋ก์ธ์ค๋ ๋น๊ต์ ์ค๋จ ์์ด ์คํ๋์ง๋ง, ํ๋ก์ธ์ค 9, 10, 13, 14๋ ๊ณ์ ์ค๋จ๋์ด ์ ์ฒด ์งํ์ด ๋ฎ์์ง๋๋ค. ์ด๋ ์ด์์ฒด์ ๊ฐ ์ด๋ฌํ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํด์ผ ํ๋ฉฐ, ๊ฐ๋ ๋ ์ค์ํ ์์ ์ด ๋ฐ์ํ์ฌ ์ด์์ฒด์ ๊ฐ ์ผ๋ถ ์ค๋ ๋๋ฅผ ์ค๋จ์ํค๊ณ ๋ค๋ฅธ ์์ ์ ์ฒ๋ฆฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฉํฐ์ค๋ ๋ฉ๋ณด๋ค 14๋ฐฐ ๋ ๋ง์ ์์ ์ ์ํํ๊ณ ์์ผ๋ฉฐ, ์ด 2,060๋ง ๋ฒ์ ํจ์ ํธ์ถ์ด ์ด๋ฃจ์ด์ก์ต๋๋ค. ์ด๋ 8๊ฐ์ ํ๋ก์ธ์ค๋ณด๋ค 23% ๋ ๋ง์ ์์ ์ด์ง๋ง, ํ๋ก์ธ์ค ์๋ฅผ ๋ ๋ฐฐ๋ก ๋๋ ธ์์๋ ๋ถ๊ตฌํ๊ณ ์ค์ ์ฑ๋ฅ ์ฆ๊ฐ๊ฐ ๊ฑฐ์ ์๋ ๊ฒ์ ํฅ๋ฏธ๋กญ์ต๋๋ค. ์ด๋ ์ค์ ๋ก SMT ๊ธฐ์ ๋๋ฌธ์ผ ์ ์์ต๋๋ค. 8๊ฐ์ ๋ฌผ๋ฆฌ์ ์ฝ์ด์ 16๊ฐ์ ๋์ ์ฝ์ด๊ฐ ์์ง๋ง, ์ค์ ์ฑ๋ฅ ์ฆ๊ฐ๋ ์ฝ 25%์ ๋๋ค.
๋ฉํฐํ๋ก์ธ์ฑ๊ณผ ๋ฉํฐ์ค๋ ๋ฉ์ ํ๋ ํ๋กฏ์ ๋น๊ตํ๋ฉด, ๋ฉํฐํ๋ก์ธ์ฑ์ด ๋์ผํ ์๊ฐ ๋์ ๋ ๋ง์ ์์ ์ ์ํํ๊ณ ์์์ ์ ์ ์์ต๋๋ค. ๋ฉํฐ์ค๋ ๋ฉ๊ณผ ๋ฉํฐํ๋ก์ธ์ฑ์์ ์ค์ ์์ ์ ๋น๊ตํด ๋ณด๋ฉด, ๋ฉํฐ์ค๋ ๋ฉ์ ์ค๋ ๋๋ฅผ ์ถ๊ฐํด๋ ์์ ๋์ด ์ฆ๊ฐํ์ง ์์์ง๋ง, ๋ฉํฐํ๋ก์ธ์ฑ์ 8๊ฐ์ ํ๋ก์ธ์ค๊น์ง ๋ฐ์ด๋ ํ์ฅ์ฑ์ ๋ณด์์ต๋๋ค. ์ด๋ ๋ฌผ๋ฆฌ์ CPU ์ฝ์ด ์์ ์ผ์นํ๋ฉฐ, ๋์ ๋ฉํฐ์ค๋ ๋ฉ ๊ธฐ์ ์ ํ์ฉํ์ฌ ์ถ๊ฐ๋ก 25% ๋ ๋ง์ ์์ ์ ์ํํ์ต๋๋ค. ์ด์์ฒด์ ๊ฐ ์ฌ์ ํ ์ผ๋ถ CPU ์๊ฐ์ ํ์๋ก ํ๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด, ์ด๋ฌํ ๊ฒฐ๊ณผ๋ ๋งค์ฐ ์ธ์์ ์ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ด ์ ์ ๋ฌด์์ผ๊น์? CPU ์ ํ ์์ ์ ๊ฒฝ์ฐ, ๋ฉํฐํ๋ก์ธ์ฑ์ด ๊ฐ์ฅ ์ ํฉํฉ๋๋ค. ๋ฐ๋ฉด, IO ์ ํ ์์ (์๋ฆฌ์ผ ๋ฐ์ดํฐ ๋๊ธฐ, URL ํด์ ๋๊ธฐ ๋ฑ)์๋ ๋ฉํฐ์ค๋ ๋ฉ์ด ์ ํฉํฉ๋๋ค. ๋ฉํฐ์ค๋ ๋ฉ์ GUI ๋๋ ๋ํํ ๊ธฐ๋ฅ์ ํ์ํ๋ฉฐ, ๋งค์ฐ ์์ CPU ์๊ฐ์ ํ์๋ก ํฉ๋๋ค. ๋ฉํฐํ๋ก์ธ์ฑ์ด๋ ๋ฉํฐ์ค๋ ๋ฉ์ ์๋ชป ์ฌ์ฉํ๋ฉด ํ๋ก๊ทธ๋จ์ด ๋ ๋๋ ค์ง ์ ์์ผ๋ ์ฃผ์ํด์ผ ํฉ๋๋ค. numpy์ scipy์ ๊ฐ์ ๋ชจ๋์ ๋ฐฑ์๋๋ ์ต์ ํ๋์ด ์์ด ๋ฉํฐํ๋ก์ธ์ฑ์์ ์ด๋์ ์ป์ง ๋ชปํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ฐ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ์ ํฉํ ์ ๊ทผ ๋ฐฉ์์ ์ ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
'๐ป > ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ด์ฌ venv๋ฅผ conda ์ฒ๋ผ ์ฌ์ฉ (0) | 2024.07.01 |
---|---|
Youtube ์์์ ํ ์คํธ๋ก ๋ณํ (0) | 2024.06.19 |
ํ์ด์ฌ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ (0) | 2024.06.18 |
[programming in Scala] 01. ์ค์นผ๋ผ ํ๊ฒฝ ์ค์ (0) | 2023.08.06 |
[Go] Go for Beginners (0) | 2021.11.30 |