클라우드에서 컴퓨팅-집약적 작업을 실행 하려면 어떻게 해야 합니까?

출처: 인터넷
작성자: 사용자
키워드: 작업 실행 작업 그리고 실행

공용 클라우드의 출현은 일반 회사에 대규모 HPC 리소스를 가져왔다. 임시 HPC 프로젝트, 특히 대부분의 경우에 클라우드 솔루션은 필요한 컴퓨팅 리소스의 내부 구매 보다 더 비용 효과적입니다. 공용 클라우드의 출현 이전에 큰 금융 서비스 회사, 같은 회사의 소수에만 리소스 높은-성능 컴퓨팅에 필요한 구매 자금 했다.

지난 1 년 동안, 우리는 시장에서 고객에 대 한 상당한 수요 이며 대규모 HPC 클러스터 소프트웨어 플랫폼을 테스트 하는 여러 산업 분야에 많은 기업 들을 볼 수 있습니다. 우리가 처음 전통적인 HPC 공급 업체에 요구 사항 설명, 우리는 종종 어떤 산업 컨소시엄 질문 또는 HPC 환경의 크기에 관한 때문에 정부 기관이를 찾고. 때 우리가 그들에 게 그것은 큰 조직 보다는 개인 회사, 우리 신용으로 도전 되었다. 마지막으로, 우리는 공공 및 민간 구름에 클러스터 소프트웨어를 실행의 목표와 함께, 클러스터 소프트웨어를 구축 하기로 결정 했습니다.

개발 소프트웨어 상용과 오픈 소스 수많은 선택에 직면, 우리는 대부분의 옵션 클러스터에서 동시에 실행 하는 다른 범용 애플리케이션에 최적화 된 했다 발견. 이러한 요구 사항에 맞게, 클러스터는 하드 분할 단일 계산 노드에 설치 된 다른 운영 체제에 따라 그리고 각 기계는 특정 응용 프로그램, 응용 프로그램에 실제로 필요한 얼마나 많은 컴퓨팅 리소스에 대 한 예약 되어. 컴퓨팅 리소스, 약 30%의 평균 사용률의 사용률이 상당히 낮은 결과. 이것은 HPC 클러스터를 만들고 리소스를 일반 대 중에 게 그들을 임대 하 고 싶은 사람들을 위해 이젠 그만 보다는 더 많은입니다. 그러나, 이것이 일반적인 비즈니스 사용자의 요구에 맞게 최고의 전략입니다.

HPC 솔루션

우리는 다른 원리에 따라 HPC 소프트웨어를 구축 하기로 결정 했습니다. 프로젝트는 솔루션에 관심이 매우 일부 사용자에 의해 처음 실시 되었다. 이러한 사용자는 비용 절감 및 시간 단축을 추구 합니다. 그들은 일에 이상 1 백만 달러를 지출 하 고 싶지 않아 그리고 만약 주 결과를 얻을, 그들은 또한 솔루션 시장에서 경쟁 하지 않을 것 이다 생각 합니다.

HPC 리소스를 사용 하는 사용자와 상호 작용할 때 우리 주의 기업 일반적으로 일반적인 컴퓨팅 플랫폼 또는 관련된 응용 프로그램의 컬렉션 단일 HPC 응용 프로그램을 구축 하 고 이러한 사용자 컴퓨팅 시간을 최소화 하 고 사용 가능한 리소스의 사용률을 극대화 하는 소프트웨어 플랫폼을 갖고 싶어.

HPC 클러스터 디자인 최대 리소스 사용률을 보장 하기 위해 개별 코어를 동적으로 조정 할 수 있는 원리 돌아가지 다릅니다. 클러스터는 단일 컴퓨팅 플랫폼을 실행 하 고 단일 공급 업체 로부터 관련된 요구 사항을 처리 합니다. 이 계정에 느슨한 보안 모델 고 다른 컴퓨팅 작업에서 코드 운영 체제를 거의 실시간으로 작업 사이의 코어를 전환할 수 있도록 공유할 수 있습니다.

클러스터는 일반, 모든 포괄 컴퓨팅 솔루션을 구축 하는 노력 보다는 HPC 도메인에 관련 된 문제 중 일부를 해결 하기 위해 설계 된. 우리와 거래를 선택 하는 문제의 하위 집합은 본질적으로 높은 병렬. 단일 계산 요구 계산 된 적어도 1 개의 크기 순서 배포 시간 보다 높은 이며 문제 세트 및 솔루션 결과 효과적으로 네트워크 토폴로지에 전송 하 고 전체 작업의 경과 시간 보다 몇 배나 낮은 보다 더 분산을 충분히 작은. 클러스터 소프트웨어는 다양 한 일반적인 원격 인터페이스를 제공 하는 것 보다는 코드 수준에 컴퓨팅-집약적 응용 프로그램에 통합 하도록 설계 되었습니다.

클러스터 아키텍처

클러스터는 여러 컴퓨팅 작업으로 작업 작업을 분할 하 고, 사용 가능한 하드웨어 리소스를 효율적으로 계산 작업을 수행 하 고 클라이언트 응용 프로그램에 결과 반환 하는 설계 되었습니다. 클러스터는 공용 클라우드로 OpenStack 사설 클라우드 실행 맨 손으로 금속에 대 한 유효 합니다. 다양 한 배포 시나리오는 다양 한 사용 가능한 리소스 문제를 해결 하기 위해 설계 되었습니다. 사용자가 단일 응용 프로그램에 대 한 고정 된 컴퓨팅 리소스를 할당 하는 비용을 지불할 수 있습니다 완전 가장 효과적입니다. 개인 구름 잘 응용 프로그램 간에 내부 하드웨어 리소스를 할당 하는 시나리오에 적용 될 수 있으며 다른 계산 노드를 배포 하거나 사용할 수 있는 계산 리소스 HPC 클러스터에서 컴퓨팅 리소스를 필요로 하는 다른 요청 하기 쉽습니다. 공용 클라우드는 좋은 배포 시나리오는 버스트 로드 수준 및 임시 요구 때 구매 하드웨어 허무 하 게.

HPC 소프트웨어 아파치 Libcloud를 사용 하 여 여러 하드웨어 플랫폼에서 배포. 우리 Libcloud 프로젝트에 큰 기여 되 고 많은 소프트웨어 프로젝트에서 Libcloud 프로젝트를 이용 했다. HPC 소프트웨어의 꼭대기 층은 HPC 클러스터 구성 요소: 스케줄러, 작업 인터페이스 노드, 통신 교환 아키텍처와 효율적으로 작업의 실행을 제어 하는 데 사용 되는 계산 노드.

구성 요소

통신 교환 아키텍처 RABBITMQ 노드 집합이 구성 됩니다. 재구성 및 상태 정보를 촉진 하기 위하여 단일 인스턴스는 컨트롤 패널 또는 노드를 계산 하 고 결과 수신 하는 작업을 전송 하는 데 사용 되는 데이터 패널에 할당 됩니다. 우리가 찾을이 심각 하 게는 클라이언트 연결 속도 줄일 수 있기 때문에 집계 RABBITMQ 인스턴스가 있다. 대신, 고객 통신 라이브러리는 효과적인 확장 가능한 메커니즘을 제공 하는 관련 된 RABBITMQ 인스턴스 간에 요청을 할당 하는 데 사용 됩니다. 일반적으로 문제 및 결과 페이로드는 밴드에 전송 됩니다. 그러나, 큰 페이로드에 대 한 RABBITMQ의 확장성을 강화 하기 위해 분산된 캐시 클러스터 배치 되었습니다 사전에. 분산된 캐싱 구성의 장점은 문제 세트는 수십 KB 보다 큰 및 단일 작업 솔루션 컬렉션 수백 KB 보다 큽니다.

스케줄러는 컴퓨팅 자원을 단일 컴퓨팅 작업에 할당 하는 데 사용 됩니다. 메시지 큐의 시리즈 및 컨트롤 패널을 통해 큐에 가입 계산 노드의 하위 집합을 알리는 다른 RABBITMQ 인스턴스의 결과 배달 스케줄러에 의하여 이루어져 있다. 스케줄러가는 리소스 실패 이유와 노드의 하위 집합에 나타날 수 있는 GPU와 같은 특정 하드웨어를 필요로 하는 작업을 설명, 다른 사용자에 대 한 컴퓨팅 리소스를 예약 하는 고객 수 있도록 하는 복잡 한 정책의 모음입니다. 클러스터 위치 이면 상대적으로 가까운 결정을 일정의 속도가 100-200 밀리초, 낮은 대기 시간 소통량 주어진이.

작업 인터페이스 노드 작업을 제출 하 고 나머지 및 WSDL 인터페이스를 통해 클러스터를 검색 하는 방법을 제공 합니다. 작업 인터페이스 노드는 실패 한 작업을 제출 하 여 중복성을 제공 합니다. 작업 작업은 데이터 패널 통신 Exchange 스키마를 통해 계산 노드에 제출 됩니다. 계산 노드에서 클라이언트 응용 프로그램 코드는 전산 작업으로 작업 작업 분할 및 스케줄러에 의해 만들어진 작업 작업 대기열에 제출 하거나 일련의 단계를 통해 하위 작업으로 나눌 수를 계속 수 있습니다. 작업 작업 뜨 HPC 리소스를 사용 하 여 비용이 많이 드는 작업 단계를 계산 하는 시간의 아주 짧은 기간에 할 수 있습니다. 최종 사용자가 제공한 클라이언트 코드는 클래스 라이브러리와 잘 정의 된 API의 컬렉션을 통해 HPC 소프트웨어의 인터페이스를 통해 가장 효율적인 방식으로 다양 한 작업 유형으로 분해 최적화 됩니다. 분해 체인과 결과 축적 최종 결과 집합은 클라이언트 액세스를 위한 인터페이스 호스트에 배포 될 때까지 반전 한다. 작업 체인 구성 요소 작업의 병렬 처리의 정도 제어 하 고, 일정의 리소스 요구 사항을 알릴 수 있습니다 그리고 정책을 허용 하는 경우 스케줄러는 이전 예약 전송할 수 있는 다른 작업에 충분히 자원 하지만.

계산 노드 지정 된 메시지 대기열에서 단일 작업을 끌어, 대역의 데이터 작업 실행에 필요한 고 수 최종 계산 또는 작업을 다른 작업에 분해 가져오고 큐로 다시 그것을 다시 제출. 실제 컴퓨팅 소프트웨어는 클라이언트 응용 프로그램에서 제공 하 고 오케스트레이션 계층을 통해 단일 노드로 배포. 계산 노드 단일 작업 큐에 할당 된 코어의 활용 모니터링 하 고 할당 된 큐가 더 이상 유휴 또는 정책 제어 시간 초과 하는 경우 계산 노드에 다른 큐에서 작업을 크롤링합니다. 누적 계산 결과 결과 큐 또는 분산된 캐시 클러스터에 업로드 및 반환 데이터 패널을 통해 통보.

(책임 편집기: 유산의 좋은)

관련 문서

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.