Commit 5cf0ae52 authored by Andreas Marek's avatar Andreas Marek

Dummy timer in elpa2

parent 65d959e7
...@@ -99,6 +99,8 @@ ...@@ -99,6 +99,8 @@
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
#else
use timings_dummy
#endif #endif
use precision use precision
use cuda_functions use cuda_functions
...@@ -144,24 +146,18 @@ ...@@ -144,24 +146,18 @@
character(200) :: errorMessage character(200) :: errorMessage
integer(kind=ik) :: istat integer(kind=ik) :: istat
logical :: successCUDA logical :: successCUDA
#ifdef HAVE_DETAILED_TIMINGS
#ifdef DOUBLE_PRECISION_COMPLEX #ifdef DOUBLE_PRECISION_COMPLEX
call timer%start("bandred_complex_double") call timer%start("bandred_complex_double")
#else #else
call timer%start("bandred_complex_single") call timer%start("bandred_complex_single")
#endif #endif
#endif
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("mpi_communication") call timer%start("mpi_communication")
#endif
call mpi_comm_rank(mpi_comm_rows,my_prow,mpierr) call mpi_comm_rank(mpi_comm_rows,my_prow,mpierr)
call mpi_comm_size(mpi_comm_rows,np_rows,mpierr) call mpi_comm_size(mpi_comm_rows,np_rows,mpierr)
call mpi_comm_rank(mpi_comm_cols,my_pcol,mpierr) call mpi_comm_rank(mpi_comm_cols,my_pcol,mpierr)
call mpi_comm_size(mpi_comm_cols,np_cols,mpierr) call mpi_comm_size(mpi_comm_cols,np_cols,mpierr)
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("mpi_communication") call timer%stop("mpi_communication")
#endif
success = .true. success = .true.
...@@ -439,18 +435,14 @@ ...@@ -439,18 +435,14 @@
#endif #endif
endif endif
#ifdef WITH_MPI #ifdef WITH_MPI
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("mpi_communication") call timer%start("mpi_communication")
#endif
#ifdef DOUBLE_PRECISION_COMPLEX #ifdef DOUBLE_PRECISION_COMPLEX
call mpi_allreduce(aux1, aux2, 2, MPI_DOUBLE_COMPLEX, MPI_SUM, mpi_comm_rows, mpierr) call mpi_allreduce(aux1, aux2, 2, MPI_DOUBLE_COMPLEX, MPI_SUM, mpi_comm_rows, mpierr)
#else #else
call mpi_allreduce(aux1, aux2, 2, MPI_COMPLEX, MPI_SUM, mpi_comm_rows, mpierr) call mpi_allreduce(aux1, aux2, 2, MPI_COMPLEX, MPI_SUM, mpi_comm_rows, mpierr)
#endif #endif
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("mpi_communication") call timer%stop("mpi_communication")
#endif
#else /* WITH_MPI */ #else /* WITH_MPI */
aux2 = aux1 aux2 = aux1
...@@ -485,18 +477,14 @@ ...@@ -485,18 +477,14 @@
vr(lr+1) = tau vr(lr+1) = tau
#ifdef WITH_MPI #ifdef WITH_MPI
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("mpi_communication") call timer%start("mpi_communication")
#endif
#ifdef DOUBLE_PRECISION_COMPLEX #ifdef DOUBLE_PRECISION_COMPLEX
call MPI_Bcast(vr, lr+1, MPI_DOUBLE_COMPLEX, cur_pcol, mpi_comm_cols, mpierr) call MPI_Bcast(vr, lr+1, MPI_DOUBLE_COMPLEX, cur_pcol, mpi_comm_cols, mpierr)
#else #else
call MPI_Bcast(vr, lr+1, MPI_COMPLEX, cur_pcol, mpi_comm_cols, mpierr) call MPI_Bcast(vr, lr+1, MPI_COMPLEX, cur_pcol, mpi_comm_cols, mpierr)
#endif #endif
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("mpi_communication") call timer%stop("mpi_communication")
#endif
#endif /* WITH_MPI */ #endif /* WITH_MPI */
vmr(1:lr,lc) = vr(1:lr) vmr(1:lr,lc) = vr(1:lr)
...@@ -523,9 +511,7 @@ ...@@ -523,9 +511,7 @@
! Get global dot products ! Get global dot products
#ifdef WITH_MPI #ifdef WITH_MPI
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("mpi_communication") call timer%start("mpi_communication")
#endif
#ifdef DOUBLE_PRECISION_COMPLEX #ifdef DOUBLE_PRECISION_COMPLEX
if (nlc>0) call mpi_allreduce(aux1, aux2, nlc, MPI_DOUBLE_COMPLEX, MPI_SUM, mpi_comm_rows, mpierr) if (nlc>0) call mpi_allreduce(aux1, aux2, nlc, MPI_DOUBLE_COMPLEX, MPI_SUM, mpi_comm_rows, mpierr)
...@@ -544,9 +530,7 @@ ...@@ -544,9 +530,7 @@
endif endif
enddo enddo
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("mpi_communication") call timer%stop("mpi_communication")
#endif
#else /* WITH_MPI */ #else /* WITH_MPI */
! if (nlc>0) aux2=aux1 ! if (nlc>0) aux2=aux1
...@@ -790,18 +774,14 @@ ...@@ -790,18 +774,14 @@
print *,"bandred_complex: error when allocating tmp "//errorMessage print *,"bandred_complex: error when allocating tmp "//errorMessage
stop stop
endif endif
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("mpi_communication") call timer%start("mpi_communication")
#endif
#ifdef DOUBLE_PRECISION_COMPLEX #ifdef DOUBLE_PRECISION_COMPLEX
call mpi_allreduce(umc, tmp, l_cols*n_cols, MPI_DOUBLE_COMPLEX, MPI_SUM, mpi_comm_rows, mpierr) call mpi_allreduce(umc, tmp, l_cols*n_cols, MPI_DOUBLE_COMPLEX, MPI_SUM, mpi_comm_rows, mpierr)
#else #else
call mpi_allreduce(umc, tmp, l_cols*n_cols, MPI_COMPLEX, MPI_SUM, mpi_comm_rows, mpierr) call mpi_allreduce(umc, tmp, l_cols*n_cols, MPI_COMPLEX, MPI_SUM, mpi_comm_rows, mpierr)
#endif #endif
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("mpi_communication") call timer%stop("mpi_communication")
#endif
umc(1:l_cols,1:n_cols) = tmp(1:l_cols,1:n_cols) umc(1:l_cols,1:n_cols) = tmp(1:l_cols,1:n_cols)
deallocate(tmp, stat=istat, errmsg=errorMessage) deallocate(tmp, stat=istat, errmsg=errorMessage)
...@@ -1152,13 +1132,11 @@ ...@@ -1152,13 +1132,11 @@
endif endif
endif ! use GPU endif ! use GPU
#ifdef HAVE_DETAILED_TIMINGS
#ifdef DOUBLE_PRECISION_COMPLEX #ifdef DOUBLE_PRECISION_COMPLEX
call timer%stop("bandred_complex_double") call timer%stop("bandred_complex_double")
#else #else
call timer%stop("bandred_complex_single") call timer%stop("bandred_complex_single")
#endif #endif
#endif
#ifdef DOUBLE_PRECISION_COMPLEX #ifdef DOUBLE_PRECISION_COMPLEX
end subroutine bandred_complex_double end subroutine bandred_complex_double
......
...@@ -98,6 +98,8 @@ ...@@ -98,6 +98,8 @@
use elpa1_compute use elpa1_compute
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
#else
use timings_dummy
#endif #endif
#ifdef WITH_OPENMP #ifdef WITH_OPENMP
use omp_lib use omp_lib
...@@ -151,20 +153,16 @@ ...@@ -151,20 +153,16 @@
integer(kind=ik) :: mystart, myend, m_way, n_way, work_per_thread, m_id, n_id, n_threads, & integer(kind=ik) :: mystart, myend, m_way, n_way, work_per_thread, m_id, n_id, n_threads, &
ii, pp, transformChunkSize ii, pp, transformChunkSize
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("bandred_real" // M_PRECISION_SUFFIX) call timer%start("bandred_real" // M_PRECISION_SUFFIX)
#endif
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("mpi_communication") call timer%start("mpi_communication")
#endif
call mpi_comm_rank(mpi_comm_rows,my_prow,mpierr) call mpi_comm_rank(mpi_comm_rows,my_prow,mpierr)
call mpi_comm_size(mpi_comm_rows,np_rows,mpierr) call mpi_comm_size(mpi_comm_rows,np_rows,mpierr)
call mpi_comm_rank(mpi_comm_cols,my_pcol,mpierr) call mpi_comm_rank(mpi_comm_cols,my_pcol,mpierr)
call mpi_comm_size(mpi_comm_cols,np_cols,mpierr) call mpi_comm_size(mpi_comm_cols,np_cols,mpierr)
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("mpi_communication") call timer%stop("mpi_communication")
#endif
success = .true. success = .true.
...@@ -488,17 +486,13 @@ ...@@ -488,17 +486,13 @@
endif endif
#ifdef WITH_MPI #ifdef WITH_MPI
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("mpi_communication") call timer%start("mpi_communication")
#endif
call mpi_allreduce(aux1, aux2, 2, M_MPI_REAL_PRECISION, MPI_SUM, mpi_comm_rows, mpierr) call mpi_allreduce(aux1, aux2, 2, M_MPI_REAL_PRECISION, MPI_SUM, mpi_comm_rows, mpierr)
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("mpi_communication") call timer%stop("mpi_communication")
#endif
#else /* WITH_MPI */ #else /* WITH_MPI */
aux2 = aux1 ! this should be optimized aux2 = aux1 ! this should be optimized
#endif #endif
vnorm2 = aux2(1) vnorm2 = aux2(1)
vrl = aux2(2) vrl = aux2(2)
...@@ -523,13 +517,9 @@ ...@@ -523,13 +517,9 @@
vr(lr+1) = tau vr(lr+1) = tau
#ifdef WITH_MPI #ifdef WITH_MPI
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("mpi_communication") call timer%start("mpi_communication")
#endif
call MPI_Bcast(vr, lr+1, M_MPI_REAL_PRECISION, cur_pcol, mpi_comm_cols, mpierr) call MPI_Bcast(vr, lr+1, M_MPI_REAL_PRECISION, cur_pcol, mpi_comm_cols, mpierr)
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("mpi_communication") call timer%stop("mpi_communication")
#endif
#endif /* WITH_MPI */ #endif /* WITH_MPI */
if (useGPU) then if (useGPU) then
...@@ -574,13 +564,9 @@ ...@@ -574,13 +564,9 @@
!$omp barrier !$omp barrier
!$omp single !$omp single
#ifdef WITH_MPI #ifdef WITH_MPI
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("mpi_communication") call timer%start("mpi_communication")
#endif
if (mynlc>0) call mpi_allreduce(aux1, aux2, mynlc, M_MPI_REAL_PRECISION, MPI_SUM, mpi_comm_rows, mpierr) if (mynlc>0) call mpi_allreduce(aux1, aux2, mynlc, M_MPI_REAL_PRECISION, MPI_SUM, mpi_comm_rows, mpierr)
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("mpi_communication") call timer%stop("mpi_communication")
#endif
#else /* WITH_MPI */ #else /* WITH_MPI */
if (mynlc>0) aux2 = aux1 if (mynlc>0) aux2 = aux1
#endif /* WITH_MPI */ #endif /* WITH_MPI */
...@@ -619,13 +605,9 @@ ...@@ -619,13 +605,9 @@
! Get global dot products ! Get global dot products
#ifdef WITH_MPI #ifdef WITH_MPI
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("mpi_communication") call timer%start("mpi_communication")
#endif
if (nlc>0) call mpi_allreduce(aux1, aux2, nlc, M_MPI_REAL_PRECISION, MPI_SUM, mpi_comm_rows, mpierr) if (nlc>0) call mpi_allreduce(aux1, aux2, nlc, M_MPI_REAL_PRECISION, MPI_SUM, mpi_comm_rows, mpierr)
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("mpi_communication") call timer%stop("mpi_communication")
#endif
#else /* WITH_MPI */ #else /* WITH_MPI */
if (nlc>0) aux2=aux1 if (nlc>0) aux2=aux1
#endif /* WITH_MPI */ #endif /* WITH_MPI */
...@@ -862,15 +844,11 @@ ...@@ -862,15 +844,11 @@
endif endif
#ifdef WITH_MPI #ifdef WITH_MPI
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("mpi_communication") call timer%start("mpi_communication")
#endif
call mpi_allreduce(umcCUDA, tmpCUDA, l_cols*n_cols, M_MPI_REAL_PRECISION, MPI_SUM, mpi_comm_rows, ierr) call mpi_allreduce(umcCUDA, tmpCUDA, l_cols*n_cols, M_MPI_REAL_PRECISION, MPI_SUM, mpi_comm_rows, ierr)
umcCUDA(1 : l_cols * n_cols) = tmpCUDA(1 : l_cols * n_cols) umcCUDA(1 : l_cols * n_cols) = tmpCUDA(1 : l_cols * n_cols)
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("mpi_communication") call timer%stop("mpi_communication")
#endif
#else /* WITH_MPI */ #else /* WITH_MPI */
! tmpCUDA(1 : l_cols * n_cols) = umcCUDA(1 : l_cols * n_cols) ! tmpCUDA(1 : l_cols * n_cols) = umcCUDA(1 : l_cols * n_cols)
...@@ -983,14 +961,10 @@ ...@@ -983,14 +961,10 @@
endif endif
#ifdef WITH_MPI #ifdef WITH_MPI
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("mpi_communication") call timer%start("mpi_communication")
#endif
call mpi_allreduce(umcCPU, tmpCPU, l_cols*n_cols, M_MPI_REAL_PRECISION, MPI_SUM, mpi_comm_rows, mpierr) call mpi_allreduce(umcCPU, tmpCPU, l_cols*n_cols, M_MPI_REAL_PRECISION, MPI_SUM, mpi_comm_rows, mpierr)
umcCPU(1:l_cols,1:n_cols) = tmpCPU(1:l_cols,1:n_cols) umcCPU(1:l_cols,1:n_cols) = tmpCPU(1:l_cols,1:n_cols)
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("mpi_communication") call timer%stop("mpi_communication")
#endif
#else /* WITH_MPI */ #else /* WITH_MPI */
! tmpCPU(1:l_cols,1:n_cols) = umcCPU(1:l_cols,1:n_cols) ! tmpCPU(1:l_cols,1:n_cols) = umcCPU(1:l_cols,1:n_cols)
#endif /* WITH_MPI */ #endif /* WITH_MPI */
...@@ -1205,9 +1179,7 @@ ...@@ -1205,9 +1179,7 @@
endif endif
endif endif
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("bandred_real" // M_PRECISION_SUFFIX) call timer%stop("bandred_real" // M_PRECISION_SUFFIX)
#endif
end subroutine M_bandred_real_PRECISION ! slower for gpu on 10000 10000 ??? end subroutine M_bandred_real_PRECISION ! slower for gpu on 10000 10000 ???
......
...@@ -73,6 +73,8 @@ module elpa2_workload ...@@ -73,6 +73,8 @@ module elpa2_workload
subroutine determine_workload(na, nb, nprocs, limits) subroutine determine_workload(na, nb, nprocs, limits)
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
#else
use timings_dummy
#endif #endif
use precision use precision
implicit none implicit none
...@@ -82,15 +84,12 @@ module elpa2_workload ...@@ -82,15 +84,12 @@ module elpa2_workload
integer(kind=ik) :: i integer(kind=ik) :: i
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("determine_workload") call timer%start("determine_workload")
#endif
if (na <= 0) then if (na <= 0) then
limits(:) = 0 limits(:) = 0
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("determine_workload") call timer%stop("determine_workload")
#endif
return return
endif endif
...@@ -105,9 +104,7 @@ module elpa2_workload ...@@ -105,9 +104,7 @@ module elpa2_workload
enddo enddo
endif endif
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("determine_workload") call timer%stop("determine_workload")
#endif
end subroutine end subroutine
!--------------------------------------------------------------------------------------------------- !---------------------------------------------------------------------------------------------------
! divide_band: sets the work distribution in band ! divide_band: sets the work distribution in band
...@@ -116,6 +113,8 @@ module elpa2_workload ...@@ -116,6 +113,8 @@ module elpa2_workload
subroutine divide_band(nblocks_total, n_pes, block_limits) subroutine divide_band(nblocks_total, n_pes, block_limits)
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
#else
use timings_dummy
#endif #endif
use precision use precision
implicit none implicit none
...@@ -125,9 +124,7 @@ module elpa2_workload ...@@ -125,9 +124,7 @@ module elpa2_workload
integer(kind=ik) :: n, nblocks, nblocks_left integer(kind=ik) :: n, nblocks, nblocks_left
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("divide_band") call timer%start("divide_band")
#endif
block_limits(0) = 0 block_limits(0) = 0
if (nblocks_total < n_pes) then if (nblocks_total < n_pes) then
...@@ -149,9 +146,7 @@ module elpa2_workload ...@@ -149,9 +146,7 @@ module elpa2_workload
enddo enddo
endif endif
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("divide_band") call timer%stop("divide_band")
#endif
end subroutine end subroutine
end module elpa2_workload end module elpa2_workload
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
#else
use timings_dummy
#endif #endif
use precision use precision
implicit none implicit none
...@@ -19,9 +21,7 @@ ...@@ -19,9 +21,7 @@
integer(kind=ik) :: i, nc, mpierr integer(kind=ik) :: i, nc, mpierr
real(kind=REAL_DATATYPE) :: h1(n*n), h2(n*n) real(kind=REAL_DATATYPE) :: h1(n*n), h2(n*n)
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("symm_matrix_allreduce" // M_PRECISION_SUFFIX) call timer%start("symm_matrix_allreduce" // M_PRECISION_SUFFIX)
#endif
nc = 0 nc = 0
do i=1,n do i=1,n
...@@ -30,13 +30,9 @@ ...@@ -30,13 +30,9 @@
enddo enddo
#ifdef WITH_MPI #ifdef WITH_MPI
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("mpi_communication") call timer%start("mpi_communication")
#endif
call mpi_allreduce(h1, h2, nc, M_MPI_REAL_PRECISION, MPI_SUM, comm, mpierr) call mpi_allreduce(h1, h2, nc, M_MPI_REAL_PRECISION, MPI_SUM, comm, mpierr)
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("mpi_communication") call timer%stop("mpi_communication")
#endif
nc = 0 nc = 0
do i=1,n do i=1,n
a(1:i,i) = h2(nc+1:nc+i) a(1:i,i) = h2(nc+1:nc+i)
...@@ -62,9 +58,7 @@ ...@@ -62,9 +58,7 @@
! nc = nc+i ! nc = nc+i
! enddo ! enddo
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("symm_matrix_allreduce" // M_PRECISION_SUFFIX) call timer%stop("symm_matrix_allreduce" // M_PRECISION_SUFFIX)
#endif
end subroutine M_symm_matrix_allreduce_PRECISION end subroutine M_symm_matrix_allreduce_PRECISION
......
...@@ -42,6 +42,8 @@ ...@@ -42,6 +42,8 @@
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
#ifdef HAVE_DETAILED_TIMINGS #ifdef HAVE_DETAILED_TIMINGS
use timings use timings
#else
use timings_dummy
#endif #endif
use cuda_functions use cuda_functions
use iso_c_binding use iso_c_binding
...@@ -78,24 +80,18 @@ ...@@ -78,24 +80,18 @@
character(200) :: errorMessage character(200) :: errorMessage
logical :: successCUDA logical :: successCUDA
#ifdef HAVE_DETAILED_TIMINGS
#ifdef DOUBLE_PRECISION_COMPLEX #ifdef DOUBLE_PRECISION_COMPLEX
call timer%start("trans_ev_band_to_full_complex_double") call timer%start("trans_ev_band_to_full_complex_double")
#else #else
call timer%start("trans_ev_band_to_full_complex_single") call timer%start("trans_ev_band_to_full_complex_single")
#endif #endif
#endif
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("mpi_communication") call timer%start("mpi_communication")
#endif
call mpi_comm_rank(mpi_comm_rows,my_prow,mpierr) call mpi_comm_rank(mpi_comm_rows,my_prow,mpierr)
call mpi_comm_size(mpi_comm_rows,np_rows,mpierr) call mpi_comm_size(mpi_comm_rows,np_rows,mpierr)
call mpi_comm_rank(mpi_comm_cols,my_pcol,mpierr) call mpi_comm_rank(mpi_comm_cols,my_pcol,mpierr)
call mpi_comm_size(mpi_comm_cols,np_cols,mpierr) call mpi_comm_size(mpi_comm_cols,np_cols,mpierr)
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("mpi_communication") call timer%stop("mpi_communication")
#endif
max_blocks_row = ((na -1)/nblk)/np_rows + 1 ! Rows of A max_blocks_row = ((na -1)/nblk)/np_rows + 1 ! Rows of A
max_blocks_col = ((nqc-1)/nblk)/np_cols + 1 ! Columns of q! max_blocks_col = ((nqc-1)/nblk)/np_cols + 1 ! Columns of q!
...@@ -237,18 +233,14 @@ ...@@ -237,18 +233,14 @@
if (lc==n_cols .or. mod(ncol,nblk)==0) then if (lc==n_cols .or. mod(ncol,nblk)==0) then
#ifdef WITH_MPI #ifdef WITH_MPI
#ifdef HAVE_DETAILED_TIMINGS
call timer%start("mpi_communication") call timer%start("mpi_communication")
#endif
#ifdef DOUBLE_PRECISION_COMPLEX #ifdef DOUBLE_PRECISION_COMPLEX
call MPI_Bcast(hvb(ns+1), nb-ns, MPI_DOUBLE_COMPLEX, pcol(ncol, nblk, np_cols), mpi_comm_cols, mpierr) call MPI_Bcast(hvb(ns+1), nb-ns, MPI_DOUBLE_COMPLEX, pcol(ncol, nblk, np_cols), mpi_comm_cols, mpierr)
#else #else
call MPI_Bcast(hvb(ns+1), nb-ns, MPI_COMPLEX, pcol(ncol, nblk, np_cols), mpi_comm_cols, mpierr) call MPI_Bcast(hvb(ns+1), nb-ns, MPI_COMPLEX, pcol(ncol, nblk, np_cols), mpi_comm_cols, mpierr)
#endif #endif
#ifdef HAVE_DETAILED_TIMINGS
call timer%stop("mpi_communication") call timer%stop("mpi_communication")
#endif
#endif /* WITH_MPI */ #endif /* WITH_MPI */
ns = nb ns = nb
...@@ -334,18 +326,14 @@ ...@@ -334,18 +326,14 @@
endif