저는 천천히 병렬 프로그래밍을 시작하려고합니다. OpenMPI가 설치된 클러스터를 사용하여 사람들이이 내용을 배우는 것을 보았습니다. 클러스터에 액세스 할 수는 없지만 쿼드 코어 시스템이 있습니다. 나는 여기서 어떤 유익을 얻을 수있을 것인가? 또한 가상 머신에서 리눅스를 실행하고 있다면 VM 내에서 OpenMPI를 사용하는 것이 합리적입니까?쿼드 코어 및 VM에서의 병렬 프로그래밍?
2
A
답변
5
학습 목표를 배우려면 클러스터가 필요하지 않습니다. 귀하의 쿼드 코어 (또는 듀얼 코어 또는 싱글 코어) 컴퓨터는 충분할 것입니다. 요점은 "병렬로"생각하는 방법과 응용 프로그램을 설계하는 방법을 배우는 것입니다. 에
몇 가지 중요한 점
은 다음과 같습니다- 은 분할 정복, 마스터 노동자, SPMD 같은 다른 병렬 패러다임을 악용, ... 당신이 원하는 데이터 및 작업 종속성에 따라서해야 할 일.
- 계산/통신 비율 (메시지 전달의 경우)을 확인하거나 메모리 영역에 대한 상호 배제로 인해 연속 실행의 양을 확인하려면 다른 데이터 분할 세분성을 선택하십시오.
쿼드 코어를 사용하면 평행하지 않은 실행 시간과 병렬 실행 시간 사이의 나누기에서 일반적으로 제공되는 접근 속도 향상 (병렬화로 인해 얻는 성능에 대한 이득)을 측정 할 수 있습니다. . 4에 가까워 질수록 (실행 시간의 1/4을 의미하는 4 개의 코어) 병렬 처리 전략이 향상되었습니다 (일단 작업 및 데이터를 고르게 분배 할 수있게되면).
+0
Great ... 고마워. 내가 찾는 모든 것을 거의 다 커버했다. – Legend
코드 계산이 바운드되어 있습니까? VM은 몇 개의 CPU를 볼 수 있습니까? –
계산 바운드 또는 IO 바운드에 대해서는 두 가지 모두에 대해 열려 있습니다. 나는이 분야에서 막 시작했다. CPU에 관해서, 나는 4 개의 코어를 모두 VM에 할당했다. – Legend