Hi all, i am with a problem in operation MPI_Allreduce. <br><br>The code is the following below:<br><br><span style="font-style: italic;">int main(int argc, char *argv[])</span><br style="font-style: italic;"><span style="font-style: italic;">
{</span><br style="font-style: italic;"><span style="font-style: italic;"> int opcao, dimensao,nome_tamanho, processo, num_procs;</span><br style="font-style: italic;"><span style="font-style: italic;"> int coluna, contador_bytes, contador_bytes_parcial, interacao, contador_total_bytes;
</span><br style="font-style: italic;"><span style="font-style: italic;"> char *palavra = NULL, *arquivo_nome;</span><br style="font-style: italic;"><span style="font-style: italic;"> char *arquivo_pv;</span><br style="font-style: italic;">
<span style="font-style: italic;"> char procname[MPI_MAX_PROCESSOR_NAME];</span><br style="font-style: italic;"><span style="font-style: italic;"> double inicio, termino, tempo_parcial, soma_tempo_total, valor;</span>
<br style="font-style: italic;"><span style="font-style: italic;"> long long offset;</span><br style="font-style: italic;"><span style="font-style: italic;"> MPI_Datatype linhaMatriz;</span><br style="font-style: italic;">
<span style="font-style: italic;"> MPI_File arquivo;</span><br style="font-style: italic;"><span style="font-style: italic;"> MPI_Status status;</span><br style="font-style: italic;"><span style="font-style: italic;">
</span><br style="font-style: italic;"><span style="font-style: italic;"> MPI_Init(&argc, &argv);</span><br style="font-style: italic;"><span style="font-style: italic;"> MPI_Comm_rank(MPI_COMM_WORLD, &processo);
</span><br style="font-style: italic;"><span style="font-style: italic;"> MPI_Comm_size(MPI_COMM_WORLD, &num_procs);</span><br style="font-style: italic;"><span style="font-style: italic;"> MPI_Get_processor_name(procname,&nome_tamanho);
</span><br style="font-style: italic;"><span style="font-style: italic;"> </span><br style="font-style: italic;"><span style="font-style: italic;"> while ((opcao = getopt(argc, argv, "A:D:P:h")) != EOF)</span>
<br style="font-style: italic;"><span style="font-style: italic;"> {</span><br style="font-style: italic;"><span style="font-style: italic;"> switch(opcao) </span><br style="font-style: italic;"><span style="font-style: italic;">
{</span><br style="font-style: italic;"><span style="font-style: italic;"> case 'A': </span><br style="font-style: italic;"><span style="font-style: italic;"> arquivo_pv =optarg;</span>
<br style="font-style: italic;"><span style="font-style: italic;"> sprintf(arquivo_nome,"%s",arquivo_pv);</span><br style="font-style: italic;"><span style="font-style: italic;"> break;
</span><br style="font-style: italic;"><span style="font-style: italic;"> case 'D': </span><br style="font-style: italic;"><span style="font-style: italic;"> sscanf (optarg, "%d", &dimensao);
</span><br style="font-style: italic;"><span style="font-style: italic;"> break;</span><br style="font-style: italic;"><span style="font-style: italic;"> case 'P':</span><br style="font-style: italic;">
<span style="font-style: italic;"> sprintf(arquivo_nome,"pvfs2:/mnt/pvfs2/%s",arquivo_pv);</span><br style="font-style: italic;"><span style="font-style: italic;"> } </span><br style="font-style: italic;">
<span style="font-style: italic;"> }</span><br style="font-style: italic;"><span style="font-style: italic;"> </span><br style="font-style: italic;"><br style="font-style: italic;"><span style="font-style: italic;">
MPI_Type_contiguous(dimensao,MPI_DOUBLE,&linhaMatriz);</span><br style="font-style: italic;"><span style="font-style: italic;"> MPI_Type_commit(&linhaMatriz); </span><br style="font-style: italic;"><span style="font-style: italic;">
</span><br style="font-style: italic;"><span style="font-style: italic;"> MPI_File_open(MPI_COMM_WORLD, arquivo_nome, MPI_MODE_CREATE | MPI_MODE_WRONLY, MPI_INFO_NULL, &arquivo);</span><br style="font-style: italic;">
<span style="font-style: italic;"> </span><br style="font-style: italic;"><span style="font-style: italic;"> for(interacao=0; interacao<(dimensao/num_procs);interacao++)</span><br style="font-style: italic;"><span style="font-style: italic;">
{</span><br style="font-style: italic;"><span style="font-style: italic;"> double matrizlocal[dimensao];</span><br style="font-style: italic;"><span style="font-style: italic;"> valor=processo*(dimensao/num_procs)*dimensao+interacao*dimensao;
</span><br style="font-style: italic;"><span style="font-style: italic;"> offset=valor*sizeof(double);</span><br style="font-style: italic;"><span style="font-style: italic;"> for(coluna=0; coluna<dimensao; coluna++)
</span><br style="font-style: italic;"><span style="font-style: italic;"> {</span><br style="font-style: italic;"><span style="font-style: italic;"> matrizlocal[coluna]=valor+coluna;</span><br style="font-style: italic;">
<span style="font-style: italic;"> }</span><br style="font-style: italic;"><span style="font-style: italic;"> </span><br style="font-style: italic;"><span style="font-style: italic;"> MPI_File_set_view(arquivo, offset, MPI_DOUBLE, linhaMatriz, "native", MPI_INFO_NULL);
</span><br style="font-style: italic;"><span style="font-style: italic;"> inicio=MPI_Wtime();</span><br style="font-style: italic;"><span style="font-style: italic;"> MPI_File_write(arquivo, matrizlocal, 1, linhaMatriz, &status);
</span><br style="font-style: italic;"><span style="font-style: italic;"> termino=MPI_Wtime();</span><br style="font-style: italic;"><span style="font-style: italic;"> tempo_parcial=termino-inicio;</span><br style="font-style: italic;">
<span style="font-style: italic;"> contador_bytes_parcial+=sizeof(matrizlocal);</span><br style="font-style: italic;"><span style="font-style: italic;"> soma_tempo_total+=tempo_parcial;</span><br style="font-style: italic;">
<span style="font-style: italic;"> }</span><br style="font-style: italic;"><span style="font-style: italic;"> MPI_File_close(&arquivo);</span><br style="font-style: italic;"><span style="font-weight: bold; font-style: italic;">
MPI_Allreduce(&soma_tempo_total, &tempo, dimensao, MPI_DOUBLE, MPI_MAX,MPI_COMM_WORLD);</span><br style="font-style: italic;"><span style="font-style: italic;"> MPI_Finalize(); <br>.......<br><br></span>
<br>Do you know what could be happening?<br><br>Thanks<br><br>Luiz Mendes<br>