멀티코어와 멀티스레딩

멀티코어 상에서의 소프트웨어 성능

Amdahl의 법칙

- 처리기의 개수가 많아질수록 속도가 향상된다 - 오버헤드 => 멀티프로세서들 간의 통신 및 작업 분배와 캐시 일관성 유지를 위한 추가 작업의 결과로 발생 - 멀티프로세서를 사용하는 오버헤드에 대한 부담을 증가시켜 성능이 정점을 찍고 감소하기 시작 - 다수의 상대적으로 독립적인 트랙잭션의 병렬 처리를 하는 서버 => **멀티코어 구조의 효과적 이용** => 효과적인 멀티코어 시스템을 위해 응용에서 순차적인 부분에 대한 영향 줄이기

효율적인 멀티코어의 혜택

  • 멀티스레드화된 네이티브 응용
    • 고도의 스레드화된 프로세스를 가짐
  • 멀티프로세스 응용
    • 단일 스레드화된 프로세스들이 존재
  • 자바 응용
    • 자바 언어 자체가 멀티스레드화된 응용 개발에 용이하여 멀티코어 기술의 혜택을 받음
  • 멀티인스턴스 응용
    • 다수의 응용 인스턴스를 멀티코어 구조상에서 병렬적 실행함으로써 속도의 향상
    • 격리(isolation) 가 필요한 응용 인스턴스의 경우 가상 기술을 사용하여 각각의 인스턴스마다 독립되고 안전한 환경 제공