[개발현장에서 사용되는 컴퓨터 과학] (1) CPU의 성능과 소프트웨어의 중요성

BJ Park·2022년 10월 16일
0
post-thumbnail

CPU 성능을 나타내는 단위를 알아보자 : 클럭 레이트 Hz (Clock Rate)

CPU 의 성능을 나타내는 Hz 는 Clock Rate 의 단위로 1초당 클럭의 수를 나타낸다.
CPU Clock은 CPU 내 크리스털 진동자의 1회 점멸로, CPU의 명령 처리 최소 단위이다.
CPU 성능으로 N GHz 가 주어지면 1 클럭의 소요 시간은 1 / N * Giga(10^9) 으로 계산할 수 있다. 여기에서 1 / 10^9 는 ns 이므로 간단히 1 / N ns 로 표시 가능하다.

CPU의 성능과 처리속도 혁신 정체 현상은 오래된 이야기이며, 지속될 것이다

위 이미지에서 우리는 트랜지스터의 집적도가 계속해서 증가하는 한편, 스레드 하나의 퍼포먼스 개선은 정체되어 로그적으로 수렴하는 곡선을 볼 수 있다. 특히 Frequency 부분을 보면 이미 오래 전 2000년대 초에 성능의 개선이 멈춘 것을 확인할 수 있다.
당시 CPU 성능 1GHz에서 4GHz 수준으로 올리는 혁신의 국면에서는 크리스털 진동자에서 발생하는 신호를 변환하여 만들어지는 클럭 신호 강도를 낮추어 주파수를 조정하는 기술을 적용하여 진동자의 점멸 당 시스템의 효율을 높이는 방식이 사용되었는데, 그 이상 신호강도를 낮추면 노이즈를 극복할 수 없어서 그 이상의 클럭 속도는 개선이 어려워졌다.

서버 성능의 향상은 곧 코어 수 증가가 되었다

트랜지스터 집적도가 선형적으로 늘어나도 스레드 하나의 처리 속도는 로그적으로 수렴하는 한계에 따라, 결국 서버 성능 향상을 위해 현재는 코어 수를 늘리는 방법이 대세가 되었는데 프로그램 자체가 병렬처리를 통해서 처리 시간을 줄이지 못하게 짜여있는 경우가 많아서, 지출된 디바이스 비용 만큼 성능 향상을 달성하지 못하는 경우가 많다.

고도의 컴퓨터과학 지식 적용과 소프트웨어 기술이 다시금 더욱 중요해진다

결론적으로 현재의 정체된 디바이스 혁신의 상황에서는 한 때 성능 개선을 쉽게 보장해 주었던 하드웨어 지출 증대가 더 이상 효과성을 보장할 수 없다.
그래서 고수준의 소프트웨어 기술을 통해서 (1) CPU 연산 중 비효율적 연산을 효율적 연산으로 대체, (2) CPU cache, stack 과 heap 메모리의 상세한 제어, (3) 데이터의 경량화, 네트워크 최적화, 적절한 자료구조 및 효율적 알고리즘 사용 등의 방법을 통해서 프로그램 성능을 개선하는 것이 매우 중요하고, 훨씬 더 효과적인 방법으로 각광받게 되었다.

profile
일 잘하는 백엔드 엔지니어

0개의 댓글