我正在尝试将字符串数组发送到 MPI 中的从属进程,但我不知道该怎么做。我有一大堆字符串,我从文件中读取了这些字符串,我需要将这个数组的一部分发送给从站。我正在分配一个新数组,其中包含主数组中的一些元素并尝试发送它。这是代码的发送部分:
int w = 0;
int division = size / (procs -1);
for(i=1; i<procs; i++){
//allocating
char **array1 = (char**) malloc(sizeof(*array1) * division);
array1[0] = (char*) malloc(sizeof(*array1[0]) * division * buf);
for(j=1; j<division; j++)
array1[i] = &(array1[0][i*buf]);
// filling it up
for(j=0; j<division; j++)
array1[j] = array[w++];
// sending
MPI_Send(&array1, division[i], MPI_CHAR, i, tag, MPI_COMM_WORLD);
// clearing memory
free(array1);
}
printf("%d: All Sent\n", rank);
如果我将发送方法更改为这样
MPI_SEND(&array[0][0] ...)
它有效,但我需要为每个进程发送多个字符串。