2010-06-16 9 views
0

일부 행렬 곱셈 연산이 있습니다. 여러 프로세서를 통해 이러한 작업의 실행을 병렬 처리하려고합니다. MPI (Message Passing Interface)를 사용하는 고성능 컴퓨팅 클러스터에서이 작업을 수행 할 수 있습니다.Windows Azure : 코드의 병렬화

마찬가지로, 여러 작업자 역할을 사용하여 클라우드에서 일부 병렬 처리를 수행 할 수 있습니까? 그 일을하기위한 수단이 있습니까?

답변

2

Azure SDK 및 도구 버전 1.2의 6 월 릴리스에는 이제 .NET 4가 지원됩니다. 이제 .NET 4에 포함 된 병렬 확장을 활용할 수 있습니다. 여기에는 Parallel.ForEach() 및 Parallel.For ()를 예로들 수 있습니다.

TPL (Task Parallel Library)은 단일 VM에서만 도움이됩니다. 여러 VM에서 작업을 분리하는 데 도움이되지 않습니다. 따라서 2, 4 또는 8 코어 VM을 설정하면 병렬 실행에서 상당한 성능 향상을 볼 수 있습니다.

지금 : 여러 인스턴스에서 작업을 나누려면 각 인스턴스에 작업을 할당하는 방법을 만들어야합니다. 예를 들어, 하나의 작업자 역할을 조정자 VM으로 설정하고 다른 작업자 역할을 n 인스턴스와 함께 계산 VM으로 설정하십시오. 그런 다음 코디네이터 VM이 계산 VM의 모든 인스턴스를 열거하고 작업 n 방식으로 나눕니다. 보내기 보내기 1/n 작업 끝내기를 통해 WCF 호출을 통해 각 인스턴스에 작업 메시지. 각 VM 인스턴스는 각 작업 메시지 (잠재적으로 TPL)를 처리하고 그 결과를 모든 인스턴스에 액세스 할 수있는 blob 또는 테이블 저장소에 저장합니다.

0

메시지 전달 외에도 각 작업자 역할은 반복 처리보다는 작업 수행을 위해 대기열에서 읽을 수 있기 때문에 Azure 대기열이이 상황에 적합합니다. 규모가 클수록 근로자 수가 동적으로 변할 수 있기 때문에 이것은 훨씬 덜 취약한 접근 방식입니다.