2016-11-25 7 views
2

MPIでsize_tタイプ番号を送信する最も安全な方法は何ですか?たとえば、私はそれがではないと確信しています。は盲目的にMPI_INTとして送信することはできません。 MPI_LONGはいつも動作しますか?MPIでsize_tタイプデータを送信

答えて

4

マクロの使用はどうですか?

#include <stdint.h> 
#include <limits.h> 

#if SIZE_MAX == UCHAR_MAX 
    #define my_MPI_SIZE_T MPI_UNSIGNED_CHAR 
#elif SIZE_MAX == USHRT_MAX 
    #define my_MPI_SIZE_T MPI_UNSIGNED_SHORT 
#elif SIZE_MAX == UINT_MAX 
    #define my_MPI_SIZE_T MPI_UNSIGNED 
#elif SIZE_MAX == ULONG_MAX 
    #define my_MPI_SIZE_T MPI_UNSIGNED_LONG 
#elif SIZE_MAX == ULLONG_MAX 
    #define my_MPI_SIZE_T MPI_UNSIGNED_LONG_LONG 
#else 
    #error "what is happening here?" 
#endif 

は、次に、あなたのコードでは、データ型として使用すると、タイプsize_tのデータを転送するたびにmy_MPI_SIZE_Tを使用しています。

関連する問題