Changes between Version 13 and Version 14 of Documentation/UserGuide/ParallelCoding
- Timestamp:
- 2020-05-29T17:48:01+02:00 (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Documentation/UserGuide/ParallelCoding
v13 v14 5 5 6 6 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.7 ORCHIDEE 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. 8 8 [[BR]] 9 9 10 Read also this documentation in frensh version [attachment:"parallelisation_orchidee.2.pdf"].10 Read also this documentation in French version [attachment:"parallelisation_orchidee.2.pdf"]. 11 11 12 12 … … 17 17 the parallelization. However, you have some rules to respect : 18 18 * 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. B efore 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: 20 20 {{{ 21 21 IF (is_root_prc) THEN … … 35 35 = How to launch a simulation with MPI-OMP parallelization = 36 36 The 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:37 For 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): 38 38 {{{ 39 39 [Executable] … … 102 102 * '''is_root_prc''' declared in ''src_parallel/mod_orchidee_para.F90'' ---> mpi and omp process master (=omp master thread on mpi process master) 103 103 * '''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 thre dds on the master process mpi are true104 * '''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 105 105