2

노드가 N Erlang 노드라고 가정하면 그 중 일부는 내 LAN에있을 수 있고 다른 노드는 WAN을 통해 (즉, 인터넷을 통해) 연결될 수 있습니다.) 다른 대역폭 가용성/동작 (예 : 대기 시간 유발) 및 b) 다른 계산 능력을 가진 노드 (또는 그 문제에 대한 메모리 제약 조건)?얼랭 노드의 우선 순위 지정

즉, 대기 시간이 길고 덜 강력 할 수있는 로컬 노드에 우선 순위를 어떻게 두거나 우선적으로 높은 전송 대기 시간을 갖는 고성능 원격 노드에 우선 순위를 부여하는 것이 좋을까요? 상대적으로 큰 계산/전송 (즉, 메시지 당, 시간 단위 당 완료된 작업) 비율로 이러한 프로세스를 수행합니까?

기본적으로 클러스터의 각 노드를 초기화하는 동안 벤치 마크 프로세스를 실행하여 벤치마킹함으로써 메시징과 관련된 대기 시간을 계산할 수있을뿐만 아니라 전체 계산 속도 (즉, , 노드 특정 타이머를 사용하여 노드가 모든 태스크에서 얼마나 빨리 종료되는지 결정합니다.

아마, 대표 데이터 (즉, 평균 데이터)를 얻으려면 한편으로는 반복적으로 수행해야하며, 다른 한편으로는 실행시 유용 할 수도 있습니다 변화하는 런타임 조건에 동적으로 적응할 수있다.

이 희망 특정 노드가 특정 작업을 처리 그래서 내부 작업 파견을 최적화하는 것을 의미 할 것이다

(같은 의미에서, 하나는 아마도 다른 컴퓨터에서 실행되는 동안 노드를 실행하는 로컬 우선 순위를 할 것입니다).

답변

1

내부 LAN/WAN (예 : WAN은 샌프란시스코에서 런던)에서 이와 비슷한 작업을 수행했습니다.이러한 요인들의 조합에 졸인 문제 : 단순히 로컬 (내부)을 통해 원격 호출을 만드는

  1. 천정 호출
  2. 요청/결과의 함수로서 노드에 네트워크 레이턴시 (페이로드) 원격 노드
  3. 함수 공유 "정적"데이터가 설정되어 있다면 통화 배치 어떤 성능 향상을 제공하든
  4. 을 실행하는데 필요한 컴퓨팅 파워
  5. 성능. 1. 옵션

우리는 오버 헤드 (그것은 다른 것들에 비해 무시할) 2. 적극적 왕복 시간을 측정하는 프로브 메시지를 사용하여 측정 용

을 가정하지 않고, 우리 이루어지는 실제 통화 정보를 대조 우리는 주어진 배치에 대한 경험적으로 그것을 밖으로 일

4

, 5 (이 노드에서 활성 전류 부하에 따라 변경)

3. 위해 우리는 노드에서 측정하고 그 정보를 방송했다

그러면 호출자는 일괄 처리 호출에 대한 최소 솔루션을 얻고 (이 경우에는 파생 상품 전체를 가격 결정 함) 노드별로 일괄 적으로 해고했습니다.

이 기술을 사용하여 계산 "그리드"를 훨씬 더 효율적으로 활용했지만 많은 노력이있었습니다. 그리드가이 환경에서만 사용된다는 추가적인 이점이있어서 우리는 훨씬 더 많은 통제력을 가졌습니다. 인터넷 믹스 (가변 대기 시간) 및 그리드 사용자 (변동 성능)를 추가하면 수익이 감소하면서 복잡성이 증가합니다 ...

+0

사용하시는 기술에 대해 감사드립니다. 나는 상상하고있다 (그리고 나는 그 질문에서 무엇을 스케치했는지). 이런 종류의 시나리오가 어떤 형태의 인프라 스트럭처 (예 : OTP 사용)에 의해 지원되는 것을 정확히 보는 것이 흥미로울 것이라고 생각합니다. 정말 내 시나리오에 매우 가깝기 때문에 귀하의 답변을 수락했습니다. – none

1

당신이 말한 문제는 그리드 컴퓨팅의 맥락에서 다양한 방식으로 다루어졌습니다 (예 : Condor 참조). 좀 더 철저하게 논의하기 위해, 몇 가지 추가 정보가 필요하다고 생각합니다 (해결할 문제의 동질성, 노드에 대한 제어 정도 [예기치 않은 외부로드 등이 있습니까?]).

적응 형 작업 발송자 구현은 일반적으로 사용 가능한 리소스를 검사하는 빈도를 조정해야합니다. 그렇지 않으면 검사로 인한 오버 헤드가 성능 향상을 초과 할 수 있습니다.

이상적으로는 벤치 마크 테스트를 사용하여 주어진 문제의 계산 경도를 예측할 수있는 경험적 통계 모델을 얻을 수 있습니다 (좋은 도메인 지식과 높은 영향을 미치는 문제 기능이 필요함). 실행 속도 및 추출이 간단 함), 또 다른 하나는 통신 오버 헤드를 예측합니다. 둘을 함께 사용하면 의사 결정을 예측 모델에 적용하고 실제 실행 시간을 피드백/보상 (예 : reinforcement learning을 통해)을 고려하여 향상시키는 간단한 디스패처를 구현할 수 있어야합니다.