๐Ÿ™„ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๋‹ค์ค‘ ์ฒ˜๋ฆฌ

jaypyonยท2021๋…„ 4์›” 15์ผ
0

์šด์˜์ฒด์ œ

๋ชฉ๋ก ๋ณด๊ธฐ
10/11
post-thumbnail

๐ŸŽฎ๋‹ค์ค‘ ์ฒ˜๋ฆฌ๊ธฐ ์Šค์ผ€์ฅด๋ง

๐ŸŽˆ๋น„๋Œ€์นญ ๋‹ค์ค‘ ์ฒ˜๋ฆฌ

์˜ค์ง ํ•˜๋‚˜์˜ ์ฝ”์–ด๊ฐ€ ๋งˆ์Šคํ„ฐ ์„œ๋ฒ„๋กœ์„œ ๋ชจ๋“  ์Šค์ผ€์ฅด๋ง, IO ์ฒ˜๋ฆฌ, ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์˜ ํ™œ๋™์„ ์ทจ๊ธ‰ํ•œ๋‹ค. ๋งˆ์Šคํ„ฐ ์„œ๋ฒ„๊ฐ€ ์ „์ฒด ์„ฑ๋Šฅ์„ ์ขŒ์šฐํ•˜๋Š” ๋ณ‘๋ชฉ์ด ๋œ๋‹ค.

๐ŸŽ€๋Œ€์นญ ๋‹ค์ค‘ ์ฒ˜๋ฆฌ

๊ฐ ํ”„๋กœ์„ธ์„œ๋Š” ์Šค์Šค๋กœ ์Šค์ผ€์ฅด๋ง

๊ณตํ†ต ํ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ.

  • ๊ณต์œ  ์ค€๋น„ ํ์— ๊ฒฝ์Ÿ ์กฐ๊ฑด ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•˜์—ฌ ๋ฝํ‚น ๊ธฐ๋ฒ• ์‚ฌ์šฉ.
  • ๋ฝํ‚น ๊ธฐ๋ฒ•์œผ๋กœ ์†Œ์œ ๊ถŒ ๊ฒฝ์Ÿํ•˜๋Š”๋ฐ, ์ด๊ฒŒ ๋ณ‘๋ชฉ์ด ๋จ.

๊ฐ๊ฐ์˜ ๋…๋ฆฝ์  ํ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ.

  • ์ผ๋ฐ˜์ ์ธ ๋ฐฉ์‹์ž„.
  • ๊ท ํ˜• ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑํ•จ.

๐ŸŽก๋‹ค์ค‘ ์ฝ”์–ด ํ”„๋กœ์„ธ์„œ

์šด์˜์ฒด์ œ์—์„œ๋Š” ๊ฐœ๋ณ„์˜ ๋…ผ๋ฆฌ์ ์ธ CPU๋กœ์„œ ์ธ์‹ํ•จ.

๊ฐ๊ฐ์˜ ๋ฌผ๋ฆฌ์นฉ์œผ๋กœ์„œ ์กด์žฌํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค ์†๋„, ์ „๋ ฅ๋ฉด์—์„œ ์œ ๋ฆฌํ•จ.

ํ”„๋กœ์„ธ์„œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ๋•Œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฑฐ๋‚˜ ์บ์‹œ๋ฏธ์Šค๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์Šคํ†จ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ 1์ฝ”์–ด์— 2๊ฐœ ์ด์ƒ์˜ ํ•˜๋“œ์›จ์–ด ์Šค๋ ˆ๋“œ๊ฐ€ ํ• ๋‹น๋œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด 8์ฝ”์–ด์— 2๊ฐœ์˜ ํ•˜๋“œ์›จ์–ด ์Šค๋ ˆ๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด ์šด์˜์ฒด์ œ๋Š” 16๊ฐœ์˜ ๋…ผ๋ฆฌ์  CPU๋กœ ์ธ์‹ํ•œ๋‹ค.

๐ŸŽ‡๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ

push migration

๋ถ€ํ•˜๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ  ๋ถˆ๊ท ํ˜• ์ƒํƒœ๋ผ๋ฉด (๊ณผ๋ถ€ํ™” ์ฒ˜๋ฆฌ๊ธฐ) ์—์„œ (๋œ ๋ฐ”์œ ์ฒ˜๋ฆฌ๊ธฐ) ๋กœ ์Šค๋ ˆ๋“œ๋ฅผ ์ด๋™

pull migration

(์‰ฌ๋Š” ์ฒ˜๋ฆฌ๊ธฐ) ๊ฐ€ (๋ฐ”์œ ์ฒ˜๋ฆฌ๊ธฐ) ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.

๐ŸŽ†Warm cache

์•ฝํ•œ ์„ ํ˜ธ๋„

์šด์˜์ฒด์ œ๊ฐ€ ํŠน์ • ํ”„๋กœ์„ธ์Šค๋ฅผ ํŠน์ • ํ”„๋กœ์„ธ์Šค์— ํ• ๋‹นํ•˜๊ณ ์ž best effort, ํ•˜์ง€๋งŒ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฒ˜๋ฆฌ๊ธฐ ์‚ฌ์ด์—์„œ ์ด์ฃผํ•  ์ˆ˜ ์—†๋‹ค.

๊ฐ•ํ•œ ์„ ํ˜ธ๋„

์‹œ์Šคํ…œ ์ฝœ์„ ํ†ตํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋Š” ์ž์‹ ์ด ์‹คํ–‰๋  ์ฒ˜๋ฆฌ๊ธฐ ์ง‘ํ•ฉ์„ ๋ช…์‹œํ•œ๋‹ค.
ex) sched_setafficnity command on Linux

NUMA (Non-uniform memory access)

ํ”„๋กœ์„ธ์„œ๊ฐ€ ๋…๋ฆฝ์ ์ธ ์ง€์—ญ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ–๊ณ  ์žˆ์–ด ๋น ๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ชจ๋“  ํ”„๋กœ์„ธ์„œ๊ฐ€ ๋กœ์ปฌ ๋ฉ”๋ชจ๋ฆฌ์— ๋™์‹œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋ณ‘๋ชฉํ˜„์ƒ์ด ํ•ด๊ฒฐ๋œ๋‹ค.ํ•˜์ง€๋งŒ,์›๊ฒฉ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ์—๋Š” ์‹œ์Šคํ…œ ์—ฐ๊ฒฐ๋ง(LINK)์„ ํ†ตํ•˜์—ฌ ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ํŠน์ง•์œผ๋กœ ์„ ํ˜ธ๋„๊ฐ€ ๊ณ ๋ ค๋œ๋‹ค.

๐ŸŽข์ด๊ธฐ์ข… ๋‹ค์ค‘ ์ฒ˜๋ฆฌ(heterogeneous multiprocessing HMP)

ํด๋Ÿญ ์†๋„, ์†Œ๋น„ ์ „๋ ฅ์ด ๋‹ค๋ฅธ ์ฝ”์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค๊ณ„ํ•œ๋‹ค.

์‹œ์Šคํ…œ, ์‚ฌ์šฉ์ž ํƒœ์Šคํฌ๊ฐ€ ๋ชจ๋“  ์ฝ”์–ด์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ ์—์„œ ๋น„๋Œ€์นญ ๋‹ค์ค‘ ์ฒ˜๋ฆฌ์™€ ๊ตฌ๋ณ„๋œ๋‹ค.

profile
DGU CSE

0๊ฐœ์˜ ๋Œ“๊ธ€