Changeset 721


Ignore:
Timestamp:
08/08/18 19:37:11 (6 years ago)
Author:
dubos
Message:

devel : created serial kernels to debug OpenMP

Location:
codes/icosagcm/devel
Files:
3 added
2 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/Python/src/hexagonal/macros.jin

    r685 r721  
    5858#if PASS_JINJA 
    5959 
     60#ifdef HEX_MASTER 
     61 
     62{% set ll_begin, ll_beginp1 = '1', '2' %}   
     63{% set ll_endm1, ll_end, ll_endp1 = 'llm-1', 'llm', 'llm+1' %}   
     64{% macro ij_omp(ext) -%} 
     65ij_begin{{ext}},ij_end{{ext}} 
     66{%- endmacro %} 
     67 
     68#else 
     69 
     70{% set ll_begin, ll_beginp1 = 'll_begin', 'll_beginp1' %}   
     71{% set ll_endm1, ll_end, ll_endp1 = 'll_endm1', 'll_end', 'll_endp1' %}   
     72{% macro ij_omp(ext) -%} 
     73ij_omp_begin{{ext}},ij_omp_end{{ext}} 
     74{%- endmacro %} 
     75 
     76#endif 
     77 
    6078{% macro sequence() -%} 
    6179{{ caller(body_primal,at_level_primal,'') }} 
     
    6886{% macro at_level_primal(lev,ext) -%} 
    6987{{ define('LL', lev) }} 
    70 DO ij=ij_omp_begin{{ext}},ij_omp_end{{ext}} 
     88DO ij={{ ij_omp(ext) }} 
    7189{{ caller() }} 
    7290END DO 
     
    7694{{ define('LL', 'l') }} 
    7795DO l = {{ range }} 
    78   DO ij=ij_omp_begin{{ext}},ij_omp_end{{ext}} 
     96  DO ij={{ ij_omp(ext) }} 
    7997    {{ caller() }} 
    8098  END DO 
     
    88106{% macro at_level_edge(lev,ext) -%} 
    89107{{ define('LL', lev) }} 
    90 DO ij=ij_omp_begin{{ext}},ij_omp_end{{ext}} 
     108DO ij={{ ij_omp(ext) }} 
    91109      {{ caller('u_right','t_right') }} 
    92110      {{ caller('u_lup','t_lup') }} 
     
    98116{{ define('LL', 'l') }} 
    99117DO l = {{ range }} 
    100    DO ij=ij_omp_begin{{ext}},ij_omp_end{{ext}} 
     118   DO ij={{ ij_omp(ext) }} 
    101119      {{ caller('u_right','t_right') }} 
    102120      {{ caller('u_lup','t_lup') }} 
     
    117135 
    118136{% macro forall(start,end,ij_range,thecode) %} 
    119 {% set start_omp={'1':'ll_begin' , '2':'ll_beginp1'}[start] %}   
    120 {% set end_omp={'llm-1':'ll_endm1' , 'llm':'ll_end', 'llm+1':'ll_endp1'}[end] %} 
     137{% set start_omp={'1':ll_begin , '2':ll_beginp1}[start] %}   
     138{% set end_omp={'llm-1':ll_endm1 , 'llm':ll_end, 'llm+1':ll_endp1}[end] %} 
    121139{% set is_top_layer, is_top_inter = False, False %} 
    122140 
  • codes/icosagcm/devel/make_python

    r705 r721  
    1212} 
    1313 
    14 #--------------- Generate kernels, invoked by : './make_python kernels' --------------- 
    15  
    16 function update() 
    17 { 
    18  diff $2 $1 || log cp -pr $1 $2 
    19 } 
    20  
    21 function cmd_clean() # this function is invoked by : './make_python clean' 
     14function cmd_clean() # cleanup, invoked by : './make_python clean' 
    2215{ 
    2316    rm -f lib/*.so lib/dynamico 
     
    2619} 
    2720 
     21#--------------- Generate kernels, invoked by : './make_python kernels' --------------- 
     22 
     23function update() 
     24{ 
     25    diff $2 $1 || log cp -pr $1 $2 
     26} 
     27 
     28function update_kernels() 
     29{ 
     30    cd $KERNELS/src/$1 
     31    for x in *.k90 ; do 
     32        update "$x" "$DYNAMICO_ROOT/src/$2/$x" 
     33    done 
     34} 
     35 
    2836function cmd_kernels() # this function is invoked by : './make_python kernels' 
    2937{ 
    3038    cd $KERNELS 
    31     ./codegen hexagonal unstructured 
    32  
    33     cd $KERNELS/src/hexagonal 
    34     for x in *.k90 ; do 
    35         update "$x" "$DYNAMICO_ROOT/src/kernels_hex/$x" 
    36     done 
    37  
    38     cd $KERNELS/src/unstructured 
    39     for x in *.k90 ; do 
    40         update "$x" "$DYNAMICO_ROOT/src/kernels_unst/$x" 
    41     done 
    42  
    43 # make sure to recompile dynamics 
     39    ./codegen hexagonal hex_master unstructured 
     40    update_kernels hexagonal kernels_hex 
     41    update_kernels hex_master kernels_hex_master 
     42    update_kernels unstructured kernels_unst 
     43# make sure that ./rebuild recompiles dynamics 
    4444    cd $DYNAMICO_ROOT 
    4545    touch src/dynamics/*.F90 src/diagnostics/*.F90 src/transport/*.F90 src/unstructured/*.F90 
     
    117117cd Python/env ;  . ${CURRENT_ARCH}.env ; cd $DYNAMICO_ROOT 
    118118 
    119 cmd_$1 
     119time cmd_$1 
Note: See TracChangeset for help on using the changeset viewer.