'Thread'에 해당되는 글 1건

  1. 2007.05.06 스레드를 이용한 병렬처리 프로그래밍 – 2

스레드를 이용한 병렬처리 프로그래밍 – 2

예전에 "스레드를 이용한 병렬처리 프로그래밍"이라는 이름으로 스레드를 이용, 멀티코어를 위한 프로그래밍에 대해 간단히 이야기 한 적이 있습니다. 하지만 그 때에는 단순히 "CPU를 동시에 이용이 가능하다" 까지만 이야기를 해서 이번엔 멀티코어에 맞춰 만들어진 프로그램이 어느 정도 성능에 이득이 있을까를 두고 실험을 해 봤습니다.

지난번과 마찬가지로 Java로 구현을 했습니다. 구현 알고리즘은 "홀수 마방진"(알고리즘에 따른 속도차이편의 알고리즘을 사용했음)이고, 측정 기준은 선언부와, 출력부 기타 등등을 모두 제외한 순수 연산부분만을 측정했습니다.

우선 첫 번째로 스레드가 1개(스레드가 없을 때와 동일)일 때 상황입니다.

사용자 삽입 이미지
344ms군요. 32bit에서는 405ms에 처리했었습니다.

그럼 다음으로 스레드가 2개일 때 상황입니다. 듀얼코어나 그 이상의 프로세서를 가진 컴퓨터에서라면 효과가 있겠죠?

사용자 삽입 이미지
187ms입니다. 32bit에서는 218ms에 처리했었습니다. 2배까지는 아니더라도 2배 가까이 빨라졌습니다.

이것으로 잘만 작성하면 멀티코어 CPU를 지원할 수 있다는 것이 입증이 되었습니다 ^^ 혹시 이걸 사용해보실 분은 받아가서 사용해 보세요. 혹시 버그가 있으면 말씀해 주시고요 ^^

Trackback 0 Comment 0