Multiple Issue, Hardware MultiThreading

강병우·2023년 9월 18일
0

병렬프로그래밍

목록 보기
5/24
post-custom-banner

Multiple Issue

z[1]과 z[2], z[3]와 z[4]가 동시에 계산되면 성능이 2배로 좋아진다.

Static multiple issue : 정해진 순서(Compile time)에 의해 실행된다.
Dynamic multiple issue : 런타임에 의해 실행된다. -> Superscalar라고도 불린다.

multiple issue를 이용하기 위해서, 동시에 실행되어야 하는 명령체계를 찾아야 한다. 또한 실행결과에 대한 예측계산을 하게 되는데, 만약 실제 결과가 달라진다면 다시 돌아가서 계산하게 된다(Specultaion).

Hardware Multithreading

Thread-level parallelism(TLP) 동시에 여러개의 다른 스레드들이 실행될 수 있도록 만든 하드웨어

Fine-grained

지연되는 스레드를 스킵하면서 명령을 처리중인 스레드들을 스위칭한다.

  • 장점 : 지연시간으로 인해 낭비되는 머신 타임을 피할 수 있음
  • 단점 : 특정 스레드가 실행 중이라면 계속 붙잡을 수도 있고, 지연이 자주 일어나면 그만큼 스위칭이 자주 일어날 수 있다. -> 개별 스레드 입장에서, 스위칭이 자주 일어나 처리시간이 증가된다(느려진다)

Coarse-grained

매번 스위칭 및 지연시간 체크를 하는 Fine-grained와 다르게, 일정시간동안 지연되어있다면 스위칭을 한다. -> 필요할 때만 스위칭 하자!

  • 장점 : 필요할 때만 스위칭하므로, 스위칭에 대한 리소스 소모는 Fine-grained에 비해 효율적이다 -> 스위칭 오버헤드 방지
  • 단점 : 스레드가 짧은 순간에 멈추면 프로세서에 빈 시간이 생길 수도 있다. 그리소 스레드 스위칭이 딜레이가 걸릴 수도 있다. 또한 스레드가 파이프라인에 채워지는 걸리는 시간이 필요하다->Start Overhead가 커진다.

Simultaneous multithreading(SMT)

멀티스레딩 환경에서 fine-grained를 할 수 있는 환경(우리가 사용하고 있는 환경이다)
-> Superscalar 프로세서에서 멀티스레드가 가능하다.

post-custom-banner

0개의 댓글