1. 개요

수치해석을 하는 엔지니어들은 사용하는 컴퓨터의 성능에 무척 민감합니다. 그 이유는 수치해석을 하기 위해 여러 준비단계와 분석 시간들이 필요하지만 당연히 압도적으로 시간을 소모하는 것이 계산 시간이기 때문일 것입니다.

따라서 컴퓨터의 성능 평가를 하기 위해서 기본적으로 검토해야 하는 사항을 살펴보도록 하겠습니다.

1-1시스템 성능의 정의

컴퓨터 시스템의 성능이란 단위 시간당 시스템이 처리하는 작업의 수에 의해 결정되거나 처리량, 응답시간, 평균 대기 시간 등의 요소가 복합적으로 상호작용하여 결정되는 것으로 시스템 총 생산성을 결정하는 요인입니다.

1-2시스템 성능 평가의 정의

  • 시스템(HW+SW)의 성능을 측정하거나 그 성능을 향상시킬 수 있는 방법을 조사하는 작업
  • 작업부하모델(Workload model)로 수행능력을 측정하여 시스템의 성능을 객관적이고 종합적으로 판단하는 것

1-3 목적

  • 선정(Selection) : 컴퓨터 시스템 구매나 선정시 이용.
  • 개선(Improvement) : 시스템 성능 향상이나 운용비용 절감
  • 설계(Design) : 제조, 개발업체들이 제품설계에 활용

2. 벤치마크

비교대상이 되는 여러 컴퓨터에 표준 벤치마크 프로그램을 수행시켜 속도를 비교 검사하여 성능을 측정하는 방법을 의미합니다.

2-1 벤치마크의 종류

SPEC ( Standard Performance Evaluation Corporation ) : 각 분야별 주요 환경을 통해 정수, 부동소수 또는 다수의 CPU에 대한 성능 측정방법

LADDIS : NFS 업체의 비공식 기구로 NFS의 업무 부하 증가에 따른 서버 응답 속도를 측정하는 방법

FLOPS (floating-point operations per second) : 플롭스는 초당 수행할 수 있는 실수 연산(부동소수점)의 횟수를 의미하는 컴퓨터 성능 단위로 1메가 플롭스라면 1초에 백만번의 실수을 처리할 수 있다는 것을 의미함. 플롭스 단위는 일반적으로 컴퓨터의 실수연산(FPU) 성능을 나타낼 때 주로 이용하고 있습니다.

LINPACK(linear programming package) : Single User FORTRAN Benchmark TEST로 공학 및 과학계산을 위한 선형 방정식을 풀고, 정수 및 부동소수점 계산을 수행하여 Cache Performance 측정. 프로그램 크기가 최근에 적용되는 캐시기억장치 크기보다 작아 실제 수행능력을 평가하는데 부족함이 있어서 최근에는 사용자가 실제 사용하는 응용프로그램 환경에서의 수행속도를 측정하기 위해 SPEC,AIM,코너스톤(Khornerstone) 등이 사용되고 있습니다.

Dhrystone : 정수계산 및 레코드와 포인터 조작 등을 위한 연산을 행하고 I/O 작업, 운영체제 호출(Operating system calling) 및 실수 연산은 하지 않음. 원시 프로그램을 시험하고자하는 컴퓨터에서 컴파일 한 후 실행시키므로 하드웨어 개선없이 단지 시험하고자하는 루틴에 해당하는 컴파일러 부분만을 개선하여도 빠른 결과를 얻을 수 있으므로 신뢰도가 떨어집니다.

Whetstone : 주로 부동소수점 처리 성능(Flops)을 평가하는 표준적인 벤치마크(benchmark) 프로그램의 하나로 부동소수점 처리성능을 평가하는 최초의 프로그램으로 정수처리능력을 평가하는 드라이스톤 벤치 프로그램처럼 컴파일러에 의존하여 신뢰도가 떨어집니다.

TPC ( Transaction Processing Performance Council) : OLTP 시스템의 처리성능 평가 기준의 표준 규격을 제정하기 위하여 결성된 비영리단체(1988)에서 제정했습니다.

2-2 전세계 슈퍼컴 현황

전세계에서 가장 빠른 슈퍼컴퓨터(HPC)의 현황은 https://www.top500.org 에서 1년에 2회 발표합니다. 현재까지 발표된 컴퓨터의 순위는 아래와 같습니다. 슈퍼컴은 대용량 데이터처리 또는 수치해석 처럼 대용량 과학기술 계산에 특화되어 있기 때문에 LINPACK 벤치마크 기준을 이용하여 Flops/s 성능을 기준으로 정하고 있습니다.

Top500_2016

3. 내가 사용하는 컴퓨터의 성능 알아보기

3-1 방대한 순위 데이터베이스를 가지고 있는 “퍼포먼스테스트” 프로그램

이 프로그램은 시스템의 PC를 구성하는 각 주요 하드웨어에 부하를 가한 후 이를 토대로 성능을 수치화한 데이터를 사용자로부터 수집하여 데이터베이스를 가지고 있어서 자신의 컴퓨터가 어느정도 수준의 컴퓨터인지 쉽게 알 수 있습니다. 프로그램은 30일간 무료로 사용해볼 수 있는데 성능테스트는 늘 하는 것이 아니고 한번만 해보면 되기 때문에 사용기간은 충분합니다. 다음 사이트 (http://www.passmark.com/) 에서 다운로드 받을 수 있습니다.

이 외에도 게임에 특화된 ‘3D마크(3DMark)” 프로그램이나 하드디스크 성능 분석에 특화된 “HD튠 프로(HD Tune Pro)”나 “크리스탈디스크마크(CrystalDiskMark)” 등이 있습니다.

PerformanceTest8_00PerformanceTest8_01PerformanceTest8_02PerformanceTest8_03PerformanceTest8_04

위 그림은 필자의 일반적인 업무용 노트북 컴퓨터를 대상으로 테스트한 결과로 초록색 Bar는 필자의 컴퓨터 성능을 의미합니다. 일반 사무 업무용으로 꽤 쓸만한 LG i5 gram 노트북으로  계산성능이 고사양이 아니어서 비교 순위는 좀 낮은편에 속한 것을 알 수 있습니다.

그래픽 성능의 경우 내장 그래픽을 사용하는 일반 업무용 노트북의 특성상 최하위에 속한 것을 알 수 있습니다. 그래픽카드의 경우 수치해석 결과를 분석하는 POST 업무는 꽤 많은 시간이 소요되는데, 일반적으로 내장 그래픽을 사용하는 컴퓨터의 경우 속도가 늦거나 프로그램 실행이 안되거나 화면의 일부 색상이나 형상등이 보이지 않는 여러가지 문제들이 발생합니다.

따라서 수치해석 결과분석을 하는 컴퓨터는 반드시 메인보드에 내장된 그래픽칩셉이 아닌 성능좋은 별도의 그래픽카드를 사용하는것을 권장합니다.
계산결과를 읽거나 저장하는 필자의 디스크 성능은 SSD가 기본 장착되어 있어서, 그나마  상위권에 속해 위안을 받았습니다.

3-2 계산용 컴퓨터의 선택

위에서 잠깐 살펴본 것처럼 컴퓨터의 성능이 어느정도 되는지 분석할 수 있는 여러가지 벤치마크 기준과 테스트 프로그램 들이 있습니다.
벤치마크 기준을 통해 수치해석에 적합한 성능을 가진 컴퓨터를 선별하는 Flops/sec 성능도 중요하지만, 방대한 계산 결과를 디스크에 읽고 쓰는 I/O 성능과, 해석결과를 분석할 때 절대적으로 필요한 그래픽 성능은 매우 중요하므로 메모리 디스크인 SSD 디스크와 고성능 그래픽카드에도 관심을 가져야 합니다.