Coarray execution stalled indefinitely: deadlock in SYNC IMAGES or SYNC ALL statement – Fortran COARRAY_SYNC_DEADLOCK

COARRAY_SYNC_DEADLOCK

Nei programmi paralleli con Coarrays (Fortran 2008), le immagini eseguibili entrano in stallo permanente se una chiamata a 'SYNC IMAGES(p)' attende un'immagine che sta eseguendo un altro ramo logico senza sincronizzarsi.

Cosa significa questo errore?

Nei programmi paralleli con Coarrays (Fortran 2008), le immagini eseguibili entrano in stallo permanente se una chiamata a 'SYNC IMAGES(p)' attende un'immagine che sta eseguendo un altro ramo logico senza sincronizzarsi.

Messaggio originale

Coarray execution stalled indefinitely: deadlock in SYNC IMAGES or SYNC ALL statement

Contesto e parole chiave

Alias

  • Coarray deadlock SYNC IMAGES Fortran

Messaggi alternativi

  • deadlock sincronizzazione immagini Coarray Fortran

Prodotti

  • GNU Fortran (gfortran) / Intel Fortran (ifx) / LLVM Flang

Piattaforme

  • Linux
  • macOS
  • Windows

Parole chiave

  • Calcolo Numerico e Parallelo
  • errore-fortran-coarray-sync-deadlock
  • fortran
  • fortran.parallelo.coarray-sync-images-deadlock
  • gfortran

Cause possibili

Causa tecnica per Errore Fortran Coarrays: Deadlock in SYNC IMAGES / SYNC ALL (Blocco Sincronizzazione Immagini)

Nei programmi paralleli con Coarrays (Fortran 2008), le immagini eseguibili entrano in stallo permanente se una chiamata a 'SYNC IMAGES(p)' attende un'immagine che sta eseguendo un altro ramo logico senza sincronizzarsi.

molto comune

Diagnosi

Diagnostica di compilazione e memoria per Errore Fortran Coarrays: Deadlock in SYNC IMAGES / SYNC ALL (Blocco Sincronizzazione Immagini)

Compilare con controlli di sicurezza estesi (-Wall -Wextra -fcheck=all -ffpe-trap=invalid,zero,overflow -g).

Come leggere il risultato. Attiva il controllo dei limiti degli array, overflow numerici e tracciamento puntatori a runtime.

terminal
gfortran -Wall -Wextra -fcheck=all -g main.f90 -o app

Risoluzione

Risoluzione standard per Errore Fortran Coarrays: Deadlock in SYNC IMAGES / SYNC ALL (Blocco Sincronizzazione Immagini)

Difficoltà: mediaRischio: basso

Applicare la correzione al codice sorgente Fortran conforme agli standard Fortran 90/2003/2008/2018.

  1. Ispezionare la riga segnalata dal compilatore gfortran o ifx
  2. Verificare le dichiarazioni di tipo, specificatori IOSTAT o allocazioni di array
  3. Ricompilare ed eseguire con opzioni di controllo di integrità
terminal
gfortran -O2 -Wall main.f90 -o app

Domande frequenti

Come risolvere l'errore Errore Fortran Coarrays: Deadlock in SYNC IMAGES / SYNC ALL (Blocco Sincronizzazione Immagini) in Fortran?

Nei programmi paralleli con Coarrays (Fortran 2008), le immagini eseguibili entrano in stallo permanente se una chiamata a 'SYNC IMAGES(p)' attende un'immagine che sta eseguendo un altro ramo logico senza sincronizzarsi.

Approfondimenti

Schede correlate