Version 3 (modified by dsolyga, 11 years ago) (diff) |
---|
How to run ORCHIDEE with Vampir (at Curie)
Vampir is a profiling software.
Global
- Install ORCHIDEE on $WORKDIR at Curie.
- 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 #-
- Execute ins_make script
> ./ins_make
- Compile with gmake
- 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