2
MPIでsize_tタイプ番号を送信する最も安全な方法は何ですか?たとえば、私はそれがではないと確信しています。は盲目的にMPI_INTとして送信することはできません。 MPI_LONGはいつも動作しますか?MPIでsize_tタイプデータを送信
MPIでsize_tタイプ番号を送信する最も安全な方法は何ですか?たとえば、私はそれがではないと確信しています。は盲目的にMPI_INTとして送信することはできません。 MPI_LONGはいつも動作しますか?MPIでsize_tタイプデータを送信
マクロの使用はどうですか?
#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
を使用しています。