2017-11-14 4 views
1

필자는 랩톱 (i5 - 4260U 및 4GB RAM)에서 Windows 용 MPI를 사용하여 MPI를 배우고 느린 성능으로 실행하려고합니다. 나는 Cygwin과 MPI를위한 적절한 라이브러리를 설치했다. 또한 CLION을 사용하고 this guide을 사용하여 MPI를 설정합니다.C - MPI 느린 성능

저는 CLion에서 코드를 성공적으로 작성하고 MPICC에서 컴파일했습니다. 그러나 MPI Run을 사용하면 프로그램을 실행하는 데 오랜 시간이 걸립니다. mpirun을 사용하지 않고 프로그램을 정상적으로 실행할 때 정상적으로 실행됩니다. 1 개의 프로세스 만 지정해도 프로그램은 여전히 ​​"Hello World"를 인쇄하는데 1 분 이상 걸립니다.

내 노트북이 성능 저하의 원인입니까, 아니면 최적의 성능을 내기 위해 MPI를 올바르게 설정하지 않았습니까? 감사!

코드 :

/*Simple MPI Hello World Program*/ 
#include <stdio.h> 
#include <mpi.h> 

int main(int argc, char **argv) 
{ 
    int node; 

    MPI_Init(&argc,&argv); 
    MPI_Comm_rank(MPI_COMM_WORLD, &node); 

    printf("Hello World from Node %d\n",node); 

    MPI_Finalize(); 
} 

CMake :

cmake_minimum_required(VERSION 3.8) 
project(MPI_Example) 

set(CMAKE_C_STANDARD 99) 

set(SOURCE_FILES main.c) 
add_executable(MPI_Example ${SOURCE_FILES}) 

# Require MPI for this project: 
find_package(MPI REQUIRED) 
set(CMAKE_CXX_COMPILE_FLAGS ${CMAKE_CXX_COMPILE_FLAGS} ${MPI_COMPILE_FLAGS}) 
set(CMAKE_CXX_LINK_FLAGS ${CMAKE_CXX_LINK_FLAGS} ${MPI_LINK_FLAGS}) 
include_directories(${MPI_INCLUDE_PATH}) 
target_link_libraries(MPI_Example ${MPI_LIBRARIES}) 
+0

프로그램 또는 빌드 옵션이 맞지 않습니다. 정상이 아닙니다. 아마도 [cygwin] (https : // stackoverflow.com/questions/11032161/why-is-cygwin-so-slow)하지만 말하기는 어렵습니다. – Zulan

+0

@ Zulan 아마도 그럴 것입니다. 불행히도, CLICON에서 MinGW를 MPICH2로 구성하는 방법을 모르므로 당분간이 문제에 봉착 할 것입니다. 도와 주셔서 감사합니다! – VectorConvoy

+0

방화벽이 실행중인 경우 비활성화하여 시작하십시오. 모든 인터페이스가 해결되었는지 확인하십시오 (예 : 모든 IP에 호스트 이름이 있으며 그 반대의 경우) –

답변

1

가능성이 가장 높은 문제는 네트워크/가상 인터페이스 제한 시간입니다. WIFI 네트워크 또는 VPN 인터페이스를 테스트로 사용하지 않도록 설정하십시오.

는 MPI에 대한이 예상되는시기 참고 안녕하세요 당신은

https://cygwin.com/ml/cygwin/2016-12/msg00192.html

+0

내 노트북에서 Wi-Fi를 사용하지 않도록 설정하셨습니까? 그렇다면 다음과 같은 오류가 발생했습니다 :'[[24995,1], 0] tcp_peer_send_blocking : 소켓 12 로의 send() 실패 : 전송 엔드 포인트가 연결되지 않았습니다 (128). 나는 프로그램을 운영했다. – VectorConvoy

+0

그것을 알아 냈습니다. 내 Wi-Fi 네트워크는 물론 Bluetooth 네트워크를 비활성화하는 것이 트릭입니다. 프로그램은 지금처럼 빨리 실행됩니다. 도와 주셔서 감사합니다! – VectorConvoy

+0

VPN 또는 가상 네트워크는 무엇입니까? – matzeri

1

1. 열고 Cygwin에서 터미널을 볼 수 있습니다.

mpicc --version 

mpirun --version 

실행하지 않을 경우 아래 문서를 참조하십시오. Document

2. 블루투스를 끄고 작동 속도를 테스트 해보세요. \ WINDOWS \ system32를 \ 드라이버 \ 등 \ 호스트 추가 라인 :

3.

는 와이파이을 닫으십시오와 동작 속도를 테스트

4. 열기 C를 (당신은 유선 internete에 연결할 수 있습니다)

127.0.0.1 localhost cygdrive wpad 

및 테스트 속도.

5. VirtualBox와 유사한 가상 네트워크가있는 경우 제어판을 끄고 작동 속도를 테스트하십시오.

6. 가능하면 VirtualBox를 완전히 제거하십시오. 컴퓨터를 다시 시작하고 작동 속도를 테스트하십시오.

7. Windows 방화벽을 끄고 작동 속도를 테스트 해보십시오.

위의 단계를 수행하면 "tcp_peer_send_blocking : send() send 12 failed to : 소켓이 연결되지 않았습니다."오류와 Windows 10 - Cygwin의 속도 문제가 해결되었습니다.