« 도움말

멀티코어

멀티코어란?

컴퓨터의 핵심이 되는 CPU의 연산장치를 코어라고 부르며, 이 코어가 2개 이상인 CPU를 멀티코어 CPU라고 부릅니다. 초창기의 PC는 코어가 1개인 싱글 코어 CPU였지만, 최근에는 모바일용 CPU도 대부분 멀티코어 CPU로 출시될 만큼 일반화 되었기 때문에, 멀티코어를 지원하느냐 지원하지 않느냐 여부는 소프트웨어의 성능을 평가하는 중요한 요소가 됩니다.


멀티코어를 이용한 압축

반디집은 멀티코어를 이용한 압축 기능을 제공합니다. 압축 작업은 CPU 연산이 많이 필요한 작업이기 때문에, 멀티코어를 이용하여 병렬로 처리할 경우 속도향상에 큰 도움이 됩니다.

예를 들어 4코어 8스레드를 지원하는 PC에서 싱글 코어로 압축하는 것 보다 멀티코어를 활용하여 압축할 경우 최대 6배까지 빠르게 압축할 수 있으며, 8코어 15스레드를 지원하는 PC에서 테스트해보면 최대 13배까지 빠르게 압축하는 것을 확인할 수 있습니다.

아래 이미지는 4코어 8스레드 맥북프로에서 멀티코어를 지원하는 반디집으로 압축하는 모습과, 멀티코어를 지원하지 않는 파인더로 압축하는 모습을 비교한 모습입니다.



압축 해제할 때 멀티코어를 활용하지 못하는 이유

반디집으로 압축할 때는 멀티코어를 활용하여 CPU 점유율이 끝까지 올라가는 것을 볼 수 있지만, 압축을 풀 때는 CPU 점유율이 높지 않은 것을 확인할 수 있습니다.

그 이유는 데이터를 압축하는 알고리즘의 특성 때문입니다. 대부분의 압축 알고리즘은, 앞부분의 데이터를 참고해서 뒷부분의 데이터를 압축하는 방식을 사용합니다. 이런 경우 압축할 때는 병렬 작업을 통해서 압축하는 것은 가능하지만 압축을 풀 때는 앞부분이 풀려야만 뒷부분을 풀 수 있기 때문에 압축 작업과 달리 병렬작업이 불가능하여, 어쩔 수 없이 싱글 코어만 활용해서 압축을 풀게 되므로, CPU 활용률이 떨어지게 됩니다.


압축할때 CPU 점유율이 높지 않은 경우

그 이외에도 압축을 할 때 CPU 점유율이 높지 않은 문제가 종종 발생할 수 있습니다. 압축 작업은 다음과 같은 작업을 반복하게 됩니다.

압축할 파일 읽기(원본 하드) ▶ 압축하기 (CPU) ▶ 압축 파일에 쓰기(대상 하드)

보통은 이 작업에서 CPU가 병목이기 때문에 CPU 점유율이 100%가 되지만, 만일 원본 하드나 대상 하드가 느린 경우(외장 하드나 외장 USB 메모리 혹은 네트워크 드라이브를 사용하는 경우) 병목이 CPU가 아닌 디스크 I/O에서 발생하기 때문에 CPU 점유율이 높지 않은 현상이 발생할 수 있습니다.

그 이외에도, 작은 크기(100KB이하)의 파일을 다수 압축하는 경우에도, CPU 점유율이 높지 않을 수 있습니다.