【问题标题】:Send time_t datatype by function MPI_send()通过函数 MPI_send() 发送 time_t 数据类型
【发布时间】:2015-01-31 03:06:55
【问题描述】:

我需要MPI_Send()变量fileChangedTime

    struct stat fileinfo;        
    string name = "foo.txt";

    time_t fileChangedTime = 0;
    if(-1 != stat(name.c_str(), &fileinfo)){
        fileChangedTime = fileinfo.st_mtime;
    }

我不确定将 time_t 转换为 MPI 数据类型。 T.

【问题讨论】:

  • 不要用你明显不使用的语言进行标记。

标签: c++ mpi


【解决方案1】:

使用MPI_Send,您可以传输任何数据。 MPI_Datatype 字段仅指定 void* 指向的每个数据元素的大小作为第一个参数。

typedef struct {
  int   a;
  float b;
} my_t;
...
my_t m;
int error = MPI_Send((void*)&m, // data
                     sizeof(t), // size in of data in bytes
                     MPI_CHAR,  // or use MPI_BYTE or MPI_UNSIGNED_CHAR
                     0, 0, comm); 

因此,在上面的示例中,您可以通过以字节为单位指定数据大小和某些类型为 1 字节大小来发送任何数据。在你这样的情况下

int error = MPI_Send((void*)&fileChangedTime,  // data
                     sizeof(fileChangedTime),  // size in of data in bytes
                     MPI_BYTE,                 // or use MPI_BYTE or MPI_UNSIGNED_CHAR
                     0, 0, comm); 

【讨论】:

    猜你喜欢
    • 2018-03-08
    • 2019-04-29
    • 2013-12-06
    • 2014-01-25
    • 2016-06-14
    • 1970-01-01
    • 2019-12-27
    • 2019-11-05
    • 1970-01-01
    相关资源
    最近更新 更多