Ich habe ein einfaches Programm, das mit MPI mehrere kleine Arrays zu einem großen zusammenfassen soll.Ungültiger Zeiger- und Segmentierungsfehler bei Verwendung von MPI_Gather in Fortran
Ich habe einige Erfahrung mit MPI in C, aber für Fortran 90 scheint nichts zu funktionieren. Hier ist, wie ich kompilieren (ich benutze ifort) und führen Sie es:
mpif90 test.f90 -check all && mpirun -np 4 ./a.out
1 12
3 12
3 Errorcode: 0
1 Errorcode: 0
0 12
2 12
2 Errorcode: 0
0 Errorcode: 0
*** Error in `./a.out': free(): invalid pointer: 0x0000000000a25790 ***
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= PID 10889 RUNNING AT LenovoX1kabel
= EXIT CODE: 6
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= PID 10889 RUNNING AT LenovoX1kabel
= EXIT CODE: 6
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
Was mache ich falsch? Manchmal bekomme ich dieses Zeigerproblem, manchmal werde ich einen Segmentierungsfehler machen, aber für mich sieht es nicht so aus, als würden sich die ifort-Prüfungen beschweren.
Alle Fehlercodes sind 0, also bin ich mir nicht sicher, wo ich falsch liege.
Wenn Sie 'Verwendung mpi' statt' include ‚mpif.h'' die Compiler für bestimmte Arten von Fehlern überprüfen können (abhängig von der Version der Bibliothek). –
Ich habe es geändert, aber abgesehen von zwei ungenutzten Variablen bekomme ich keine Fehler/Warnungen. – Stein