2011년 7월 15일 금요일

Rmax Rpeak 그리고 TOP 500 org

HPC에서 성능을 나타내는 용어는, Rmax Rpeak 입니다.  이는 실 성능치와 이론치라고 합니다.

Rmax = 실 성능치
Rpeak = 이론 성능치

앞서 CPU 의 이론적 성능치를 설명 하였는데, 이것이 바로 Rpeak 를 말 하는 것입니다. 실제 구축이 된 클러스터의 경우, 이론적인 성능이 아무로 높다고 하더라도, 여러 요소들로 인하여 실 성능인 Rmax 가 나빠 질 수 있습니다.

HPC 의 성능을 순위를 매겨 놓은 사이트가 있는데, 바로 Top500,org 란 사이트 입니다.
이는 1년에 두번 전세계 슈퍼컴퓨터의 순위를 매겨 놓은 사이트로 1996 6월 부터 시작을 하여 매년 두번 (6 , 11) 에 순위를 발표를 합니다.  이 사이트에서 공식적인 테[스트툴은 Linpack 을 사용을 합니다.  Linpack에 대한 상세 내역은 www.top500.org 사이트를 참조 하시기 바랍니다.
TOP500.org 에는 HPC 순위를 매겨 놓은 것 뿐만 아니라, HPC에 대한 각종 정보(예를 들어 공급 업체, 국가, 프로세서 종류, 아케텍쳐, 운영체제, 네트웍크 종류 등등) HPC 도입시 유용한 정보를 제공 해 주고 있고 있습니다.

2011년 7월 11일 월요일

컴퓨터 성능이란

 
일번적으로 컴퓨터의 속도를 결정 짓는 이론적인 요인에는 여러가지가 있습니다. HPC에서 주로 사용되는 측도는 Flops (Floating-point operation per second: 부동 소수점연산) 란 용어를 사용을 하게 됩니다. Flops는 단위시간에 프로세가가 할 수 있는 부동소수점 연산의 수를 말합니다. 프로세서는 딘위 클럭 마다 2진수의 더하기, 배기 연산을 하게 됩니다. 정수연산과 달리, 부동 소수 연산의 경우, 부동 소수 숫자를 정수로 변환을 하는 단계를 거치게 됩니다.  이에, 정수 연산과 부동 소수 성능은 비례하지는 않습니다.
공학 및 그래픽, 3D 등의 작업에는 부동 소수 연산이 컴퓨터 성능에 중요한 기준이 되므로, HPC에서 컴퓨터의 성능을 이야기 할때는 이 부동 소수 연산 처리를 얼마나 할 수 있는냐가 그 성능의 중요한 척도가 되는 것입니다,

CPU 의 성능을 결정 짓는 요인은 두 가지가 있습니. 컴퓨터의 Clock 속도(CPU Clock Hz로 표시를 합니다 )  단위 Clock   수행 할 수 있는 Instruction 의 갯수 입니다.  예를 들어. ,  1Hz 동안 CPU 가 있고, 1Hz 동안  1개의 Floating-point operation Instruction  을 가진다면,  이를 1Flops 라 명 합니다.


부동 소수 연산 성능 척도 : FLOPS

CPU Clock *  Floating-point operation Instruction = FLOPS

1GFLOPS = 초당 10억번의 실수 연산 능력


예전 Intel Pentium III 의 경우, 단위 Clock   1개의 Floating-point operation Instruction 처리를 하였으며,  초창기 Intel Xeon 의 경우는 2개의 Floating-point operation Instruction  처리를 하였습니다.

최근  Intel Xeon 의 경우는 1개의 Processor 안에 Core 를 여러개를 넣어 만든 멀티 코어 프로세서 입니다.
이 경우 , 각각의 Core 에도  Floating-point operation Instruction  가 있는데,  최근 Intel Xeon 5600 개열의 경우는 코아당 4개의 Floating-point operation Instruction 를 처리가 가능 합니다.

, 

Pentium III 1GHz 의 이론 성능은 1GHz * 1 CPU * 1 Floating-point operation Instruction  = 1GFlops  가 되며,
Intel Xeon 5100 시리즈 2.4 GHz 의 이론 성능은
2.4 GHz * 1CPU * 2 Floating-point operation Instruction = 4.8GFlops
Intel Xeon L5638 2.0 GHz
2.0 GHz * 1 CPU * 6 Core * 4 Floating-point operation Instruction = 48GFlops

가 되는 것입니다.

여기서 보듯, 과거 Intel Xeon 5100 시리즈  2.4 GHz  가 최근 CPU Intel Xeon L5638 시리즈  2.0 GHz  보다Clock 이 높지만,  실제 성능은 Xeon L5638 이 무려 10배 이상이나 높음을  보실 수 있습니다.

클러스터 소개 (Cluster)

.
오늘날 클러스터 시스템은 과거와 달리, 많은 분야에서 사용이 되고 있는 기술입니다. 클러스터 기술은 고가의 하이-엔드 컴퓨팅 환경의 대안으로 NASA에서 Beowulf 프로젝트라는 이름으로, 시장에서 누구나 살수 있는 PC 하드웨어와 누구나 사용할 수 있는 소프트웨어인 리눅스를 이용한 하이엔드 컴퓨팅 영역에 대한 새로운 시도를 하게 되었습니다.[
Beowulf 프로젝트가 성공하게 된 몇 가지 중요한 요인으로 프로세스의 급속한 발전을 들 수 있습니다. 이와 더불어 고급 유닉스 서버나 웍스테이션에 만 사용되었던 SCSI 장비의 대중화와 그리고, 네트워크 장비의 급속한 발전과 LINUX Windows OS의 발전으로 인해 Beowulf 클러스터를 구축할 수 있는 하드웨어를 PC급으로도 충분히 구축 가능해졌습니다. 초기, 클러스터링 기술은 일반 하드웨어를 리눅스를 통하여 하나의 시스템으로 통합하여Beowulf 라는 새로운 타입의 병렬컴퓨터가 만들어 진 것입니다. 리눅스는 기존의 상용 유닉스와 같은 환경과 소스 코드의 100% 개방으로 클러스터링에 필요로 하는 기능을 자유롭게 소스 코드를 수정하고 새롭게 개발하여 배포할 수 있는 환경을 제공하였습니다. 이러한 리눅스 특징이 없었다면 Beowulf 프로젝트는 실패하였을 것 입니다. 또한 MPI, PVM같은 message passing library의 표준화가 이루어져 상용 병렬컴퓨터와 마찬가지로 별다른 어려움 없이 기존 소스를 사용할 수 있게 되었습니다.
Beowulf cluster는 각각 독립적인 머신으로 M/B, RAM, NIC, CPU만을 가지고 키보드, 마우스, 모니터는 공유기를 통하여 master node에서 전체 node를 제어하고 전적으로 병렬처리에 사용이 됩니다.  가장 간단한 Beowulf cluster switching hub 없이 직접 cross link하여 2 node로 구성할 수 있는데 각node CPU 2개씩 설치한다면 간단한 4 processor mini Beowulf cluster를 만들 수 있습니다.

초기 1979년 당시 CFD의 적용 분야는 소수 분야에 적용이 되었습니다.