我试图将字符串发送到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] ...)
它的工作原理,但我需要发送每个进程不止一个字符串。