[CS] lecture13

Minsolยท2024๋…„ 12์›” 14์ผ
0

๐Ÿ–ฅ๏ธCS

๋ชฉ๋ก ๋ณด๊ธฐ
12/12

Chapter 6: Parallel Processors from Client to Cloud(ํด๋ผ์ด์–ธํŠธ์—์„œ ํด๋ผ์šฐ๋“œ๊นŒ์ง€์˜ ๋ณ‘๋ ฌ ํ”„๋กœ์„ธ์„œ)

Domain-Specific Architectures(DSAs) (๋„๋ฉ”์ธ ํŠนํ™” ์•„ํ‚คํ…์ฒ˜)

๐Ÿšจ5๊ฐœ์˜ ์›์น™ ๋Œ€ํ•ด ์•”๊ธฐ!!

  • 5๊ฐ€์ง€ ์›์น™
      1. ๋ฐ์ดํ„ฐ๋ฅผ ์ด๋™ํ•˜๋Š” ๊ฑฐ๋ฆฌ๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ „์šฉ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉ(use dedicated memories)
      1. ๊ณ ๊ธ‰ ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜ ์ตœ์ ํ™”๋ฅผ ์ œ์™ธํ•˜๊ณ (dropping), ์ ˆ์•ฝ๋œ ์ž์›์„ ๋” ๋งŽ์ด ์‚ฐ์ˆ  ์œ ๋‹›(arithmetic units)์ด๋‚˜ ๋” ํฐ ๋ฉ”๋ชจ๋ฆฌ์— ํˆฌ์ž(invest)
      1. ๋„๋ฉ”์ธ์— ๋งž๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํ˜•ํƒœ์˜ ๋ณ‘๋ ฌ์„ฑ(parallelism)์„ ์‚ฌ์šฉ
      1. ๋„๋ฉ”์ธ์— ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ์™€ ํƒ€์ž…์„ ์‚ฌ์šฉ
      1. DSA์— code๋ฅผ portํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„๋ฉ”์ธ์— ํŠนํ™”๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ
      • ex. ๋จธ์‹ ๋Ÿฌ๋‹์„ ์œ„ํ•œ Tensorflow

Message Passing(MP)(๋ฉ”์„ธ์ง€ ์ „๋‹ฌ)

  • ์ „์—ญ ๋ฉ”๋ชจ๋ฆฌ(global memory)์—†์ด ํ”„๋กœ์„ธ์„œ ์ง‘ํ•ฉ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
  • ๊ฐ PE(ํ”„๋กœ์„ธ์„œ ์š”์†Œ)๋Š” ์ž์ฒด local memory๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๋‹ค๋ฅธ PE์™€ message๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•จ
  • ๊ฐ ํ”„๋กœ์„ธ์„œ๋Š” ๊ฐœ์ธ์ ์ธ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ ๊ณต๊ฐ„์„ ๊ฐ€์ง
  • ํ•˜๋“œ์›จ์–ด๋Š” ํ”„๋กœ์„ธ์„œ ๊ฐ„์— message๋ฅผ ์†ก/์ˆ˜์‹ (send/receives)

Clusters

  • ์—ฌ๋Ÿฌ ๋Œ€์˜ ์ปดํ“จํ„ฐ(node)๊ฐ€ ์ƒํ˜ธ ์—ฐ๊ฒฐ๋˜์–ด ํ•˜๋‚˜์˜ ํ†ตํ•ฉ๋œ(unified) ์ปดํ“จํ„ฐ ์ž์›์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋ฉฐ ํ•˜๋‚˜์˜ ๊ธฐ๊ณ„์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•˜๋Š”(illusion) ์‹œ์Šคํ…œ
  • ํด๋Ÿฌ์Šคํ„ฐ์˜ ์žฅ์ 
    • ์ ˆ๋Œ€์  ํ™•์žฅ์„ฑ(absolute scalability)
      • ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์ˆ˜๋ฐฑ ๋Œ€์˜ ๊ธฐ๊ณ„๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ ๊ธฐ๊ณ„๋Š” ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์„œ ์‹œ์Šคํ…œ์ผ ์ˆ˜ ์žˆ์Œ
    • ์ ์ง„์  ํ™•์žฅ์„ฑ(incremental scalability)
      • ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์ตœ์†Œํ•œ์˜ ์„œ๋น„์Šค ์ค‘๋‹จ(service disruption)์œผ๋กœ ์ž‘์€ ๋‹จ์œ„(small increments)๋กœ ํ™•์žฅ ๊ฐ€๋Šฅ
    • ๊ณ ๊ฐ€์šฉ์„ฑ(High availabilty)
      • ์†Œํ”„ํŠธ์›จ์–ด์—์„œ์˜ ์žฅ์• (fault-tolerant) ํ—ˆ์šฉ ๊ธฐ๋Šฅ
    • ๋†’์€ ๊ฐ€๊ฒฉ/์„ฑ๋Šฅ ๋น„์œจ(High price/performance ratio)
      • ์ƒ์šฉ ๋ถ€ํ’ˆ(Off-the shelf building blocks)์„ ์‚ฌ์šฉํ•œ ๊ตฌ์ถ•

Warehouse-Scale Computers (WSC) (๋Œ€๊ทœ๋ชจ์˜ ์ปดํ“จํ„ฐ)

  • ์ธํ„ฐ๋„ท ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต
    • ๊ฒ€์ƒ‰, ์†Œ์…œ ๋„คํŠธ์›Œํ‚น, ์˜จ๋ผ์ธ ์ง€๋„, ๋™์˜์ƒ ๊ณต์œ , ์˜จ๋ผ์ธ ์‡ผํ•‘, ์ด๋ฉ”์ผ, ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ๋“ฑ
  • HPC ํด๋Ÿฌ์Šคํ„ฐ์™€์˜ ์ฐจ์ด์ 
    • ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋” ๋†’์€ ์„ฑ๋Šฅ์˜ ํ”„๋กœ์„ธ์„œ & ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉ
    • ์Šค๋ ˆ๋“œ ์ˆ˜์ค€์˜ ๋ณ‘๋ ฌ์„ฑ์„ ๊ฐ•์กฐ & WSC๋Š” ์š”์ฒญ/์ž‘์—… ์ˆ˜์ค€(request/task-level)์˜ ๋ณ‘๋ ฌ์„ฑ์„ ๊ฐ•์กฐ
  • ๋ฐ์ดํ„ฐ์„ผํ„ฐ์™€์˜ ์ฐจ์ด์ 
    • ๋ฐ์ดํ„ฐ์„ผํ„ฐ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๊ณ„์™€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ํ•˜๋‚˜์˜ ์œ„์น˜๋กœ ํ†ตํ•ฉ(consolidate)
    • ๋‹ค์–‘ํ•œ ๊ณ ๊ฐ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐ€์ƒ๋จธ์‹ (virtual machines)๊ณผ ํ•˜๋“œ์›จ์–ด์˜ heterogeneity(๋‹ค์–‘์„ฑ)์„ ๊ฐ•์กฐํ•จ

Three major distinctions of WSC(WSC์˜ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ์ฐจ์ด์ )

    1. ํ’๋ถ€ํ•˜๊ณ  ์‰ฌ์šด ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ(Ample, easy parallelism)
    • ๋ฐฐ์น˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(ex. MapReduce)์€ ๋…๋ฆฝ์ ์ธ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ๋Œ€๋Ÿ‰์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋ฏ€๋กœ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ์—์„œ ํฐ ์ด์ ์„ ์–ป์Œ
    • interactive internet service ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(ex. Saas)์€ ์ˆ˜๋ฐฑ๋งŒ ๋ช…์˜ ๋…๋ฆฝ์ ์ธ ์‚ฌ์šฉ์ž๊ฐ€ ์ธํ„ฐ๋„ท ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋ฏ€๋กœ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ์˜ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Œ
    1. ์šด์˜ ๋น„์šฉ(Operantional Costs)์˜ ์ค‘์š”์„ฑ
    • WSC๋Š” ๊ธด ์ˆ˜๋ช…์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ๊ฑด๋ฌผ,์ „๋ ฅ,๋ƒ‰๊ฐ ์ธํ”„๋ผ๋Š” 10๋…„ ๋˜๋Š” 20๋…„์— ๊ฑธ์ณ ๋ถ„ํ• ๋˜์–ด ํšŒ์ˆ˜๋จ(amoritized)
    1. ๊ทœ๋ชจ(scale) ๋ฐ ๊ทœ๋ชจ์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ
    • ํ•˜๋‚˜์˜ WSC๋ฅผ ๊ตฌ์ถ•ํ•˜๋ ค๋ฉด 50,000๊ฐœ์˜ ์„œ๋ฒ„์™€ ์ด๋ฅผ ์ง€์›ํ•˜๋Š” ์ธํ”„๋ผ๋ฅผ ๊ตฌ๋งคํ•ด์•ผ ํ•˜๋ฉฐ ์ด๋Š” volume discounts๋ฅผ ์ œ๊ณตํ•จ
    • ์ด๋Ÿฌํ•œ ๋Œ€๊ทœ๋ชจ์˜ ๊ฒฝ์ œ(economies of scale)๋Š” ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์˜ ๋ฐœ์ „์„ ์ด๋Œ์—ˆ์Œ

Grid Computing vs Cloud computing

  • Grid Computing(๊ทธ๋ฆฌ๋“œ ์ปดํ“จํŒ…)

    • ๋ถ„์‚ฐ ์ปดํ“จํŒ… ์•„ํ‚คํ…์ฒ˜(distributed computing architecture)๋ฅผ ๋”ฐ๋ฆ„
    • ํ™•์žฅ์„ฑ(scalability)๊ฐ€ ๋ณดํ†ต์ž„
    • ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…๋ณด๋‹ค ๋œ ์œ ์—ฐ(flexible x)
    • Grid๋Š” ๋ถ„์‚ฐ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(decentralized management system)์œผ๋กœ ์šด์˜๋จ
    • ๊ทธ๋ฆฌ๋“œ ์ปดํ“จํŒ…์—์„œ, Grid๋Š” ์กฐ์ง(organization)์ด ์†Œ์œ ํ•˜๊ณ  ๊ด€๋ฆฌํ•จ
  • Cloud Computing(ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…)

    • ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ์ปดํ“จํŒ… ์•„ํ‚คํ…์ฒ˜(client-server computing architecture)๋ฅผ ๋”ฐ๋ฆ„
    • ํ™•์žฅ์„ฑ(scalability)๊ฐ€ ๋†’์Œ
    • ๊ทธ๋ฆฌ๋“œ ์ปดํ“จํŒ…๋ณด๋‹ค ํ›จ์”ฌ ์œ ์—ฐ(flexible)
    • Cloud๋Š” ์ค‘์•™์ง‘์ค‘์‹ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(centralized management system)์œผ๋กœ ์šด์˜๋จ
    • ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์—์„œ, ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„๋Š” ์ธํ”„๋ผ ์ œ๊ณต์ž(infrastructure providers)๊ฐ€ ์†Œ์œ ํ•จ

Interconnection Networks

๐Ÿšจ์›๋ฆฌ ์•Œ๊ธฐ

  • ๋ณ‘๋ ฌ ๊ธฐ๊ณ„์—์„œ source node์—์„œ ์›ํ•˜๋Š” ๋ชฉ์ ์ง€ node๋กœ ์ •๋ณด๋ฅผ ์ „์†กํ•˜๋Š” ์‹œ์Šคํ…œ
  • ๊ธฐ์ˆ 
    • link์™€ switch๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Œ, ์ด๋ฅผ ํ†ตํ•ด ์ถœ๋ฐœ๋…ธ๋“œ์—์„œ ๋ชฉ์ ์ง€ ๋…ธ๋“œ๋กœ ์ •๋ณด๋ฅผ ์ „์†กํ•จ
    • topology์™€ routing algorithm์— ์˜ํ•ด ์ •์˜๋จ

Modeling Performance

  • Arithmetic intensity(์‚ฐ์ˆ  ๊ฐ•๋„)
    - ํ”„๋กœ๊ทธ๋žจ์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ(floating-point operations)๊ณผ ์ฃผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์•ก์„ธ์Šคํ•œ data bytes์˜ ๋น„์œจ

Roofline Diagram(๋ฃจํ”„๋ผ์ธ ๋‹ค์ด์–ด๊ทธ๋žจ)

  • (์ถ”๊ฐ€์„ค๋ช…) ํ”„๋กœ๊ทธ๋žจ์˜ ์„ฑ๋Šฅ์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•œ ๋„๊ตฌ๋กœ, ์ฃผ์–ด์ง„ ์‹œ์Šคํ…œ ๋‚ด์—์„œ ๊ฐ€๋Šฅํ•œ ์ตœ์  ์„ฑ๋Šฅ์˜ ํ•œ๊ณ„ & ์‹ค์ œ ์„ฑ๋Šฅ์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ
  • ์‚ฐ์ˆ  ๊ฐ•๋„(Arithmetic intensity==> floating-point ์—ฐ์‚ฐ ๋Œ€๋น„ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ฑ๋Šฅ์„ ๋‚˜ํƒ€๋‚ด๊ณ , ์„ฑ๋Šฅ์˜ ์ƒํ•œ์„ =๋ฃจํ”„๋ผ์ธ์„ ๋ณด์—ฌ์คŒ
  • ์ˆ˜์‹: ์ตœ๋Œ€ ์„ฑ๋Šฅ์€ ๋‘ ๊ฐ’ ์ค‘ ๋” ์ž‘์€ ๊ฐ’์— ์˜ํ•ด ์ œํ•œ๋˜๋ฉฐ, ์‹œ์Šคํ…œ์˜ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ๋‚˜ํƒ€๋ƒ„ => ํ”ผํฌ ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ์ด ์ค‘์š”ํ•˜๋‹ค๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๊ฐ€ ๋ณ‘๋ชฉ์„ ๋งŒ๋“ค๊ณ , ๋ถ€๋™ ์†Œ์ˆ˜์  ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•˜๋‹ค๋ฉด ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋ณ‘๋ชฉ์ด ๋  ์ˆ˜ ์žˆ์Œ
  1. Peak Memory Bandwidth (Peak Memory BW)
  • ์‹œ์Šคํ…œ์—์„œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ์ตœ๋Œ€ ์†๋„ (์ด๋ก ์  ์ตœ๋Œ€ ์„ฑ๋Šฅ)
    -"Stream": ๋Œ€๊ฐœ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ์ž‘์—…์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ์„ ์ตœ๋Œ€ํ™”ํ•˜๋Š” ์ž‘์—…
  1. Peak Floating-point Performance (Peak FP Performance)
  • ์‹œ์Šคํ…œ์—์„œ ๋ถ€๋™์†Œ์ˆ˜์  ์—ฐ์‚ฐ(์˜ˆ: ๋ง์…ˆ, ๊ณฑ์…ˆ ๋“ฑ)์˜ ์ตœ๋Œ€ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์„ ์˜๋ฏธ
  • ์‹œ์Šคํ…œ์ด ์ดˆ๋‹น ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋ถ€๋™์†Œ์ˆ˜์  ์—ฐ์‚ฐ ์ˆ˜๋กœ ๋ณดํ†ต "FLOP" (Floating Point Operations per second) ๋‹จ์œ„๋กœ ์ธก์ •๋จ

=> ๋ฃจํ”„๋ผ์ธ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ Peak Memory BW์™€ Peak Floating-point Performance๋Š” ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์„ฑ๋Šฅ ํ•œ๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์ด ๊ฐ’๋“ค์ด ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ ๊ต์ฐจํ•˜๋Š” ์ง€์ ์ด ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์˜ ๋ณ‘๋ชฉ(bottleneck:์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์„ ์ œํ•œํ•˜๋Š” ์ง€์ )์„ ๋‚˜ํƒ€๋ƒ„

  • ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ์ด ๋ถ€๋™์†Œ์ˆ˜์  ์„ฑ๋Šฅ๋ณด๋‹ค ๋‚ฎ๋‹ค๋ฉด, ํ”„๋กœ๊ทธ๋žจ์€ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์— ์˜ํ•ด ์„ฑ๋Šฅ์ด ์ œํ•œ๋  ์ˆ˜ ์žˆ์Œ
profile
๐Ÿ‘€

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