Внутренняя ошибка компилятора (gfc_omp_clause_default_ctor) в gfortran, с OpenMP и FFTW
Я пытаюсь скомпилировать код, в котором есть вложенный цикл, где я использую OpenMp для первого цикла. Программа очень похожа на ту, что в этом выпуске, включая использование FFTW. Ошибка:
DO indiceY=1+2*window,ny-2*window
^
internal compiler error: in gfc_omp_clause_default_ctor, at fortran/trans-openmp.c:481
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions.
Кусок кода, в котором назначена проблема:
call dfftw_init_threads(iret)
!nthreads = omp_get_num_thread()
call dfftw_plan_with_nthreads(nthreads)
!***********************************
CALL dfftw_plan_dft_3d(plan, filter_window, filter_window, filter_window, OUTPUT_FFTW, OUTPUT_FFTW, FFTW_FORWARD, FFTW_ESTIMATE)
!$OMP PARALLEL DO DEFAULT(SHARED) SHARED(matrix_in, window, filter_window, plan, nx, ny, nz) &
!$OMP PRIVATE(indiceX, indiceY, indiceZ, OUTPUT_FFTW, matrix_out)
DO indiceZ=1+2*window,nz-2*window
DO indiceY=1+2*window,ny-2*window
DO indiceX=1+2*window,nx-2*window
OUTPUT_FFTW = ABS(matrix_in(indiceX-2*window:indiceX, indiceY-window:indiceY+window,&
indiceZ-window:indiceZ+window) - &
matrix_in(indiceX:indiceX+2*window, indiceY-window:indiceY+window,&
indiceZ-window:indiceZ+window) )
CALL dfftw_execute_dft(plan, OUTPUT_FFTW, OUTPUT_FFTW)
matrix_outX(indiceX, indiceY, indiceZ) = SUM(ABS(OUTPUT_FFTW))
END DO
END DO
END DO
!$OMP END PARALLEL DO
CALL dfftw_destroy_plan(plan)
!***********************************
CALL dfftw_cleanup_threads()
Во-первых, я подозревал, что это была проблема с памятью (RAM), но я уменьшил размер 3D-матрицы в расчете, и проблема не исчезла. Я уже посмотрел, если это ошибка, о которой сообщают (и действительно ошибка, но это, кажется, не является).
Я также подозревал, что это была проблема с версией Gfortran, поэтому я установил gfortran-5
, но ошибка сохранилась (internal compiler error: in gfc_omp_clause_default_ctor, at fortran/trans-openmp.c:481
Я использую 64-битную Ubuntu 14.04 (3.13.0-119-generic).