benchmark.f90 Source File


This file depends on

sourcefile~~benchmark.f90~~EfferentGraph sourcefile~benchmark.f90 benchmark.f90 sourcefile~forpca.f90 forpca.f90 sourcefile~benchmark.f90->sourcefile~forpca.f90

Source Code

program benchmark

   use kinds
   use forpca, only: tpca
   use fortime, only: timer

   implicit none

   real(rk), dimension(:,:), allocatable :: matrix
   real(rk), dimension(:,:), allocatable :: matrix_app
   real(rk), dimension(:,:), allocatable :: coeff
   real(rk), dimension(:,:), allocatable :: score
   real(rk), dimension(:),   allocatable :: latent
   real(rk), dimension(:),   allocatable :: explained
   type(tpca)                            :: p
   type(timer)                           :: t

   allocate(matrix(200,200))

#if defined(USE_COARRAY)
   sync all
   call t%timer_start()
   call p%pca(matrix, 50, 'svd', coeff, score, latent, explained, matrix_app)
   call t%timer_stop(message=' Elapsed time (benchmark: pca, coarray):')
   sync all
   call p%finalize()
#else
   call t%timer_start()
   call p%pca(matrix, 50, 'svd', coeff, score, latent, explained, matrix_app)
   call t%timer_stop(message=' Elapsed time (benchmark: pca):')   
#endif

end program benchmark