크기 조정 작업 비용 최적화

물얀토블로그
Rescale은 주문형 라이선스를 통해 다양한 소프트웨어를 제공합니다. 이 소프트웨어는 사용한 만큼 지불하는 성격 때문에 인기가 있습니다. 이 소프트웨어는 소프트웨어에 쉽게 액세스할 수 있는 방법을 제공할 뿐만 아니라 많은 소프트웨어의 가격이 더 많은 코어에서 실행되도록 권장하여 솔루션 처리 시간을 더 빠르게 제공하도록 가격이 책정됩니다.
주문형 소프트웨어 가격에 관한 한 대부분의 소프트웨어는 4가지 일반 시간당 가격 범주에 속합니다.

  • 비례항 – 사용하는 코어 수에 비례하여 비용을 지불합니다.
  • 고정 요금 – 사용하는 코어 수에 관계없이 시간당 정액 요금을 지불합니다.
  • 출장 – 특정 코어 수까지 비례해서 지불하고 그 이후에는 정액 요금을 지불합니다.
  • 할인 된 – 첫 번째 코어에 대해 명목 요금을 지불하고 각 후속 코어에 대해서는 더 적은 비용을 지불합니다.
가격 모델은 Rescale UI에 표시됩니다(이 경우에는 제한됨).


많은 코어로 확장할 때 비례 요금이 고객에게 이익이 되지 않는다는 것은 분명합니다. 그러나 다른 세 가지 가격 책정 모델은 더 많은 코어를 실행함으로써 고객에게 이익을 줄 수 있습니다. 실제로 이점은 가격 모델과 작업 및 소프트웨어의 확장성에 따라 결정됩니다. 확장성은 특정 작업이 더 많은 코어에서 더 빠르게 실행된다는 가정입니다.
제가 이 블로그 게시물에서 보여주고자 하는 것은 특정 소프트웨어 가격 모델이 실제로 더 적은 비용을 지불하면서 더 많은 코어에서 더 빠르게 작업을 실행할 수 있는 기회를 제공한다는 것입니다.
명명법
이것은 과학 논문은 아니지만 가격 및 확장과 관련된 일부 개념을 설명하기 위해 몇 가지 방정식을 제공할 것입니다. 방정식을 더 쉽게 이해하기 위해 여기에 몇 가지 정의가 있습니다.

hw하드웨어
I반복 횟수
k일부 단위당 상수
K일정한
N코어 또는 프로세스 수
p단가
P가격
sw소프트웨어
t반복당 시간
T총 시간

문제
엔지니어는 모델을 가지고 있으며 Rescale에서 모델을 실행하는 가장 비용 효율적인 방법을 알고 싶어합니다. 작업 비용은 하드웨어와 소프트웨어 비용의 합이므로 각각의 가격 모델을 고려해야 합니다. 하드웨어 비용은 비례적으로 Rescale에 의해 청구됩니다. 소프트웨어 비용은 소프트웨어 공급업체(ISV)의 가격 모델에 따라 책정됩니다. 총 시간당 가격은 다음과 같습니다.

P합계 = Phw + Psw

작업의 총 비용은 시간당 가격과 작업 기간을 곱한 값입니다. 이것이 우리가 최소화하려는 값입니다.

총 비용 = (Phw + Psw) * 총 시뮬레이션 시간

앞서 설명했듯이 작업을 실행하는 데 걸리는 시간과 시간당 가격은 사용된 코어 수에 따라 결정된다고 할 수 있습니다.

Phw = f(N) = phw * NS

Psw = f(N)

티 = f(N)

이제 이 정보를 사용하여 전체 작업 비용을 최적화할 수 있습니다.
하드웨어 가격
하드웨어 비용은 Rescale에 의해 비례적으로 청구됩니다. 시간당 가격은 Rescale에서 제공되는 다양한 코어 유형과 가격 계획에 따라 달라지는 코어 시간당 요율을 기준으로 합니다. 간단히 말해서, 시간당 하드웨어 가격 방정식은 코어 시간당 요금과 코어 수를 곱한 것입니다.

Phw = 피hw* NS

소프트웨어 가격
주문형 소프트웨어 가격은 ISV에 의해 결정됩니다. 앞에서 논의한 것처럼 여러 가지 가격 범주가 있습니다. 코어 수에 따른 시간당 소프트웨어 가격을 구하는 방정식은 매우 간단합니다.

비례항Psw = k * N
고정 요금Psw = 케이
출장Psw = (K, k * N)
할인 된Psw = K * f(N)
예: Psw = K * N.9

시뮬레이션 시간 및 소프트웨어 확장성
N 프로세스/코어에 대한 시뮬레이션을 실행하는 데 걸리는 시간은 다음 방정식으로 대략적으로 계산할 수 있습니다.

T시뮬레이션 = T일련의 (1 / 엔 + k1 * (N - 1)k2)

어디 T일련의 시뮬레이션을 직렬로 실행하는 데 걸리는 시간입니다. 파란색 부분은 원시 컴퓨팅 시간을 설명하고 빨간색 부분은 통신 오버헤드를 설명합니다. 정당성에 관심이 있다면 계속 읽어보세요. 그렇지 않으면 다음으로 건너뛰세요. “비용 절감”.
세부 사항 :
확장성을 모델링하는 방법에는 여러 가지가 있습니다. Amdahl의 법칙은 추가 리소스에 대한 확장으로 이점을 얻는 시뮬레이션의 다양한 부분에 대한 확장성을 나타내는 것으로 종종 인용됩니다. 그러나 추가 자원의 이점을 정의하거나 정량화하는 방법은 다루지 않습니다. 우리의 경우 고정된 크기의 모델이 있으며 점점 더 많은 수의 하드웨어 코어로 확장할 때 모델의 성능이 어떻게 되는지 알고 싶습니다. 따라서 설명을 위해 몇 가지 가정을 해보겠습니다.

  1. 시뮬레이션은 반복적입니다.
  2. 시뮬레이션은 N 코어의 N 프로세스에 분산됩니다.
  3. 각 프로세스에는 다음 반복을 계산하기 위해 다른 프로세스의 정보가 필요하며 MPI를 사용합니다.
  4. 시뮬레이션을 완료하기 위한 반복 횟수 I는 N과 무관합니다.
  5. 반복을 완료하는 데 필요한 계산 주기 수는 N과 무관합니다.

이러한 가정을 고려할 때 반복을 완료하는 데 걸리는 시간은 다음과 같습니다.

t되풀이 = 티계산 + 티소통

계산과 통신이 동기 작업인 경우. 그렇지 않으면 비동기(비차단) 작업으로 간주할 때

t되풀이 = 최대(t계산, 티소통)

마지막으로 총 계산 시간은 반복 시간과 반복 횟수를 통해 쉽게 계산됩니다.

티 = 티되풀이 * 나는 ∝ t되풀이

여기서 우리는 각 반복이 어느 정도 동일하다고 가정합니다.
컴퓨팅 시간
럭셔리 계산 시간, 가정 (5)는 우리에게

t계산 = 티일련의 / N

이는 통신 오버헤드가 없는 경우 모델이 선형적으로 강력한 스케일링을 갖게 된다는 것을 의미합니다. 또한 모델이 더 클수록(t일련의), 더 큰 t계산 t의 지배력으로 인해 통신 오버헤드가 상대적 해결 시간에 미치는 덜 해로운 영향계산. 결과는 더 큰 모델은 더 잘 확장됩니다..
통신 시간
XNUMXD덴탈의 소통하는 시간 더 복잡하며 무엇보다도 상호 연결 속도, 통신해야 하는 데이터 양, 프로세스 수 N에 따라 달라집니다.
단순화하고 분해해 보겠습니다.
두 프로세스 간의 통신 시간은 두 부분으로 정의할 수 있습니다. 통신 오버헤드(숨어 있음) 및 데이터 전송 시간(이전). 따라서 하나의 메시지를 프로세스에서 다른 프로세스로 보내려면 지금은 간단히 다음과 같이 정의할 수 있습니다.

t메시지 = 티숨어 있음 + 티이전 = 티숨어 있음 + (전송 속도 * 메시지 크기)

전송 속도는 작은 메시지의 경우 더 낮고 메시지가 커질수록 증가하며 상호 연결의 대역폭에서 최고조에 이릅니다. 이제 특정 상호 연결에 대해 지연 시간이 일정하다고 가정할 수 있습니다.
실제로 효과를 확인하기 위해 이 논문(https://mvapich.cse.ohio-state.edu/static/media/publications/abstract/liuj-sc03.pdf)는 다양한 상호 연결에서 MPI의 성능을 조사합니다. 논문에서 보여주는 것은 작은 메시지 크기의 경우 통신 시간이 어느 정도 일정하다는 것입니다.

t메시지 ≅k

이 지식을 바탕으로 우리는 다음과 같이 추론할 수 있습니다. 총 통신 시간은 각 프로세스에서 전송되는 메시지 수에 따라 다릅니다.. 차례로 전송되는 메시지 수는 프로세스 수에 따라 달라집니다. 왜냐하면 각 프로세스는 다른 모든 프로세스와 통신하기 때문입니다. 전송된 메시지 수를 모델링하는 데 사용할 수 있는 방정식은 다음과 같습니다.

메시지 = k1 * (N - 1)k2 ∝ t메시지

게다가, 우리는 k를 정규화할 수 있습니다1 반복 횟수에 따라 t일련의

t소통 = 티일련의 * 케이1 * (N - 1)k2 ∝ t메시지

합치기
시뮬레이션에 소요되는 총 시간은

T시뮬레이션 ∝ t되풀이 = 티계산 + 티소통

컴퓨팅과 통신이 동기(차단) 작업인 경우. 대체하여,

T시뮬레이션 = T일련의 (1 / 엔 + k1 * (N - 1)k2)

상수 얻기
상수는 방정식을 경험적 벤치마크 데이터에 맞춰서 얻을 수 있습니다. 여기에 제시된 통신 오버헤드 모델은 결코 끝이 아닙니다. 내부 벤치마크를 통해 이 방정식이 거의 모든 스케일링 수치와 잘 맞는 것으로 나타났습니다.
게다가, 우리는 일반적으로 k라는 것을 발견했습니다.2 ≅ 0.5. 우리는 또한 k를 발견했습니다.1 모델 크기, 상호 연결 유형 및 프로세서 성능의 함수입니다.
비용화
총 비용 방정식으로 돌아가 보겠습니다.

총 비용 = (Phw + Psw) * 티시뮬레이션

이제 총 비용은 사용된 소프트웨어 가격 모델에 따라 달라집니다.

총 비용 = f(N) = (phw * 아니 +Psw) * 티일련의 (1 / N + k1 * (N - 1)k2)

Excel 계산기는 여기에서 찾을 수 있습니다.링크]. 다음은 출력 예입니다.
mp2
우리가 도울 수있는 방법
Rescale의 지원팀은 시뮬레이션을 실행할 적절한 코어 수를 추정하는 데 도움을 드릴 수 있습니다. 모든 단일 사용 사례에 대해 벤치마크를 실행하는 것이 항상 가능한 것은 아니며, 위의 예에서 볼 수 있듯이 몇 개의 코어가 떨어져도 비용 절감에 큰 영향을 미치지 않습니다.
우리가 여러분이 알아주셨으면 하는 것은 좋은 스케일링 소프트웨어와 고정 요금 or 모자를 씌운 가격 모델 더 많은 코어에서 실행하는 것이 더 비용 효율적인 경우가 많습니다.

저자

  • Mulyanto Poort
물얀토 푸어트

    부사장 HPC Mulyanto는 Rescale에서 애플리케이션 엔지니어링을 담당하고 있습니다. Rescale에 합류하기 전에 Mulyanto는 Mid-Michigan Research, LLC에서 소프트웨어 개발 및 기계 엔지니어로 7년간 근무하며 주요 엔진 제조 및 자동차 공급업체를 위한 전문 연구 컨설팅을 수행했습니다. Mulyanto는 이전에 미시간 주립대학교에서 연구 전문가로 근무하며 맞춤형 데이터 및 이미지 분석 도구 개발에 주력했습니다. Mulyanto는 미시간 주립대학교에서 기계공학 학사 및 석사 학위를 취득했습니다.

비슷한 게시물