Ignore:
Timestamp:
Mar 8, 2013 11:54:10 PM (11 years ago)
Author:
raasch
Message:

New:
---

GPU porting of pres, swap_timelevel. Adjustments of openACC directives.
Further porting of poisfft, which now runs completely on GPU without any
host/device data transfer for serial an parallel runs (but parallel runs
require data transfer before and after the MPI transpositions).
GPU-porting of tridiagonal solver:
tridiagonal routines split into extermal subroutines (instead using CONTAINS),
no distinction between parallel/non-parallel in poisfft and tridia any more,
tridia routines moved to end of file because of probable bug in PGI compiler
(otherwise "invalid device function" is indicated during runtime).
(cuda_fft_interfaces, fft_xy, flow_statistics, init_3d_model, palm, poisfft, pres, prognostic_equations, swap_timelevel, time_integration, transpose)
output of accelerator board information. (header)

optimization of tridia routines: constant elements and coefficients of tri are
stored in seperate arrays ddzuw and tric, last dimension of tri reduced from 5 to 2,
(init_grid, init_3d_model, modules, palm, poisfft)

poisfft_init is now called internally from poisfft,
(Makefile, Makefile_check, init_pegrid, poisfft, poisfft_hybrid)

CPU-time per grid point and timestep is output to CPU_MEASURES file
(cpu_statistics, modules, time_integration)

Changed:


resorting from/to array work changed, work now has 4 dimensions instead of 1 (transpose)
array diss allocated only if required (init_3d_model)

pressure boundary condition "Neumann+inhomo" removed from the code
(check_parameters, header, poisfft, poisfft_hybrid, pres)

Errors:


bugfix: dependency added for cuda_fft_interfaces (Makefile)
bugfix: CUDA fft plans adjusted for domain decomposition (before they always
used total domain) (fft_xy)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/poisfft_hybrid.f90

    r1107 r1111  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! poisfft_hybrid_ini is now called internally from poisfft_hybrid,
     23! ibc_p_b = 2 removed
    2324!
    2425! Former revisions:
     
    115116                     tasks_per_logical_node = -1    ! default no cluster
    116117
     118    LOGICAL, SAVE ::  poisfft_initialized = .FALSE.
     119
    117120
    118121    PRIVATE
     
    283286       ENDIF
    284287
     288       poisfft_initialized = .TRUE.
     289
    285290    END SUBROUTINE poisfft_hybrid_ini
    286291
     
    294299
    295300       REAL, DIMENSION(1:nz,nys:nyn,nxl:nxr) ::  ar
     301
     302       IF ( .NOT. poisfft_initialized )  CALL poisfft_hybrid_ini
    296303
    297304       IF ( host(1:3) == 'nec' )  THEN
     
    961968             ENDDO
    962969          ENDDO
    963           IF ( ibc_p_b == 1  .OR.  ibc_p_b == 2 )  THEN
     970          IF ( ibc_p_b == 1 )  THEN
    964971             DO  i = 0,nx
    965972                tri(1,i,0) = tri(1,i,0) + tri(2,i,0)
Note: See TracChangeset for help on using the changeset viewer.