wiki:Documentation/UserGuide/OrchideeVampir

Version 3 (modified by dsolyga, 11 years ago) (diff)

--

How to run ORCHIDEE with Vampir (at Curie)

Vampir is a profiling software.

Global

  1. Install ORCHIDEE on $WORKDIR at Curie.
  1. If you use modipsl, you have to modify AA_make.gdef. Look for curie and make the following changes :
#-Q- curie  #-
#-Q- curie  #- Global definitions for Curie at TGCC
#-Q- curie LIB_MPI = MPI1
#-Q- curie LIB_MPI_BIS = MPI1
#-Q- curie PRISM_ARCH = X64
#-Q- curie PRISM_NAME = curie
#-Q- curie FCM_ARCH = X64_CURIE
#-Q- curie  M_K = gmake
#-Q- curie  P_C = cpp
#-Q- curie  P_O = -P -C $(P_P)
#-Q- curie  F_C = vtf90 -vt:mpi -vt:f90 mpif90 -c -cpp
#-Q- curie  #-D- MD    F_D = -g
#-Q- curie  #-D- MN    F_D =
#-Q- curie  #-P- I4R4  F_P = -i4
#-Q- curie  #-P- I4R8  F_P = -i4 -r8
#-Q- curie  #-P- I8R8  F_P = -i8 -r8
#-Q- curie  F_O = -DCPP_PARA -xHost -O3 $(F_D) $(F_P) -I$(MODDIR) -module $(MODDIR)
#-Q- curie  F_L = vtf90 -vt:mpi -vt:f90 mpif90
#-Q- curie  M_M = 0
#-Q- curie  L_X = 0
#-Q- curie  L_O =
#-Q- curie  A_C = ar -r
#-Q- curie  A_G = ar -x
#-Q- curie  C_C = cc -c
#-Q- curie  C_O =
#-Q- curie  C_L = cc
#-Q- curie  #-
#-Q- curie  NCDF_INC = $(NETCDF_INC_DIR)
#-Q- curie  NCDF_LIB = -L$(NETCDF_LIB_DIR) -lnetcdff -lnetcdf
#-Q- curie  #-

  1. Execute ins_make script
    >  ./ins_make
  1. Compile with gmake
  1. Script to laucnh on Curie
#!/bin/bash

#MSUB -r TAG196_IO
#MSUB -n 48
#MSUB -T 1800
#MSUB -o orchidee.%I
#MSUB -e orchidee.%I
#MSUB -q large
#MSUB -x
#MSUB -A gen6328

set -x
cd ${BRIDGE_MSUB_PWD}

module load netcdf/3.6.3
module load vampirtrace

export VT_MAX_FLUSHES 0

date 
time ccc_mprun ./orchidee_ol
date 

To be continued

Isolate a part of the code

If you suspect some part of your code to be time-consuming, you can isolate it with Vampirtrace. Around your code, add the instructions :

    VT_USER_START('Name_to_give_to_this_part_of_code')
     
     "Code Fortran" 

    VT_USER_END('Name_to_give_to_this_part_of_code')

You have to give name to each part of code you isolated see ParallelismPerformances for an example.

To be continued