2017-11-14 22 views
1

私はラップトップ(i5 - 4260Uと4 GBの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それはおそらくそれです。残念ながら、私はClion上で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. Bluetoothをオフにし、動作速度をテストしてみてください。 \ WINDOWS \ System32 \ Drivers \ Etc \ Hostsに 追加ライン:

3.

は、無線LANを閉じてみて、動作速度をテスト

4.オープンCを(あなたは、有線interneteに接続することができます)

127.0.0.1 localhost cygdrive wpad 

とテスト速度。

5. VirtualBoxなどの仮想ネットワークがある場合は、コントロールパネルの電源をオフにして、動作速度をテストします。

6.可能であれば、VirtualBoxを完全にアンインストールします。コンピュータを再起動し、動作速度をテストします。

7. Windowsファイアウォールの電源を切って、動作速度をテストしてみてください。

上記の手順では、「tcp_peer_send_blocking:ソケット12へのsend()の失敗:トランスポートエンドポイントが接続されていません」というエラーと、Windows 10-Cygwinの遅さの問題が解決されました。