콘텐츠
초당 수백 조 개의 부동 소수점 계산을 수행 할 수있는 기계를 찾고 계십니까? 아니면 방에 설치된 슈퍼 컴퓨터에 대해 친구들에게 자랑하고 싶습니까? 고성능 컴퓨팅 클러스터 또는 슈퍼 컴퓨터를 구축하는 것은 무료 주말과 약간의 돈이 남아있는 애호가라면 누구나 달성 할 수있는 과제입니다. 기술적으로 말하면 다중 프로세서 슈퍼 컴퓨터는 문제를 해결하기 위해 함께 작동하는 컴퓨터 네트워크입니다. 이 기사에서는 하드웨어와 소프트웨어에 중점을두고 프로세스의 각 단계를 간략하게 설명합니다.
단계
- 먼저 필요한 하드웨어 구성 요소 및 리소스를 결정하십시오. 헤드 노드, 최소 12 개의 동일한 네트워크 노드, 이더넷 스위치, 배전 장치 및 랙이 필요합니다. 필요한 전기, 냉각 및 공간 수요를 결정합니다. 또한 사설 네트워크에 대해 원하는 IP 주소, 노드 이름 지정 방법, 설치할 소프트웨어 패키지 및 병렬 컴퓨팅을 수행하는 데 사용할 기술을 결정하십시오 (자세한 내용은 나중에 설명).
- 하드웨어는 비싸지 만 가이드에 나열된 모든 프로그램은 무료이며 대부분은 오픈 소스입니다.
- 이론적으로 슈퍼 컴퓨터의 속도를 확인하려면이 도구를 사용하십시오. http://hpl-calculator.sourceforge.net/
-
노드를 만듭니다. 노드를 마운트하거나 사전 조립 된 서버를 구입해야합니다.- 공간, 냉각 및 전력 사용량을 극대화하는 서버 섀시를 선택하십시오.
- 또한 여러 구식 서버를 사용할 수도 있습니다. 총 비용은 부품 합계보다 높지만 여전히 많은 비용을 절약 할 수 있습니다. 시스템이 제대로 작동하려면 모든 프로세서, 네트워크 어댑터 및 마더 보드가 동일해야합니다. 분명히 각 노드에 RAM과 스토리지를 포함하고 헤드 노드에 대해 하나 이상의 광학 드라이브를 포함해야합니다.
-
랙에 서버를 설치합니다. 하단부터 시작하여 상단이 너무 무겁지 않도록합니다. 이를 위해서는 친구들의 도움이 필요합니다. 밀도가 높은 서버는 매우 무거울 수 있으며 이들을 보유한 트랙을 따라 안내하는 것은 어렵습니다. - 서버 섀시 위에 이더넷 스위치를 설치합니다. 이번에는 스위치를 구성하십시오. 9000 바이트의 점보 프레임 크기를 활성화하고, IP 주소를 첫 번째 단계에서 결정한 고정 주소로 설정하고, SMTP 스누핑과 같은 불필요한 라우팅 프로토콜을 비활성화하십시오.
-
배전 장치를 설치합니다. 최대 부하에서 노드에 필요한 전류의 양에 따라 고성능 컴퓨팅을 위해 220V가 필요할 수 있습니다. - 모든 것이 설치되면 구성 프로세스를 시작할 수 있습니다. Linux는 HPC 클러스터에 이상적인 OS입니다. 과학 컴퓨팅을위한 이상적인 환경 일뿐만 아니라 수백 또는 수천 개의 노드에 무료로 설치할 수도 있습니다. 이러한 모든 노드에 Windows를 설치하는 데 드는 비용이 얼마나되는지 상상해보십시오.
- 모든 노드에서 동일해야하는 최신 버전의 마더 보드 BIOS 및 펌웨어를 설치하여 시작하십시오.
- 헤드 노드에 그래픽 인터페이스를 사용하여 각 노드에 선호하는 Linux 버전을 설치하십시오. 인기있는 옵션으로는 CentOS, OpenSuse, Scientific Linux, RedHat 및 SLES가 있습니다.
- Rocks Cluster Distribution을 사용할 수도 있습니다. 클러스터가 작동하는 데 필요한 모든 도구를 설치하는 것 외에도 Rocks는 PXE 부팅 및 Red Hat의 'Kick Start'절차를 사용하여 노드에 여러 인스턴스를 매우 빠르게 배포하는 탁월한 방법을 사용합니다.
- 메시징 인터페이스, 리소스 관리 및 기타 필요한 라이브러리를 설치합니다. 이전 단계에서 Rocks를 설치하지 않은 경우 병렬 컴퓨팅 메커니즘을 활성화하는 데 필요한 소프트웨어를 수동으로 구성해야합니다.
- 첫째, 여러 컴퓨터에 작업을 분할하고 배포 할 수있는 Torque Resource Manager와 같은 휴대용 대규모 관리 시스템이 필요합니다.
- Torque를 Maui Cluster Scheduler와 페어링하여 설치를 완료하십시오.
- 다음으로 서로 다른 노드의 개별 프로세스가 동일한 데이터를 공유하는 데 필요한 메시지 전송 인터페이스를 설치해야합니다. OpenMP는 사용하기 쉽습니다.
- 병렬 컴퓨팅 프로그램을위한 다중 스레딩 수학 라이브러리를 잊지 마십시오. Rocks를 설치하면 정말 쉽습니다.
- 컴퓨터 노드를 연결하십시오. 헤드 노드는 작업을 컴퓨터의 노드로 보낸 다음 결과를 다시 보내고 서로에게 메시지를 보내야합니다. 빠를수록 좋습니다.
- 사설 이더넷 네트워크를 사용하여 클러스터의 모든 노드를 연결하십시오.
- 헤드 노드는 이더넷 네트워크를 통해 NFS, PXE, DHCP, TFTP 및 NTP 서버로 작동 할 수도 있습니다.
- 이 네트워크를 공용 네트워크와 분리하여 전송 패킷이 LAN의 다른 네트워크를 방해하지 않도록해야합니다.
- 클러스터를 테스트하십시오. 사용자에게 모든 컴퓨팅 성능을 제공하기 전에 마지막으로해야 할 일은 성능을 테스트하는 것입니다. HPL (고성능 Lynpack) 벤치 마크는 클러스터의 계산 속도를 측정하는 데 널리 사용됩니다. 선택한 아키텍처에 대해 컴파일러에서 제공하는 가능한 모든 최적화를 사용하여 소스에서 컴파일해야합니다.
- 당연히, 플랫폼에 대해 가능한 모든 최적화를 사용하여 소스에서 컴파일해야합니다. 예를 들어 AMD CPU를 사용하는 경우 -0fast 최적화 수준으로 Open 64로 컴파일하십시오.
- TOP500.org의 결과를 비교하여 클러스터를 세계에서 가장 빠른 500 대의 슈퍼 컴퓨터와 비교하십시오!
팁
- IPMI는 대규모 클러스터 관리를 쉽게 만들어 KVM-over-IP, 원격 처리 릴레이 등을 제공합니다.
- 매우 빠른 네트워크 속도를 얻으려면 InfiniBand 네트워크 인터페이스를 찾으십시오. 그러나 가격은 그리 저렴하지 않습니다.
- Ganglia를 사용하여 노드의 계산 부하를 모니터링합니다.
경고
- 인프라에 부과 된 부하를 처리 할 수 있는지 확인하십시오.