2014-12-09 2 views
0

HPC 세계에 처음 왔습니다. HPC 응용 프로그램을 개발하는 동안 고려해야 할 사항은 무엇입니까? 구체적으로 HPC 응용 프로그램을 개발하기 전에 하드웨어/클러스터에 대한 지식이 필요합니까? 다른 고려 사항은 무엇입니까? 사전에HPC 작업 부하 프로그래밍 패턴

감사 프라 딥

답변

0

프라 딥, 여기에 도움이 될 것이다 달성하기 위해 시도하고있는 무슨에 좀 더 정보.

문제를 해결하려는 경우 문제점을 조사하고 단일 스레드 구현으로 어떤 한계를 맞출 지 또는 예상되는 한계를 확인하십시오. 더 큰 기계를 만들거나 MPI 또는 GPU/MIC 카드를 사용하여 이러한 한계를 해결하면 새 구현을 연구하고 확장 성을 확인하십시오. 네 개의 노드 (MPI)에서 실행하면 400 %의 속도 향상을 얻을 수 없지만 가능한 한 가까이에서 시도 할 수 있습니다. 새로운 병목을 찾아서 시도해보십시오. 귀하의 코드 I/O 바인딩되어 있습니까? Infiniband와 같은 빠른 스토리지 또는 낮은 대기 시간과 높은 대역폭이 필요합니까? 코드를 더 빨리 만들거나 다른 라이브러리 나 컴파일러에서 성능을 향상시킬 수 있습니까?

시스템 측면에서 HPC를 사용하려면 Linux와 비슷한 운영 체제에 익숙해 져야하지만 그렇지 않은 경우가 있습니다. 헤드 노드, 스토리지, 관리 네트워크, 인터커넥트 등이 어떻게 구성되고 구성 요소가 서로 어울리는 지 살펴보십시오. 작업은 어떻게 제출되고 실행됩니까? 몇 가지 간단한 작업을 제출하고 작동 방법을 확인하십시오. 그것은 "호스트 이름, 에코 헬로우 월드, sleep 300"과 같을 수 있습니다. 이는 작업이 실행중인 위치를 알려주고, 추가 출력을 생성하며, 큐에서 실행되는 것을 충분히 오래 동안 활성 상태로 유지합니다. 그런 다음 여러 노드에서 컴파일하고 실행할 수있는 hello world의 MPI 버전을 찾을 수 있습니다. 얼마나 심오한가에 따라 노드를 관리/설치하는 방법을 알 수 있습니다. RHEL/CentOS가 DHCP, PXE, 킥 스타트 파일 및 Apache와 함께 배포 된 사용자 정의 스크립트를 사용하여 설치하는 벤더가 제공 한 시스템 또는 자체 개발 시스템 일 수 있습니다. 당신은 Rocks 클러스터 배포판과 같은 오래된 기계 몇 대를 가지고 소규모로 이것을 시도 할 수도 있습니다.

많은 방법이 있지만 함께 갈 수있는 방법은 모두 HPC 지식에 달려 있습니다.

+0

답장을 보내 주셔서 감사합니다. 나는 HPC에 그런 신청서를 쓰지 않을 것입니다. 그러나 저는 HPC에서 자원 관리를위한 몇 가지 도구를 연구하고 있습니다. 따라서 응용 프로그램 작성자가 어떤 종류의 고려 사항을 만들고 하드웨어에 대해 얼마나 많은 지식을 갖게되는지 알고 싶었습니다. –

+0

최종 사용자 지식은 초보자마다 다를 수 있습니다. 초보자 사용자는 문제가있을 때 작업이 실행되고 있지 않으며 그 이유를 알아 내려고합니다. 높은 수준의 사용자는 코드가 실행되지 않는 이유 또는 제대로 실행되지 않는 이유를 알 수 있습니다. 리소스 관리에 들어가기를 원한다면 리소스 관리자와 스케줄러를 살펴 보는 것이 좋습니다. 짧은 목록에는 Torque, Maui, SLURM, Condor 및 Open Source 인 Sun/Oracle Grid Engine 포크가 포함됩니다. – chuck

+0

감사합니다 척. 언급 한 RM 도구 목록은 정말 유용합니다. 한 가지 더 질문이 있습니다. HPC 작업 부하의 경우 런타임 리소스 최적화를위한 여지가 있습니까? 아니면 초기 프로비저닝입니까? –