Changes between Version 13 and Version 14 of Documentation/UserGuide/ParallelCoding


Ignore:
Timestamp:
2020-05-29T17:48:01+02:00 (4 years ago)
Author:
aducharne
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/UserGuide/ParallelCoding

    v13 v14  
    55 
    66 
    7 ORCHIDEE is parallelized using the librairy MPI and OpenMP in hybrid mode which means using both method at the same time. Running the offline ORCHIDEE driver it is only possible to activate the MPI parallelization. Using ORCHIDEE coupled to LMDZ, the default mode is now hybrid mode but using only MPI or sequential mode is still possible. For OpenMP in LMDZ, use LMDZ5/trunk rev 1729 with some modifications (see below) or rev 1907 or later and for ORCHIDEE use revision 1615 on the trunk or later.  
     7ORCHIDEE is parallelized using the librairy MPI and OpenMP in hybrid mode which means using both methods at the same time. Running the offline ORCHIDEE driver it is only possible to activate the MPI parallelization. Using ORCHIDEE coupled to LMDZ, the default mode is now hybrid mode but using only MPI or sequential mode is still possible. For OpenMP in LMDZ, use LMDZ5/trunk rev 1729 with some modifications (see below) or rev 1907 or later and for ORCHIDEE use revision 1615 on the trunk or later.  
    88[[BR]] 
    99 
    10 Read also this documentation in frensh version  [attachment:"parallelisation_orchidee.2.pdf"]. 
     10Read also this documentation in French version  [attachment:"parallelisation_orchidee.2.pdf"]. 
    1111 
    1212 
     
    1717the parallelization. However, you have some rules to respect : 
    1818 * Use the subroutines called restget_p, restput_p and getin_p instead of restget, restput and getin. Note that all processes should call these subroutines _p and not only the master.  
    19  * It is now possible to use restget_p also for scalar values. Before a workaround where only the master MPI did the call was used, see following example: 
     19 * It is now possible to use restget_p also for scalar values. But you can still find examples in the code of what was done before for scalars, with a workaround where only the master MPI did the call (to restget and not restget_p), as in the following example: 
    2020{{{ 
    2121    IF (is_root_prc) THEN 
     
    3535= How to launch a simulation with MPI-OMP parallelization = 
    3636The default mode using the libIGCM coupled configurations are set up using hybrid parallelization. The number of cores MPI and OMP are defined in config.card, section Executable.  
    37 For example, in LMDZOR_v6.4 configuration, by default is set for the atmospheric executable 71 cores MPI and 8 cores OMP and for XIOS 1 MPI: 
     37For example, the LMDZOR_v6.4 configuration, by default, is set for the atmospheric executable 71 cores MPI and 8 cores OMP and for XIOS 1 MPI (leading to use (71+1)x8=576 procs): 
    3838{{{ 
    3939[Executable] 
     
    102102 * '''is_root_prc''' declared in ''src_parallel/mod_orchidee_para.F90'' ---> mpi and omp process master (=omp master thread on mpi process master) 
    103103 * '''is_omp_root''' declared in ''src_parallel/mod_orchidee_para_var.F90'' --> omp thread master, one per mpi process 
    104  * '''is_mpi_root''' declared in ''src_parallel/mod_orchidee_para_var.F90'' --> mpi process master, all omp thredds on the master process mpi are true 
     104 * '''is_mpi_root''' declared in ''src_parallel/mod_orchidee_para_var.F90'' --> mpi process master, all omp threads on the master process mpi are true 
    105105