mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-08-29 20:23:40 +02:00
TEST, file has to be removed after
This commit is contained in:
parent
d521bfaa6f
commit
243315ae7c
115
src/fci/test_intel_check_omp.irp.f
Normal file
115
src/fci/test_intel_check_omp.irp.f
Normal file
@ -0,0 +1,115 @@
|
||||
program test_intel_check_omp
|
||||
|
||||
use omp_lib
|
||||
|
||||
implicit none
|
||||
|
||||
integer :: i,j,k,l,m,n,x
|
||||
double precision :: w1,w2,c1,c2
|
||||
double precision, allocatable :: accu(:,:,:,:)
|
||||
|
||||
x = 4
|
||||
allocate(accu(x,x,x,x))
|
||||
|
||||
accu = 0d0
|
||||
|
||||
!$OMP PARALLEL
|
||||
print*, 'Hello1 from:', OMP_GET_THREAD_NUM()
|
||||
!$OMP END PARALLEL
|
||||
|
||||
print*,'omp_get_max_active_levels:',omp_get_max_active_levels()
|
||||
call intel_check_omp()
|
||||
print*,'omp_get_max_active_levels:',omp_get_max_active_levels()
|
||||
|
||||
!call omp_set_max_active_levels(20000)
|
||||
|
||||
!$OMP PARALLEL
|
||||
print*, 'Hello2 from:', OMP_GET_THREAD_NUM()
|
||||
!$OMP END PARALLEL
|
||||
|
||||
call wall_time(w1)
|
||||
call cpu_time(c1)
|
||||
!$OMP PARALLEL &
|
||||
!$OMP PRIVATE(i,j,k,l,m,n) &
|
||||
!$OMP SHARED(accu)
|
||||
|
||||
print*,'level 1',omp_get_num_threads()
|
||||
!$OMP DO
|
||||
do l = 1, x
|
||||
do k = 1, x
|
||||
do j = 1, x
|
||||
do i = 1, x
|
||||
accu(i,j,k,l) = accu(i,j,k,l) + 1d0
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
!$OMP PARALLEL &
|
||||
!$OMP PRIVATE(i,j,k,l,m,n) &
|
||||
!$OMP SHARED(accu)
|
||||
|
||||
print*,'level 2',omp_get_num_threads()
|
||||
!$OMP DO
|
||||
do l = 1, x
|
||||
do k = 1, x
|
||||
do j = 1, x
|
||||
do i = 1, x
|
||||
accu(i,j,k,l) = accu(i,j,k,l)+ 1d0
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
!$OMP PARALLEL &
|
||||
!$OMP PRIVATE(i,j,k,l,m,n) &
|
||||
!$OMP SHARED(accu)
|
||||
|
||||
print*,'level 3',omp_get_num_threads()
|
||||
!$OMP DO
|
||||
do l = 1, x
|
||||
do k = 1, x
|
||||
do j = 1, x
|
||||
do i = 1, x
|
||||
accu(i,j,k,l) = accu(i,j,k,l)+ 1d0
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
!$OMP PARALLEL &
|
||||
!$OMP PRIVATE(i,j,k,l,m,n) &
|
||||
!$OMP SHARED(accu)
|
||||
|
||||
print*,'level 4',omp_get_num_threads()
|
||||
!$OMP DO
|
||||
do l = 1, x
|
||||
do k = 1, x
|
||||
do j = 1, x
|
||||
do i = 1, x
|
||||
accu(i,j,k,l) = accu(i,j,k,l)+ 1d0
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
!$OMP END DO
|
||||
|
||||
!$OMP END PARALLEL
|
||||
|
||||
!$OMP END PARALLEL
|
||||
|
||||
!$OMP END PARALLEL
|
||||
|
||||
!$OMP END PARALLEL
|
||||
|
||||
call wall_time(w2)
|
||||
call cpu_time(c2)
|
||||
|
||||
print*,accu(1,1,1,1)
|
||||
print*,'wall time:', w2-w1
|
||||
print*,'cpu time:', c2-c1
|
||||
print*,'ration',(c2-c1)/(w2-w1)
|
||||
end
|
Loading…
Reference in New Issue
Block a user