Index: /XIOS/dev/branch_openmp/Note/EP note.aux
===================================================================
--- /XIOS/dev/branch_openmp/Note/EP note.aux	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/EP note.aux	(revision 1548)
@@ -0,0 +1,33 @@
+\relax 
+\citation{Dinan:2013}
+\@writefile{toc}{\contentsline {section}{\numberline {1}Purpose}{1}}
+\@writefile{toc}{\contentsline {section}{\numberline {2}MPI Endpoints Semantics}{1}}
+\citation{Sridharan:2014}
+\@writefile{toc}{\contentsline {section}{\numberline {3}EP types}{2}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}MPI\_Request}{3}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}MPI\_Status}{3}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}MPI\_Message}{3}}
+\@writefile{toc}{\contentsline {section}{\numberline {4}P2P communication}{3}}
+\citation{MPI}
+\citation{MPI}
+\@writefile{toc}{\contentsline {paragraph}{Messages are \textit  {non-overtaking}}{5}}
+\@writefile{toc}{\contentsline {paragraph}{Progress}{5}}
+\@writefile{toc}{\contentsline {paragraph}{Example 1}{5}}
+\@writefile{toc}{\contentsline {paragraph}{Example 2}{6}}
+\@writefile{toc}{\contentsline {section}{\numberline {5}Collective communication}{6}}
+\@writefile{toc}{\contentsline {paragraph}{Example 1}{7}}
+\@writefile{toc}{\contentsline {paragraph}{Example 2}{7}}
+\citation{MPI}
+\@writefile{toc}{\contentsline {section}{\numberline {6}Inter-communicator}{8}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}The splitting of intra-communicator}{8}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}The creation of inter-communicator}{10}}
+\citation{MPI}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}The merge of inter-communicators}{12}}
+\@writefile{toc}{\contentsline {section}{\numberline {7}P2P communication on inter-communicators}{13}}
+\citation{MPI}
+\bibstyle{plain}
+\bibdata{reference}
+\bibcite{Dinan:2013}{1}
+\@writefile{toc}{\contentsline {section}{\numberline {8}One-sided communications}{16}}
+\bibcite{MPI}{2}
+\bibcite{Sridharan:2014}{3}
Index: /XIOS/dev/branch_openmp/Note/EP note.bbl
===================================================================
--- /XIOS/dev/branch_openmp/Note/EP note.bbl	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/EP note.bbl	(revision 1548)
@@ -0,0 +1,21 @@
+\begin{thebibliography}{1}
+
+\bibitem{Dinan:2013}
+J.~Dinan, Pavan Balaji, D.~Goodell, D.~Miller, M.~Snir, and Rajeev Thakur.
+\newblock Enabling mpi interoperability through flexible communication
+  endpoints.
+\newblock In {\em EuroMPI 2013}, Madrid, Spain, 2013.
+
+\bibitem{MPI}
+Message Passing~Interface Forum.
+\newblock {\em MPI: A Message-Passing Interface Standard Version 3.1}.
+\newblock 2015.
+
+\bibitem{Sridharan:2014}
+S.~Sridharan, J.~Dinan, and D.~D. Kalamkar.
+\newblock Enabling efficient multithreaded mpi communication through a
+  library-based implementation of mpi endpoints.
+\newblock In {\em SC14: International Conference for High Performance
+  Computing, Networking, Storage and Analysis}, pages 487--498, Nov 2014.
+
+\end{thebibliography}
Index: /XIOS/dev/branch_openmp/Note/EP note.blg
===================================================================
--- /XIOS/dev/branch_openmp/Note/EP note.blg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/EP note.blg	(revision 1548)
@@ -0,0 +1,48 @@
+This is BibTeX, Version 0.99d (TeX Live 2015/Debian)
+Capacity: max_strings=35307, hash_size=35307, hash_prime=30011
+The top-level auxiliary file: EP note.aux
+The style file: plain.bst
+Database file #1: reference.bib
+Warning--empty publisher in MPI
+You've used 3 entries,
+            2118 wiz_defined-function locations,
+            517 strings with 4580 characters,
+and the built_in function-call counts, 1109 in all, are:
+= -- 98
+> -- 58
+< -- 1
++ -- 23
+- -- 20
+* -- 73
+:= -- 183
+add.period$ -- 9
+call.type$ -- 3
+change.case$ -- 18
+chr.to.int$ -- 0
+cite$ -- 4
+duplicate$ -- 49
+empty$ -- 90
+format.name$ -- 20
+if$ -- 237
+int.to.chr$ -- 0
+int.to.str$ -- 3
+missing$ -- 4
+newline$ -- 18
+num.names$ -- 6
+pop$ -- 31
+preamble$ -- 1
+purify$ -- 16
+quote$ -- 0
+skip$ -- 31
+stack$ -- 0
+substring$ -- 43
+swap$ -- 13
+text.length$ -- 1
+text.prefix$ -- 0
+top$ -- 0
+type$ -- 10
+warning$ -- 1
+while$ -- 8
+width$ -- 4
+write$ -- 33
+(There was 1 warning)
Index: /XIOS/dev/branch_openmp/Note/EP note.log
===================================================================
--- /XIOS/dev/branch_openmp/Note/EP note.log	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/EP note.log	(revision 1548)
@@ -0,0 +1,835 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=pdflatex 2017.8.24)  22 JUN 2018 16:19
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**"EP note.tex"
+(./EP note.tex
+LaTeX2e <2016/02/01>
+Babel <3.9q> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
+Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo
+File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@section=\count80
+\c@subsection=\count81
+\c@subsubsection=\count82
+\c@paragraph=\count83
+\c@subparagraph=\count84
+\c@figure=\count85
+\c@table=\count86
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
+Package: inputenc 2015/03/17 v1.2c Input encoding file
+\inpenc@prehook=\toks14
+\inpenc@posthook=\toks15
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def
+File: utf8.def 2015/12/03 v1.1r UTF-8 support for inputenc
+Now handling font encoding OML ...
+... no UTF-8 mapping file for font encoding OML
+Now handling font encoding T1 ...
+... processing UTF-8 mapping file for font encoding T1
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu
+File: t1enc.dfu 2015/12/03 v1.1r UTF-8 support for inputenc
+   defining Unicode char U+00A0 (decimal 160)
+   defining Unicode char U+00A1 (decimal 161)
+   defining Unicode char U+00A3 (decimal 163)
+   defining Unicode char U+00AB (decimal 171)
+   defining Unicode char U+00AD (decimal 173)
+   defining Unicode char U+00BB (decimal 187)
+   defining Unicode char U+00BF (decimal 191)
+   defining Unicode char U+00C0 (decimal 192)
+   defining Unicode char U+00C1 (decimal 193)
+   defining Unicode char U+00C2 (decimal 194)
+   defining Unicode char U+00C3 (decimal 195)
+   defining Unicode char U+00C4 (decimal 196)
+   defining Unicode char U+00C5 (decimal 197)
+   defining Unicode char U+00C6 (decimal 198)
+   defining Unicode char U+00C7 (decimal 199)
+   defining Unicode char U+00C8 (decimal 200)
+   defining Unicode char U+00C9 (decimal 201)
+   defining Unicode char U+00CA (decimal 202)
+   defining Unicode char U+00CB (decimal 203)
+   defining Unicode char U+00CC (decimal 204)
+   defining Unicode char U+00CD (decimal 205)
+   defining Unicode char U+00CE (decimal 206)
+   defining Unicode char U+00CF (decimal 207)
+   defining Unicode char U+00D0 (decimal 208)
+   defining Unicode char U+00D1 (decimal 209)
+   defining Unicode char U+00D2 (decimal 210)
+   defining Unicode char U+00D3 (decimal 211)
+   defining Unicode char U+00D4 (decimal 212)
+   defining Unicode char U+00D5 (decimal 213)
+   defining Unicode char U+00D6 (decimal 214)
+   defining Unicode char U+00D8 (decimal 216)
+   defining Unicode char U+00D9 (decimal 217)
+   defining Unicode char U+00DA (decimal 218)
+   defining Unicode char U+00DB (decimal 219)
+   defining Unicode char U+00DC (decimal 220)
+   defining Unicode char U+00DD (decimal 221)
+   defining Unicode char U+00DE (decimal 222)
+   defining Unicode char U+00DF (decimal 223)
+   defining Unicode char U+00E0 (decimal 224)
+   defining Unicode char U+00E1 (decimal 225)
+   defining Unicode char U+00E2 (decimal 226)
+   defining Unicode char U+00E3 (decimal 227)
+   defining Unicode char U+00E4 (decimal 228)
+   defining Unicode char U+00E5 (decimal 229)
+   defining Unicode char U+00E6 (decimal 230)
+   defining Unicode char U+00E7 (decimal 231)
+   defining Unicode char U+00E8 (decimal 232)
+   defining Unicode char U+00E9 (decimal 233)
+   defining Unicode char U+00EA (decimal 234)
+   defining Unicode char U+00EB (decimal 235)
+   defining Unicode char U+00EC (decimal 236)
+   defining Unicode char U+00ED (decimal 237)
+   defining Unicode char U+00EE (decimal 238)
+   defining Unicode char U+00EF (decimal 239)
+   defining Unicode char U+00F0 (decimal 240)
+   defining Unicode char U+00F1 (decimal 241)
+   defining Unicode char U+00F2 (decimal 242)
+   defining Unicode char U+00F3 (decimal 243)
+   defining Unicode char U+00F4 (decimal 244)
+   defining Unicode char U+00F5 (decimal 245)
+   defining Unicode char U+00F6 (decimal 246)
+   defining Unicode char U+00F8 (decimal 248)
+   defining Unicode char U+00F9 (decimal 249)
+   defining Unicode char U+00FA (decimal 250)
+   defining Unicode char U+00FB (decimal 251)
+   defining Unicode char U+00FC (decimal 252)
+   defining Unicode char U+00FD (decimal 253)
+   defining Unicode char U+00FE (decimal 254)
+   defining Unicode char U+00FF (decimal 255)
+   defining Unicode char U+0100 (decimal 256)
+   defining Unicode char U+0101 (decimal 257)
+   defining Unicode char U+0102 (decimal 258)
+   defining Unicode char U+0103 (decimal 259)
+   defining Unicode char U+0104 (decimal 260)
+   defining Unicode char U+0105 (decimal 261)
+   defining Unicode char U+0106 (decimal 262)
+   defining Unicode char U+0107 (decimal 263)
+   defining Unicode char U+0108 (decimal 264)
+   defining Unicode char U+0109 (decimal 265)
+   defining Unicode char U+010A (decimal 266)
+   defining Unicode char U+010B (decimal 267)
+   defining Unicode char U+010C (decimal 268)
+   defining Unicode char U+010D (decimal 269)
+   defining Unicode char U+010E (decimal 270)
+   defining Unicode char U+010F (decimal 271)
+   defining Unicode char U+0110 (decimal 272)
+   defining Unicode char U+0111 (decimal 273)
+   defining Unicode char U+0112 (decimal 274)
+   defining Unicode char U+0113 (decimal 275)
+   defining Unicode char U+0114 (decimal 276)
+   defining Unicode char U+0115 (decimal 277)
+   defining Unicode char U+0116 (decimal 278)
+   defining Unicode char U+0117 (decimal 279)
+   defining Unicode char U+0118 (decimal 280)
+   defining Unicode char U+0119 (decimal 281)
+   defining Unicode char U+011A (decimal 282)
+   defining Unicode char U+011B (decimal 283)
+   defining Unicode char U+011C (decimal 284)
+   defining Unicode char U+011D (decimal 285)
+   defining Unicode char U+011E (decimal 286)
+   defining Unicode char U+011F (decimal 287)
+   defining Unicode char U+0120 (decimal 288)
+   defining Unicode char U+0121 (decimal 289)
+   defining Unicode char U+0122 (decimal 290)
+   defining Unicode char U+0123 (decimal 291)
+   defining Unicode char U+0124 (decimal 292)
+   defining Unicode char U+0125 (decimal 293)
+   defining Unicode char U+0128 (decimal 296)
+   defining Unicode char U+0129 (decimal 297)
+   defining Unicode char U+012A (decimal 298)
+   defining Unicode char U+012B (decimal 299)
+   defining Unicode char U+012C (decimal 300)
+   defining Unicode char U+012D (decimal 301)
+   defining Unicode char U+012E (decimal 302)
+   defining Unicode char U+012F (decimal 303)
+   defining Unicode char U+0130 (decimal 304)
+   defining Unicode char U+0131 (decimal 305)
+   defining Unicode char U+0132 (decimal 306)
+   defining Unicode char U+0133 (decimal 307)
+   defining Unicode char U+0134 (decimal 308)
+   defining Unicode char U+0135 (decimal 309)
+   defining Unicode char U+0136 (decimal 310)
+   defining Unicode char U+0137 (decimal 311)
+   defining Unicode char U+0139 (decimal 313)
+   defining Unicode char U+013A (decimal 314)
+   defining Unicode char U+013B (decimal 315)
+   defining Unicode char U+013C (decimal 316)
+   defining Unicode char U+013D (decimal 317)
+   defining Unicode char U+013E (decimal 318)
+   defining Unicode char U+0141 (decimal 321)
+   defining Unicode char U+0142 (decimal 322)
+   defining Unicode char U+0143 (decimal 323)
+   defining Unicode char U+0144 (decimal 324)
+   defining Unicode char U+0145 (decimal 325)
+   defining Unicode char U+0146 (decimal 326)
+   defining Unicode char U+0147 (decimal 327)
+   defining Unicode char U+0148 (decimal 328)
+   defining Unicode char U+014A (decimal 330)
+   defining Unicode char U+014B (decimal 331)
+   defining Unicode char U+014C (decimal 332)
+   defining Unicode char U+014D (decimal 333)
+   defining Unicode char U+014E (decimal 334)
+   defining Unicode char U+014F (decimal 335)
+   defining Unicode char U+0150 (decimal 336)
+   defining Unicode char U+0151 (decimal 337)
+   defining Unicode char U+0152 (decimal 338)
+   defining Unicode char U+0153 (decimal 339)
+   defining Unicode char U+0154 (decimal 340)
+   defining Unicode char U+0155 (decimal 341)
+   defining Unicode char U+0156 (decimal 342)
+   defining Unicode char U+0157 (decimal 343)
+   defining Unicode char U+0158 (decimal 344)
+   defining Unicode char U+0159 (decimal 345)
+   defining Unicode char U+015A (decimal 346)
+   defining Unicode char U+015B (decimal 347)
+   defining Unicode char U+015C (decimal 348)
+   defining Unicode char U+015D (decimal 349)
+   defining Unicode char U+015E (decimal 350)
+   defining Unicode char U+015F (decimal 351)
+   defining Unicode char U+0160 (decimal 352)
+   defining Unicode char U+0161 (decimal 353)
+   defining Unicode char U+0162 (decimal 354)
+   defining Unicode char U+0163 (decimal 355)
+   defining Unicode char U+0164 (decimal 356)
+   defining Unicode char U+0165 (decimal 357)
+   defining Unicode char U+0168 (decimal 360)
+   defining Unicode char U+0169 (decimal 361)
+   defining Unicode char U+016A (decimal 362)
+   defining Unicode char U+016B (decimal 363)
+   defining Unicode char U+016C (decimal 364)
+   defining Unicode char U+016D (decimal 365)
+   defining Unicode char U+016E (decimal 366)
+   defining Unicode char U+016F (decimal 367)
+   defining Unicode char U+0170 (decimal 368)
+   defining Unicode char U+0171 (decimal 369)
+   defining Unicode char U+0172 (decimal 370)
+   defining Unicode char U+0173 (decimal 371)
+   defining Unicode char U+0174 (decimal 372)
+   defining Unicode char U+0175 (decimal 373)
+   defining Unicode char U+0176 (decimal 374)
+   defining Unicode char U+0177 (decimal 375)
+   defining Unicode char U+0178 (decimal 376)
+   defining Unicode char U+0179 (decimal 377)
+   defining Unicode char U+017A (decimal 378)
+   defining Unicode char U+017B (decimal 379)
+   defining Unicode char U+017C (decimal 380)
+   defining Unicode char U+017D (decimal 381)
+   defining Unicode char U+017E (decimal 382)
+   defining Unicode char U+01CD (decimal 461)
+   defining Unicode char U+01CE (decimal 462)
+   defining Unicode char U+01CF (decimal 463)
+   defining Unicode char U+01D0 (decimal 464)
+   defining Unicode char U+01D1 (decimal 465)
+   defining Unicode char U+01D2 (decimal 466)
+   defining Unicode char U+01D3 (decimal 467)
+   defining Unicode char U+01D4 (decimal 468)
+   defining Unicode char U+01E2 (decimal 482)
+   defining Unicode char U+01E3 (decimal 483)
+   defining Unicode char U+01E6 (decimal 486)
+   defining Unicode char U+01E7 (decimal 487)
+   defining Unicode char U+01E8 (decimal 488)
+   defining Unicode char U+01E9 (decimal 489)
+   defining Unicode char U+01EA (decimal 490)
+   defining Unicode char U+01EB (decimal 491)
+   defining Unicode char U+01F0 (decimal 496)
+   defining Unicode char U+01F4 (decimal 500)
+   defining Unicode char U+01F5 (decimal 501)
+   defining Unicode char U+0218 (decimal 536)
+   defining Unicode char U+0219 (decimal 537)
+   defining Unicode char U+021A (decimal 538)
+   defining Unicode char U+021B (decimal 539)
+   defining Unicode char U+01E02 (decimal 7682)
+   defining Unicode char U+01E03 (decimal 7683)
+   defining Unicode char U+200C (decimal 8204)
+   defining Unicode char U+2013 (decimal 8211)
+   defining Unicode char U+2014 (decimal 8212)
+   defining Unicode char U+2018 (decimal 8216)
+   defining Unicode char U+2019 (decimal 8217)
+   defining Unicode char U+201A (decimal 8218)
+   defining Unicode char U+201C (decimal 8220)
+   defining Unicode char U+201D (decimal 8221)
+   defining Unicode char U+201E (decimal 8222)
+   defining Unicode char U+2030 (decimal 8240)
+   defining Unicode char U+2031 (decimal 8241)
+   defining Unicode char U+2039 (decimal 8249)
+   defining Unicode char U+203A (decimal 8250)
+   defining Unicode char U+2423 (decimal 9251)
+)
+Now handling font encoding OT1 ...
+... processing UTF-8 mapping file for font encoding OT1
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu
+File: ot1enc.dfu 2015/12/03 v1.1r UTF-8 support for inputenc
+   defining Unicode char U+00A0 (decimal 160)
+   defining Unicode char U+00A1 (decimal 161)
+   defining Unicode char U+00A3 (decimal 163)
+   defining Unicode char U+00AD (decimal 173)
+   defining Unicode char U+00B8 (decimal 184)
+   defining Unicode char U+00BF (decimal 191)
+   defining Unicode char U+00C5 (decimal 197)
+   defining Unicode char U+00C6 (decimal 198)
+   defining Unicode char U+00D8 (decimal 216)
+   defining Unicode char U+00DF (decimal 223)
+   defining Unicode char U+00E6 (decimal 230)
+   defining Unicode char U+00EC (decimal 236)
+   defining Unicode char U+00ED (decimal 237)
+   defining Unicode char U+00EE (decimal 238)
+   defining Unicode char U+00EF (decimal 239)
+   defining Unicode char U+00F8 (decimal 248)
+   defining Unicode char U+0131 (decimal 305)
+   defining Unicode char U+0141 (decimal 321)
+   defining Unicode char U+0142 (decimal 322)
+   defining Unicode char U+0152 (decimal 338)
+   defining Unicode char U+0153 (decimal 339)
+   defining Unicode char U+0174 (decimal 372)
+   defining Unicode char U+0175 (decimal 373)
+   defining Unicode char U+0176 (decimal 374)
+   defining Unicode char U+0177 (decimal 375)
+   defining Unicode char U+0218 (decimal 536)
+   defining Unicode char U+0219 (decimal 537)
+   defining Unicode char U+021A (decimal 538)
+   defining Unicode char U+021B (decimal 539)
+   defining Unicode char U+2013 (decimal 8211)
+   defining Unicode char U+2014 (decimal 8212)
+   defining Unicode char U+2018 (decimal 8216)
+   defining Unicode char U+2019 (decimal 8217)
+   defining Unicode char U+201C (decimal 8220)
+   defining Unicode char U+201D (decimal 8221)
+)
+Now handling font encoding OMS ...
+... processing UTF-8 mapping file for font encoding OMS
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu
+File: omsenc.dfu 2015/12/03 v1.1r UTF-8 support for inputenc
+   defining Unicode char U+00A7 (decimal 167)
+   defining Unicode char U+00B6 (decimal 182)
+   defining Unicode char U+00B7 (decimal 183)
+   defining Unicode char U+2020 (decimal 8224)
+   defining Unicode char U+2021 (decimal 8225)
+   defining Unicode char U+2022 (decimal 8226)
+)
+Now handling font encoding OMX ...
+... no UTF-8 mapping file for font encoding OMX
+Now handling font encoding U ...
+... no UTF-8 mapping file for font encoding U
+   defining Unicode char U+00A9 (decimal 169)
+   defining Unicode char U+00AA (decimal 170)
+   defining Unicode char U+00AE (decimal 174)
+   defining Unicode char U+00BA (decimal 186)
+   defining Unicode char U+02C6 (decimal 710)
+   defining Unicode char U+02DC (decimal 732)
+   defining Unicode char U+200C (decimal 8204)
+   defining Unicode char U+2026 (decimal 8230)
+   defining Unicode char U+2122 (decimal 8482)
+   defining Unicode char U+2423 (decimal 9251)
+))
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
+Package: graphicx 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
+Package: graphics 2016/01/03 v1.0q Standard LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
+Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg
+File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
+)
+Package graphics Info: Driver file: pdftex.def on input line 95.
+
+(/usr/share/texlive/texmf-dist/tex/latex/pdftex-def/pdftex.def
+File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count87
+))
+\Gin@req@height=\dimen103
+\Gin@req@width=\dimen104
+)
+(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty
+\lst@mode=\count88
+\lst@gtempboxa=\box26
+\lst@token=\toks17
+\lst@length=\count89
+\lst@currlwidth=\dimen105
+\lst@column=\count90
+\lst@pos=\count91
+\lst@lostspace=\dimen106
+\lst@width=\dimen107
+\lst@newlines=\count92
+\lst@lineno=\count93
+\lst@maxwidth=\dimen108
+
+(/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty
+File: lstmisc.sty 2015/06/04 1.6 (Carsten Heinz)
+\c@lstnumber=\count94
+\lst@skipnumbers=\count95
+\lst@framebox=\box27
+)
+(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg
+File: listings.cfg 2015/06/04 1.6 listings configuration
+))
+Package: listings 2015/06/04 1.6 (Carsten Heinz)
+
+(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg
+File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
+)
+Package xcolor Info: Package option `usenames' ignored on input line 216.
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty
+Package: colortbl 2012/02/13 v1.0a Color table columns (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2014/10/28 v2.4c Tabular extension package (FMi)
+\col@sep=\dimen109
+\extrarowheight=\dimen110
+\NC@list=\toks18
+\extratabsurround=\skip43
+\backup@length=\skip44
+)
+\everycr=\toks19
+\minrowclearance=\skip45
+)
+\rownum=\count96
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341.
+Package xcolor Info: Model `RGB' extended on input line 1353.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def
+File: dvipsnam.def 2015/12/30 v3.0k Driver-dependent file (DPC,SPQR)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/xcolor/svgnam.def
+File: svgnam.def 2007/01/21 v2.11 Predefined colors according to SVG 1.1 (UK)
+))
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty
+Package: amsmath 2016/03/03 v2.15a AMS math features
+\@mathmargin=\skip46
+
+For additional information on amsmath, use the `?' option.
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty
+Package: amstext 2000/06/29 v2.01 AMS text
+
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty
+File: amsgen.sty 1999/11/30 v2.0 generic functions
+\@emptytoks=\toks20
+\ex@=\dimen111
+))
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty
+Package: amsbsy 1999/11/29 v1.2d Bold Symbols
+\pmbraise@=\dimen112
+)
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty
+Package: amsopn 1999/12/14 v2.01 operator names
+)
+\inf@bad=\count97
+LaTeX Info: Redefining \frac on input line 199.
+\uproot@=\count98
+\leftroot@=\count99
+LaTeX Info: Redefining \overline on input line 297.
+\classnum@=\count100
+\DOTSCASE@=\count101
+LaTeX Info: Redefining \ldots on input line 394.
+LaTeX Info: Redefining \dots on input line 397.
+LaTeX Info: Redefining \cdots on input line 518.
+\Mathstrutbox@=\box28
+\strutbox@=\box29
+\big@size=\dimen113
+LaTeX Font Info:    Redeclaring font encoding OML on input line 630.
+LaTeX Font Info:    Redeclaring font encoding OMS on input line 631.
+\macc@depth=\count102
+\c@MaxMatrixCols=\count103
+\dotsspace@=\muskip10
+\c@parentequation=\count104
+\dspbrk@lvl=\count105
+\tag@help=\toks21
+\row@=\count106
+\column@=\count107
+\maxfields@=\count108
+\andhelp@=\toks22
+\eqnshift@=\dimen114
+\alignsep@=\dimen115
+\tagshift@=\dimen116
+\tagwidth@=\dimen117
+\totwidth@=\dimen118
+\lineht@=\dimen119
+\@envbody=\toks23
+\multlinegap=\skip47
+\multlinetaggap=\skip48
+\mathdisplay@stack=\toks24
+LaTeX Info: Redefining \[ on input line 2735.
+LaTeX Info: Redefining \] on input line 2736.
+) (./EP note.aux)
+\openout1 = `"EP note.aux"'.
+
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 13.
+LaTeX Font Info:    ... okay on input line 13.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 13.
+LaTeX Font Info:    ... okay on input line 13.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 13.
+LaTeX Font Info:    ... okay on input line 13.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 13.
+LaTeX Font Info:    ... okay on input line 13.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 13.
+LaTeX Font Info:    ... okay on input line 13.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 13.
+LaTeX Font Info:    ... okay on input line 13.
+
+(/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count109
+\scratchdimen=\dimen120
+\scratchbox=\box30
+\nofMPsegments=\count110
+\nofMParguments=\count111
+\everyMPshowfont=\toks25
+\MPscratchCnt=\count112
+\MPscratchDim=\dimen121
+\MPnumerator=\count113
+\makeMPintoPDFobject=\count114
+\everyMPtoPDFconversion=\toks26
+) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
+Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO
+)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty
+Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO)
+Package ifpdf Info: pdfTeX in PDF mode is detected.
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
+Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty
+Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty
+Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO)
+))
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
+Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty
+Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds)             That can mean that you are not using pdfTeX 1.50 or
+(etexcmds)             that some package has redefined \expanded.
+(etexcmds)             In the latter case, load this package earlier.
+)))
+Package grfext Info: Graphics extension search list:
+(grfext)             [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE
+G,.JBIG2,.JB2,.eps]
+(grfext)             \AppendGraphicsExtensions on input line 452.
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
+File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
+e
+))
+\c@lstlisting=\count115
+
+<scheme.png, id=1, 665.48625pt x 517.935pt>
+File: scheme.png Graphic file (type png)
+ <use scheme.png>
+Package pdftex.def Info: scheme.png used on input line 27.
+(pdftex.def)             Requested size: 266.18977pt x 207.17032pt.
+
+Overfull \hbox (22.4968pt too wide) in paragraph at lines 35--35
+[]                              \OT1/cmtt/m/n/10 MPI_Info info, MPI_Comm out_co
+mm_hdls[])[] 
+ []
+
+
+Overfull \hbox (14.31355pt too wide) in paragraph at lines 38--43
+\OT1/cmr/m/n/10 cor-re-sponds to the $\OML/cmm/m/it/10 i[]$ \OT1/cmr/m/n/10 ran
+k re-quested by the caller of []\OT1/cmtt/m/n/10 MPI_Comm_create_endpoints\OT1/
+cmr/m/n/10 .
+ []
+
+[1
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./scheme.png (PNG copy)>] 
+[2] <tag.png, id=19, 752.8125pt x 103.38625pt>
+File: tag.png Graphic file (type png)
+ <use tag.png>
+Package pdftex.def Info: tag.png used on input line 121.
+(pdftex.def)             Requested size: 301.11966pt x 41.35376pt.
+ [3 <./tag.png (PNG copy)>] <sendrecv.png, id=23, 829.0975pt x 694.595pt>
+File: sendrecv.png Graphic file (type png)
+ <use sendrecv.png>
+Package pdftex.def Info: sendrecv.png used on input line 128.
+(pdftex.def)             Requested size: 414.54774pt x 347.29665pt.
+
+Overfull \hbox (69.54774pt too wide) in paragraph at lines 128--129
+ [] 
+ []
+
+<dequeue.png, id=24, 1194.4625pt x 547.04375pt>
+File: dequeue.png Graphic file (type png)
+ <use dequeue.png>
+Package pdftex.def Info: dequeue.png used on input line 137.
+(pdftex.def)             Requested size: 358.3415pt x 164.11438pt.
+
+Overfull \hbox (28.3415pt too wide) in paragraph at lines 137--138
+[][] 
+ []
+
+[4 <./sendrecv.png (PNG copy)>]
+Overfull \hbox (37.20526pt too wide) in paragraph at lines 178--179
+ \OT1/cmr/bx/n/10 Ex-am-ple 1[] []\OT1/cmtt/m/n/10 MPI_Test(MPI_Request *reques
+t, int *flag, MPI_Status *status) 
+ []
+
+
+Overfull \hbox (10.74715pt too wide) in paragraph at lines 185--185
+ []   \OT1/cmtt/m/n/10 MPI_Test(& request->mpi_request, flag, & status->mpi_sta
+tus)[] 
+ []
+
+[5 <./dequeue.png (PNG copy)>]
+Overfull \hbox (10.74715pt too wide) in paragraph at lines 197--197
+ []   \OT1/cmtt/m/n/10 MPI_Test(& request->mpi_request, flag, & status->mpi_sta
+tus)[] 
+ []
+
+[6]
+Overfull \hbox (17.11136pt too wide) in paragraph at lines 232--234
+[]\OT1/cmr/m/n/10 We can con-sider the com-mu-ni-ca-tor as $\OMS/cmsy/m/n/10 f[
+]  []  []  []g$\OT1/cmr/m/n/10 . 
+ []
+
+
+Overfull \hbox (25.85847pt too wide) in paragraph at lines 239--240
+[]\OT1/cmr/m/n/10 We call []\OT1/cmtt/m/n/10 MPI_Bcast(buffer, count, datatype,
+ mpi_root = 1, mpi_comm) \OT1/cmr/m/n/10 . 
+ []
+
+<bcast.png, id=36, 743.77875pt x 552.0625pt>
+File: bcast.png Graphic file (type png)
+ <use bcast.png>
+Package pdftex.def Info: bcast.png used on input line 244.
+(pdftex.def)             Requested size: 223.13535pt x 165.62003pt.
+
+Overfull \hbox (16.20544pt too wide) in paragraph at lines 249--251
+ \OT1/cmr/bx/n/10 Ex-am-ple 2[] []\OT1/cmtt/m/n/10 EP_Allreduce(sendbuf, recvbu
+f, count, datatype, op, comm)
+ []
+
+<allreduce.png, id=37, 743.77875pt x 552.0625pt>
+File: allreduce.png Graphic file (type png)
+ <use allreduce.png>
+Package pdftex.def Info: allreduce.png used on input line 262.
+(pdftex.def)             Requested size: 223.13535pt x 165.62003pt.
+ [7 <./bcast.png (PNG copy)> <./allreduce.png (PNG copy)>]
+<split.png, id=44, 552.0625pt x 597.23125pt>
+File: split.png Graphic file (type png)
+ <use split.png>
+Package pdftex.def Info: split.png used on input line 297.
+(pdftex.def)             Requested size: 220.82108pt x 238.88826pt.
+ [8 <./split.png (PNG copy)>] <split2.png, id=48, 928.46875pt x 697.60625pt>
+File: split2.png Graphic file (type png)
+ <use split2.png>
+Package pdftex.def Info: split2.png used on input line 317.
+(pdftex.def)             Requested size: 371.38092pt x 279.03755pt.
+
+Overfull \hbox (26.38092pt too wide) in paragraph at lines 317--318
+ [] 
+ []
+
+
+Overfull \hbox (14.91614pt too wide) in paragraph at lines 322--324
+\OT1/cmr/m/n/10 In XIOS, the inter-communicators are cre-ate by the rou-tine []
+\OT1/cmtt/m/n/10 MPI_Intercomm_create
+ []
+
+[9 <./split2.png (PNG copy)>]
+<intercomm.png, id=52, 1036.87375pt x 459.7175pt>
+File: intercomm.png Graphic file (type png)
+ <use intercomm.png>
+Package pdftex.def Info: intercomm.png used on input line 344.
+(pdftex.def)             Requested size: 311.06451pt x 137.9163pt.
+ [10 <./intercomm.png (PNG copy)>]
+<intercomm_step.png, id=56, 1309.89375pt x 683.55376pt>
+File: intercomm_step.png Graphic file (type png)
+
+<use intercomm_step.png>
+Package pdftex.def Info: intercomm_step.png used on input line 369.
+(pdftex.def)             Requested size: 327.47264pt x 170.88802pt.
+
+Overfull \hbox (6.07089pt too wide) in paragraph at lines 372--375
+\OT1/cmr/m/n/10 should add an \OT1/cmr/m/it/10 pri-or-ity check \OT1/cmr/m/n/10
+ to as-sign the pro-cess to only one intra-communicator.
+ []
+
+<intercomm2.png, id=57, 1415.2875pt x 1813.77625pt>
+File: intercomm2.png Graphic file (type png)
+ <use intercomm2.png>
+Package pdftex.def Info: intercomm2.png used on input line 391.
+(pdftex.def)             Requested size: 353.82101pt x 453.44295pt.
+
+Overfull \hbox (8.82101pt too wide) in paragraph at lines 391--392
+ [] 
+ []
+
+[11 <./intercomm_step.png (PNG copy)>]
+Overfull \hbox (38.24666pt too wide) in paragraph at lines 395--400
+[]\OT1/cmtt/m/n/10 MPI_Intercomm_Merge(MPI_Comm intercomm, int high, MPI_Comm *
+newintracomm)
+ []
+
+[12 <./intercomm2.png (PNG copy)>]
+<merge.png, id=64, 1455.4375pt x 808.01875pt>
+File: merge.png Graphic file (type png)
+ <use merge.png>
+Package pdftex.def Info: merge.png used on input line 412.
+(pdftex.def)             Requested size: 363.85849pt x 202.0042pt.
+
+Overfull \hbox (18.85849pt too wide) in paragraph at lines 412--413
+ [] 
+ []
+
+LaTeX Font Info:    Try loading font information for OMS+cmr on input line 420.
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/omscmr.fd
+File: omscmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions
+)
+LaTeX Font Info:    Font shape `OMS/cmr/m/n' in size <10> not available
+(Font)              Font shape `OMS/cmsy/m/n' tried instead on input line 420.
+
+Overfull \hbox (5.27556pt too wide) in paragraph at lines 422--423
+[][]\OT1/cmtt/m/n/10 RANK_MAP intercomm_rank_map[size of commB']\OT1/cmr/m/n/10
+ : = []\OT1/cmtt/m/n/10 rank_map \OT1/cmr/m/n/10 of re-mote
+ []
+
+<ranks.png, id=65, 1305.87875pt x 508.90125pt>
+File: ranks.png Graphic file (type png)
+ <use ranks.png>
+Package pdftex.def Info: ranks.png used on input line 428.
+(pdftex.def)             Requested size: 391.76665pt x 152.67155pt.
+
+Overfull \hbox (46.76665pt too wide) in paragraph at lines 428--429
+ [] 
+ []
+
+[13 <./merge.png (PNG copy)>]
+Overfull \hbox (22.4968pt too wide) in paragraph at lines 449--449
+[] \OT1/cmtt/m/n/10 intercomm_rank_map={(remote endpoints local rank in commA' 
+or commB',[] 
+ []
+
+
+Overfull \hbox (17.24684pt too wide) in paragraph at lines 449--449
+[]                      \OT1/cmtt/m/n/10 remote endpoints MPI rank in commA' or
+ commB')}[] 
+ []
+
+
+Overfull \hbox (22.4968pt too wide) in paragraph at lines 470--470
+[] \OT1/cmtt/m/n/10 intercomm_rank_map={(remote endpoints local rank in commA' 
+or commB',[] 
+ []
+
+
+Overfull \hbox (17.24684pt too wide) in paragraph at lines 470--470
+[]                      \OT1/cmtt/m/n/10 remote endpoints MPI rank in commA' or
+ commB')}[] 
+ []
+
+[14 <./ranks.png (PNG copy)>]
+Overfull \hbox (0.24724pt too wide) in paragraph at lines 495--495
+ []      \OT1/cmtt/m/n/10 src_rank_local = intercomm_rank_map->at(src_rank).fir
+st[] 
+ []
+
+<sendrecv2.png, id=73, 1319.93124pt x 880.28876pt>
+File: sendrecv2.png Graphic file (type png)
+ <use sendrecv2.png>
+Package pdftex.def Info: sendrecv2.png used on input line 504.
+(pdftex.def)             Requested size: 395.98242pt x 264.08865pt.
+
+Overfull \hbox (50.98242pt too wide) in paragraph at lines 504--505
+ [] 
+ []
+
+[15 <./sendrecv2.png (PNG copy)>]
+<RMA_schema.pdf, id=77, 665.79741pt x 309.10483pt>
+File: RMA_schema.pdf Graphic file (type pdf)
+ <use RMA_schema.pdf>
+Package pdftex.def Info: RMA_schema.pdf used on input line 516.
+(pdftex.def)             Requested size: 332.89789pt x 154.55203pt.
+
+Overfull \hbox (4.16386pt too wide) in paragraph at lines 530--532
+[]\OT1/cmtt/m/n/10 MPI_Put\OT1/cmr/m/n/10 , []\OT1/cmtt/m/n/10 MPI_Get\OT1/cmr/
+m/n/10 , []\OT1/cmtt/m/n/10 MPI_Accumulate\OT1/cmr/m/n/10 , []\OT1/cmtt/m/n/10 
+MPI_Get_accumulate\OT1/cmr/m/n/10 , []\OT1/cmtt/m/n/10 MPI_Fetch_and_op\OT1/cmr
+/m/n/10 ,
+ []
+
+(./EP note.bbl [16 <./RMA_schema.pdf>]) [17] (./EP note.aux) ) 
+Here is how much of TeX's memory you used:
+ 4578 strings out of 494953
+ 60563 string characters out of 6180977
+ 136670 words of memory out of 5000000
+ 7787 multiletter control sequences out of 15000+600000
+ 9896 words of font info for 36 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 41i,9n,35p,242b,356s stack positions out of 5000i,500n,10000p,200000b,80000s
+</usr/share/texli
+ve/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr/share/texlive/tex
+mf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/share/texlive/texmf-dis
+t/fonts/type1/public/amsfonts/cm/cmbxti10.pfb></usr/share/texlive/texmf-dist/fo
+nts/type1/public/amsfonts/cm/cmex10.pfb></usr/share/texlive/texmf-dist/fonts/ty
+pe1/public/amsfonts/cm/cmmi10.pfb></usr/share/texlive/texmf-dist/fonts/type1/pu
+blic/amsfonts/cm/cmmi7.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/am
+sfonts/cm/cmr10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/
+cm/cmr12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr1
+7.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb></
+usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/sh
+are/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb></usr/share/te
+xlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb></usr/share/texlive/
+texmf-dist/fonts/type1/urw/times/utmr8a.pfb>
+Output written on "EP note.pdf" (17 pages, 1091602 bytes).
+PDF statistics:
+ 133 PDF objects out of 1000 (max. 8388607)
+ 84 compressed objects within 1 object stream
+ 0 named destinations out of 1000 (max. 500000)
+ 76 words of extra memory for PDF output out of 10000 (max. 10000000)
+
Index: /XIOS/dev/branch_openmp/Note/EP note.lyx
===================================================================
--- /XIOS/dev/branch_openmp/Note/EP note.lyx	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/EP note.lyx	(revision 1548)
@@ -0,0 +1,3595 @@
+#LyX file created by tex2lyx 2.3
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin /homel/ywang/Documents/MPI_Endpoints/Note/
+\textclass article
+\begin_preamble
+\usepackage{listings}
+\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
+
+
+% Title Page
+\title{Note for MPI Endpoints}
+\author{}
+
+
+
+\end_preamble
+\use_default_options false
+\maintain_unincluded_children false
+\language english
+\language_package none
+\inputencoding utf8
+\fontencoding default
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize 10
+\spacing single
+\use_hyperref false
+\papersize a4paper
+\use_geometry false
+\use_package amsmath 2
+\use_package amssymb 0
+\use_package cancel 0
+\use_package esint 1
+\use_package mathdots 0
+\use_package mathtools 0
+\use_package mhchem 0
+\use_package stackrel 0
+\use_package stmaryrd 0
+\use_package undertilde 0
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 0
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style english
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+maketitle
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+%
+\backslash
+begin{abstract}
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+%
+\backslash
+end{abstract}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Purpose
+\end_layout
+
+\begin_layout Standard
+Use threads as if they are MPI processes. Each thread will be assigned a rank and be associated with a endpoints communicator (EP_Comm). Convention: one OpenMP thread corresponds to one endpoint.
+\end_layout
+
+\begin_layout Section
+MPI Endpoints Semantics
+\end_layout
+
+\begin_layout Standard
+\align center
+
+\begin_inset Graphics 
+	filename scheme.png
+	scale 40
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Standard
+Endpoints are created from one MPI communicator and the number of available threads: 
+\end_layout
+
+\begin_layout Verbatim
+int MPI_Comm_create_endpoints(MPI_Comm parent_comm, int num_ep, 
+\end_layout
+
+\begin_layout Verbatim
+                              MPI_Info info, MPI_Comm out_comm_hdls[])
+\end_layout
+
+\begin_layout Verbatim
+ 
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset Quotes eld
+\end_inset
+
+In this collective call, a single output communicator is created, and an array of 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|num_ep|
+\end_layout
+
+\end_inset
+
+ handles to this new communicator are returned, where the 
+\begin_inset Formula $i^{th}$
+\end_inset
+
+ handle corresponds to the 
+\begin_inset Formula $i^{th}$
+\end_inset
+
+ rank requested by the caller of 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Comm_create_endpoints|
+\end_layout
+
+\end_inset
+
+. Ranks in the output communicator are ordered sequentially and in the same order as the parent communicator. After it has been created, the output communicator behaves as a normal communicator, and MPI calls on each endpoint (i.e., communicator handle) behave as though they originated from a separate MPI process. In particular, collective calls must be made once per endpoint.
+\begin_inset Quotes erd
+\end_inset
+
+
+\begin_inset CommandInset citation
+LatexCommand cite
+after ""
+key "Dinan:2013"
+literal "true"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset Quotes eld
+\end_inset
+
+Once created, endpoints behave as MPI processes. For example, all ranks in an endpoints communicator must participate in collective operations. A consequence of this semantic is that endpoints also have MPI process progress requirements; that operations on that endpoint are required to make progress only when an MPI operation (e.g. 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Test|
+\end_layout
+
+\end_inset
+
+) is performed on that endpoint. This semantic enables an MPI implementation to logically separate endpoints, treat them independently within the progress engine, and eliminate synchronization in updating their state.
+\begin_inset Quotes erd
+\end_inset
+
+
+\begin_inset CommandInset citation
+LatexCommand cite
+after ""
+key "Sridharan:2014"
+literal "true"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+EP types
+\end_layout
+
+\begin_layout Subsection*
+MPI_Comm
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Comm|
+\end_layout
+
+\end_inset
+
+ is composed by: 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|bool is_ep|
+\end_layout
+
+\end_inset
+
+: true 
+\begin_inset Formula $\implies$
+\end_inset
+
+ EP, false 
+\begin_inset Formula $\implies$
+\end_inset
+
+ MPI classic; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|int mpi_comm|
+\end_layout
+
+\end_inset
+
+: handle to the parent MPI communicator; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|OMPbarrier *ep_barrier|
+\end_layout
+
+\end_inset
+
+: openMP barrier, used for in-process synchronization and is different from 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|omp barrier|
+\end_layout
+
+\end_inset
+
+; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|int[2] size_rank_info[3]|
+\end_layout
+
+\end_inset
+
+: topology information of the current endpoint: 
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+rank of parent MPI process; 
+\end_layout
+
+\begin_layout Itemize
+size of parent MPI communicator; 
+\end_layout
+
+\begin_layout Itemize
+rank of endpoint, returned by 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Comm_rank|
+\end_layout
+
+\end_inset
+
+; 
+\end_layout
+
+\begin_layout Itemize
+size of EP communicator, returned by 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Comm_size|
+\end_layout
+
+\end_inset
+
+; 
+\end_layout
+
+\begin_layout Itemize
+in-process rank of endpoint; 
+\end_layout
+
+\begin_layout Itemize
+in-process size of EP communicator, also noted as the number of endpoints in one MPI process. 
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Comm *comm_list|
+\end_layout
+
+\end_inset
+
+: pointer of the first endpoint communicator of one process; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|Message_list *message_queue|
+\end_layout
+
+\end_inset
+
+: location of in-coming messages for each endpoint; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|RANK_MAP *rank_map|
+\end_layout
+
+\end_inset
+
+: a map composed by an integer and a pair of integers. The integer key represents the rank of an endpoint. The mapped type (pair of integers) gives the in-process rank of the endpoint and the rank of its parent MPI process: 
+\end_layout
+
+\begin_layout Verbatim
+rank_map->at(ep_rank)=(ep_rank_local, mpi_rank)
+\end_layout
+
+\begin_layout Verbatim
+ 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|BUFFER *ep_buffer|
+\end_layout
+
+\end_inset
+
+: buffer (of type 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|int|
+\end_layout
+
+\end_inset
+
+, 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|float|
+\end_layout
+
+\end_inset
+
+, 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|double|
+\end_layout
+
+\end_inset
+
+, 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|char|
+\end_layout
+
+\end_inset
+
+, 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|long|
+\end_layout
+
+\end_inset
+
+, and 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|unsigned long|
+\end_layout
+
+\end_inset
+
+) used for in-process communication. 
+\end_layout
+
+\begin_layout Subsection
+MPI_Request
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Request|
+\end_layout
+
+\end_inset
+
+ is composed by: 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|int mpi_request|
+\end_layout
+
+\end_inset
+
+: handle to the MPI request; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|int ep_datatype|
+\end_layout
+
+\end_inset
+
+: data type of the communication; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Comm comm|
+\end_layout
+
+\end_inset
+
+: handle to the EP communicator; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|int ep_src|
+\end_layout
+
+\end_inset
+
+: rank of the source endpoint; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|int ep_tag|
+\end_layout
+
+\end_inset
+
+: tag of the communication. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|int type|
+\end_layout
+
+\end_inset
+
+: type of the communication: 
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+1 
+\begin_inset Formula $\implies$
+\end_inset
+
+ non-blocking send; 
+\end_layout
+
+\begin_layout Itemize
+2 
+\begin_inset Formula $\implies$
+\end_inset
+
+ pending non-blocking receive; 
+\end_layout
+
+\begin_layout Itemize
+3 
+\begin_inset Formula $\implies$
+\end_inset
+
+ non-blocking matching receive. 
+\end_layout
+
+\end_deeper
+\begin_layout Subsection
+MPI_Status
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Status|
+\end_layout
+
+\end_inset
+
+ consists of: 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|int mpi_status|
+\end_layout
+
+\end_inset
+
+: handle to the MPI status; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|int ep_datatype|
+\end_layout
+
+\end_inset
+
+: data type of the communication; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|int ep_src|
+\end_layout
+
+\end_inset
+
+: rank of the source endpoint; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|int ep_tag|
+\end_layout
+
+\end_inset
+
+: tag of the communication. 
+\end_layout
+
+\begin_layout Subsection
+MPI_Message
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Message|
+\end_layout
+
+\end_inset
+
+ includes: 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|int mpi_message|
+\end_layout
+
+\end_inset
+
+: handle to the MPI message; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|int ep_src|
+\end_layout
+
+\end_inset
+
+: rank of the source endpoint; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|int ep_tag|
+\end_layout
+
+\end_inset
+
+: tag of the communication. 
+\end_layout
+
+\begin_layout Standard
+Other types, such as 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Info|
+\end_layout
+
+\end_inset
+
+, 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Aint|
+\end_layout
+
+\end_inset
+
+, and 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Fint|
+\end_layout
+
+\end_inset
+
+ are defined in the same way.
+\end_layout
+
+\begin_layout Section
+P2P communication
+\end_layout
+
+\begin_layout Standard
+All EP point-to-point communication use tag to distinguish the source and destination endpoint. To be able to add these extra information to tag, we require that the tag value is represented using 31 bits in the underlying MPI inmplemention.
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset Graphics 
+	filename tag.png
+	scale 40
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+EP_tag is user defined. MPI_tag is internally computed and used inside MPI calls. Because of the extension of tag, wild-cards as 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_ANY_SOURCE|
+\end_layout
+
+\end_inset
+
+ and 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_ANY_TAG|
+\end_layout
+
+\end_inset
+
+ will not be usable directly. An extra step of tag analysis is needed which leads to the message dequeuing mechanism.
+\end_layout
+
+\begin_layout Standard
+\align center
+
+\begin_inset Graphics 
+	filename sendrecv.png
+	scale 50
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Standard
+In MPI environment, each MPI process has an incoming message queue. In EP case, messages for all threads inside one MPI process are stored in this MPI queue. With the MPI 3 standard, we use the 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Improbe|
+\end_layout
+
+\end_inset
+
+ routine to inquire the message queue and relocate the incoming message in the local message queue for the corresponding thread/endpoint.
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset Graphics 
+	filename dequeue.png
+	scale 30
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+% Any EP calls will trigger the message dequeuing and the probing, (matched-)receiving operations are performed upon the local message queue. 
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+% 
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+% Example: 
+\backslash
+verb|EP_Recv(src=2, tag=10, comm1)|:
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+% 
+\backslash
+begin{itemize}
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+%  
+\backslash
+item[1.] Dequeue MPI message queue;
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+%  
+\backslash
+item[2.] call 
+\backslash
+verb|EP_Improb(src=2, tag=10, comm1, message)|;
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+%  
+\backslash
+item[3.] if find corresponding triple (src, tag, comm1), call 
+\backslash
+verb|EP_Mrecv(src=2, tag=10, comm1, message)|;
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+%  
+\backslash
+item[4.] else, repeat from step 2.
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+% 
+\backslash
+end{itemize}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Paragraph
+Messages are 
+\shape italic
+non-overtaking
+\shape default
+
+\end_layout
+
+\begin_layout Standard
+Incoming messages' order is important! If one thread is receiving multiple messages from the same source with the same tag. The receive order should be the same order in which the messages are sent. That is to say, the n-th sent message should be the n-th received message.
+\end_layout
+
+\begin_layout Paragraph
+Progress
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset Quotes eld
+\end_inset
+
+If a pair of matching send and receives have been initiated on two processes, then at least one of these two operations will complete, independently of other actions in the system: the send operation will complete, unless the receive is satisfied by another message, and completes; the receive operation will complete, unless the message sent is consumed by another matching receive that was posted at the same destination process.
+\begin_inset Quotes erd
+\end_inset
+
+ 
+\begin_inset CommandInset citation
+LatexCommand cite
+after ""
+key "MPI"
+literal "true"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+When one 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|EP_Irecv|
+\end_layout
+
+\end_inset
+
+ is issued, we first dequeue the MPI incoming message queue and distribute all incoming messages to the local queues according to the destination identifier. Next, the nonblocking receive request is added at the end of the request pending list. Third, the pending list is checked and requests with matching source, tag, and communicator will be accomplished.
+\end_layout
+
+\begin_layout Standard
+Because of the importance of message order, some communication completion functions must be discussed here such as 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Test|
+\end_layout
+
+\end_inset
+
+ and 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Wait|
+\end_layout
+
+\end_inset
+
+. 
+\begin_inset Quotes eld
+\end_inset
+
+The functions 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Wait|
+\end_layout
+
+\end_inset
+
+ and 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Test|
+\end_layout
+
+\end_inset
+
+ are used to complete a nonblocking communication. The completion of a send operation indicates that the sender is now free to update the locations in the send buffer (the send operation itself leaves the content of the send buffer unchanged). It does not indicate that the message has been received, rather, it may have been buffered by the communication subsystem. However, if a synchronous mode send was used, the completion of the send operation indicates that a matching receive was initiated, and that the message will eventually be received by this matching receive. The completion of a receive operation indicates that the receive buffer contains the received message, the receiver is now free to access it, and that the status object is set. It does not indicate that the matching send operation has completed (but indicates, of course, that the send was initiated).
+\begin_inset Quotes erd
+\end_inset
+
+ 
+\begin_inset CommandInset citation
+LatexCommand cite
+after ""
+key "MPI"
+literal "true"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Paragraph
+Example 1
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Test(MPI_Request *request, int *flag, MPI_Status *status)|
+\end_layout
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+1.
+\end_layout
+
+\end_inset
+
+If 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|request->type == 1|
+\end_layout
+
+\end_inset
+
+, communication to be tested is indeed issued from a non-blocking send. The completion status is returned by: 
+\end_layout
+
+\begin_layout Verbatim
+   MPI_Test(& request->mpi_request, flag, & status->mpi_status)
+\end_layout
+
+\begin_layout Verbatim
+  
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+2.
+\end_layout
+
+\end_inset
+
+If 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|request->type == 2|
+\end_layout
+
+\end_inset
+
+, it means that a non-blocking receive is called but the corresponding message is not yet probed. The request is in the pending list thus not yet completed. All incoming message is once again probed and all pending requests are checked. If after the second check, the matching message is found, thus a 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Imrecv|
+\end_layout
+
+\end_inset
+
+ is called and the type is set to 3. Otherwise, the type is still 2, then 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|flag = false|
+\end_layout
+
+\end_inset
+
+ is returned. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+3.
+\end_layout
+
+\end_inset
+
+If 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|request->type == 3|
+\end_layout
+
+\end_inset
+
+, this indcates that the request is issued from a non-blocking receive call and the matching message is probed thus the status of the communication lies in the status of the 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Imrecv|
+\end_layout
+
+\end_inset
+
+ function. The completion result is returned by: 
+\end_layout
+
+\begin_layout Verbatim
+   MPI_Test(& request->mpi_request, flag, & status->mpi_status)
+\end_layout
+
+\begin_layout Verbatim
+  
+\end_layout
+
+\begin_layout Paragraph
+Example 2
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Wait(MPI_Request *request, MPI_Status *status)|
+\end_layout
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+1.
+\end_layout
+
+\end_inset
+
+If 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|request->type == 1|
+\end_layout
+
+\end_inset
+
+, communication to be tested is indeed issued from a non-blocking send. Jump to step 4. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+2.
+\end_layout
+
+\end_inset
+
+If 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|request->type == 2|
+\end_layout
+
+\end_inset
+
+, it means that a non-blocking receive is called but the corresponding message is not yet probed. The request is in the pending list thus not yet completed. We repeat the incoming message probing and the pending request checking until the matching message is found, thus a 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Imrecv|
+\end_layout
+
+\end_inset
+
+ is called and the type is set to 3. Jump to step 4. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+3.
+\end_layout
+
+\end_inset
+
+If 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|request->type == 3|
+\end_layout
+
+\end_inset
+
+, this indcates that the request is issued from a non-blocking receive call and the matching message is probed thus the status of the communication lies in the status of the 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Imrecv|
+\end_layout
+
+\end_inset
+
+ function. Jump to step 4. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+4.
+\end_layout
+
+\end_inset
+
+We force the completion by calling: 
+\end_layout
+
+\begin_layout Verbatim
+   MPI_Wat(& request->mpi_request, & status->mpi_status)
+\end_layout
+
+\begin_layout Verbatim
+  
+\end_layout
+
+\begin_layout Section
+Collective communication
+\end_layout
+
+\begin_layout Standard
+All MPI classic collective communications are performed as the following pattern:
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+1.
+\end_layout
+
+\end_inset
+
+Intra-process communication using OpenMP. 
+\shape italic
+e.g.
+\shape default
+ Collect data from slave threads to master thread. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+2.
+\end_layout
+
+\end_inset
+
+Inter-process communication using MPI collective calls on master threads. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+3.
+\end_layout
+
+\end_inset
+
+Intra-process communication using OpenMP. 
+\shape italic
+e.g.
+\shape default
+ Distribute data from master thread to slave threads. 
+\end_layout
+
+\begin_layout Paragraph
+Example 1
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|EP_Bcast(buffer, count, datatype, root = 4, comm)|
+\end_layout
+
+\end_inset
+
+ with 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|comm|
+\end_layout
+
+\end_inset
+
+ composed by 4 MPI processes and 3 threads per process:
+\end_layout
+
+\begin_layout Standard
+We can consider the communicator as 
+\begin_inset Formula $\{\underbrace{(0,1,2)}_\textrm{proc 0} \quad \underbrace{(3,\textcolor{red}{4},5)}_\textrm{proc 
+1}\quad \underbrace{(6,7,8)}_\textrm{proc 2}\quad \underbrace{(9,10,11)}_\textrm{proc 3}\}$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+This collective communication is performed by the following three steps:
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+1.
+\end_layout
+
+\end_inset
+
+EP process with rank 4 send the buffer to EP process rank 3 which is a master thread. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+2.
+\end_layout
+
+\end_inset
+
+We call 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Bcast(buffer, count, datatype, mpi_root = 1, mpi_comm) |
+\end_layout
+
+\end_inset
+
+. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+3.
+\end_layout
+
+\end_inset
+
+All master threads send the buffer to its slaves. 
+\end_layout
+
+\begin_layout Standard
+\align center
+
+\begin_inset Graphics 
+	filename bcast.png
+	scale 30
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Paragraph
+Example 2
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|EP_Allreduce(sendbuf, recvbuf, count, datatype, op, comm)|
+\end_layout
+
+\end_inset
+
+ with 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|comm|
+\end_layout
+
+\end_inset
+
+ the same as in example 1.
+\end_layout
+
+\begin_layout Standard
+This collective communication is performed by the following three steps:
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+1.
+\end_layout
+
+\end_inset
+
+We perform a intra-process 
+\begin_inset Quotes eld
+\end_inset
+
+allreduce
+\begin_inset Quotes erd
+\end_inset
+
+ operation: master threads collect data from its slaves and perform the reduce operation. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+2.
+\end_layout
+
+\end_inset
+
+Master threads call the classic 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Allreduce|
+\end_layout
+
+\end_inset
+
+ routine. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+3.
+\end_layout
+
+\end_inset
+
+All master threads send the updated reduced data to its slaves. 
+\end_layout
+
+\begin_layout Standard
+\align center
+
+\begin_inset Graphics 
+	filename allreduce.png
+	scale 30
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Standard
+Other collective communications have the similar execution pattern.
+\end_layout
+
+\begin_layout Section
+Inter-communicator
+\end_layout
+
+\begin_layout Standard
+In XIOS, inter-communicator is an very important component. Thus, our EP library must support inter-communications.
+\end_layout
+
+\begin_layout Subsection
+The splitting of intra-communicator
+\end_layout
+
+\begin_layout Standard
+Before talking about the inter-communicator, we will start by splitting intra-communicator. The C prototype of the splitting routine is 
+\end_layout
+
+\begin_layout Verbatim
+int  MPI_Comm_split(MPI_Comm comm, int color, int key, 
+\end_layout
+
+\begin_layout Verbatim
+                                    MPI_Comm *newcomm)
+\end_layout
+
+\begin_layout Verbatim
+ 
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset Quotes eld
+\end_inset
+
+This function partitions the group associated with 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|comm|
+\end_layout
+
+\end_inset
+
+ into disjoint subgroups, one for each value of 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|color|
+\end_layout
+
+\end_inset
+
+. Each subgroup contains all processes of the same color. Within each subgroup, the processes are ranked in the order defined by the value of the argument 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|key|
+\end_layout
+
+\end_inset
+
+, with ties broken according to their rank in the old group. A new communicator is created for each subgroup and returned in 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|newcomm|
+\end_layout
+
+\end_inset
+
+. A process may supply the color value 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_UNDEFINED|
+\end_layout
+
+\end_inset
+
+, in which case 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|newcomm|
+\end_layout
+
+\end_inset
+
+ returns 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_COMM_NULL|
+\end_layout
+
+\end_inset
+
+. This is a collective call, but each process is permitted to provide different values for color and key.
+\begin_inset Quotes erd
+\end_inset
+
+
+\begin_inset CommandInset citation
+LatexCommand cite
+after ""
+key "MPI"
+literal "true"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+By definition of the routine, in the case of EP, each thread participating the split operation will have only one color (
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_UNDEFINED|
+\end_layout
+
+\end_inset
+
+ is also considered to be one color). However, in the process's point of view, it can have multiple colors as shown in the following figure.
+\end_layout
+
+\begin_layout Standard
+\align center
+
+\begin_inset Graphics 
+	filename split.png
+	scale 40
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Standard
+This figure shows the result of the EP communicator splitting. Here we used the EP rank as key to assign the new rank of the thread in the resulting split intra-communicator. If the key is anything else than the EP rank, we follow the convention that the key takes effect only inside a process. This means that the threads are at first ordered by the MPI process rank and then by the value of key.
+\end_layout
+
+\begin_layout Standard
+Due to the fact that one process can have multiple colors for its threads, the splitting operation is executed by the following steps:
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+1.
+\end_layout
+
+\end_inset
+
+Master threads collect all colors from its slaves and communicate with each other to determine the total number of colors across the communicator. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+2.
+\end_layout
+
+\end_inset
+
+For each color, the master thread check all its slave threads to obtain the number of threads having the same color. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+3.
+\end_layout
+
+\end_inset
+
+If at least one of the slave threads holds the color, then the master thread takes this color. If not, the master thread takes color 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_UNDEFINED|
+\end_layout
+
+\end_inset
+
+. All master threads call classic communicator splitting routine with key 
+\begin_inset Formula $=$
+\end_inset
+
+ MPI rank. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+4.
+\end_layout
+
+\end_inset
+
+For master threads holding a defined color, we execute the endpoint creation routine according to the number of slave threads holding the same color. The resulting EP communicators are then assigned to these slave threads. 
+\end_layout
+
+\begin_layout Standard
+\align center
+
+\begin_inset Graphics 
+	filename split2.png
+	scale 40
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Subsection
+The creation of inter-communicator
+\end_layout
+
+\begin_layout Standard
+In XIOS, the inter-communicators are create by the routine 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Intercomm_create|
+\end_layout
+
+\end_inset
+
+ which is used to bind two intra-communicators into an inter-communicator. The C prototype is 
+\end_layout
+
+\begin_layout Verbatim
+int MPI_Intercomm_create(MPI_Comm local_comm, int local_leader, 
+\end_layout
+
+\begin_layout Verbatim
+                         MPI_Comm peer_comm, int remote_leader, 
+\end_layout
+
+\begin_layout Verbatim
+                               int tag, MPI_Comm *newintercomm)
+\end_layout
+
+\begin_layout Verbatim
+ 
+\end_layout
+
+\begin_layout Standard
+According to the MPI standard, 
+\begin_inset Quotes eld
+\end_inset
+
+an inter-communication is a point-to-point communication between processes in different groups
+\begin_inset Quotes erd
+\end_inset
+
+. 
+\begin_inset Quotes eld
+\end_inset
+
+All inter-communicator constructors are blocking except for 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_COMM_IDUP|
+\end_layout
+
+\end_inset
+
+ and require that the local and remote groups be disjoint.
+\begin_inset Quotes erd
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+As in EP the threads are considered as processes, the non-overlapping condition can be translated to 
+\begin_inset Quotes eld
+\end_inset
+
+non-overlapping
+\begin_inset Quotes erd
+\end_inset
+
+ at the thread level which means that one thread can not belong to the local group and the remote group. However, the parent process of the thread can be overlapped. As the EP library is built upon an existing MPI implementation which follows the non-overlapping condition at the process level, we can have an issue in the case.
+\end_layout
+
+\begin_layout Standard
+Before digging into this issue, we shall at first look at the case where the non-overlapping condition is perfectly respected. 
+\end_layout
+
+\begin_layout Standard
+\align center
+
+\begin_inset Graphics 
+	filename intercomm.png
+	scale 30
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Standard
+As shown in the figure, we have two intra-communicators A and B and they are totally disjoint both at the thread and process level. Each of the communicators has a local leader. We also assume that both leaders belong to a peer communicator and have rank 4 and 9 respectively.
+\end_layout
+
+\begin_layout Standard
+To create the inter-communicator, all threads from the left intra-comm call: 
+\end_layout
+
+\begin_layout Verbatim
+MPI_Intercomm_create(commA, local_leader = 2, peer_comm, 
+\end_layout
+
+\begin_layout Verbatim
+                     remote_leader = 9, tag, inter_comm)
+\end_layout
+
+\begin_layout Standard
+and for threads of the right intra-comm, they call: 
+\end_layout
+
+\begin_layout Verbatim
+MPI_Intercomm_create(commB, local_leader = 3, peer_comm, 
+\end_layout
+
+\begin_layout Verbatim
+                     remote_leader = 4, tag, inter_comm)
+\end_layout
+
+\begin_layout Standard
+To perform the inter-communicator creation, we follow the 3 steps: 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+1.
+\end_layout
+
+\end_inset
+
+Determine the leaders and ranks at the process level; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+2.
+\end_layout
+
+\end_inset
+
+Call classic 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Intercomm_create|
+\end_layout
+
+\end_inset
+
+; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+3.
+\end_layout
+
+\end_inset
+
+Create endpoints from process and assigned to threads. 
+\end_layout
+
+\begin_layout Standard
+\align center
+
+\begin_inset Graphics 
+	filename intercomm_step.png
+	scale 25
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Standard
+If we have overlapped process in the creation of inter-communicator, we should add an 
+\shape italic
+priority check
+\shape default
+ to assign the process to only one intra-communicator. Several possibilities: 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+1.
+\end_layout
+
+\end_inset
+
+Process is shared and contains no local leader 
+\begin_inset Formula $\implies$
+\end_inset
+
+ process belongs to group with higher rank in peer comm; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+2.
+\end_layout
+
+\end_inset
+
+Process is shared and contains one local leader 
+\begin_inset Formula $\implies$
+\end_inset
+
+ process belongs to group with the leader; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+3.
+\end_layout
+
+\end_inset
+
+Process is shared and contains both local leaders : leader change is performed and the peer communicator is 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_COMM_WORLD|
+\end_layout
+
+\end_inset
+
+ and we note 
+\begin_inset Quotes eld
+\end_inset
+
+group A
+\begin_inset Quotes erd
+\end_inset
+
+ the group with smaller peer rank and 
+\begin_inset Quotes eld
+\end_inset
+
+group B
+\begin_inset Quotes erd
+\end_inset
+
+ the group with higher peer rank. 
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+3a.
+\end_layout
+
+\end_inset
+
+If group A has at least two processes, the leader of group A is changed to the master thread of the process with smallest rank except the overlapped process. The overlapped process belongs to group B. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+3b.
+\end_layout
+
+\end_inset
+
+If group A has only one processes, and group B has at least two processes, then the leader of group B is changed to the master thread of the process with smallest rank except the overlapped process. The overlapped process belongs to group A. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+3c.
+\end_layout
+
+\end_inset
+
+If both group A and group B have only one process, then an one-process intra-communicator is created though it will be considered (labeled) as an inter-communicator. 
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+\align center
+
+\begin_inset Graphics 
+	filename intercomm2.png
+	scale 25
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Subsection
+The merge of inter-communicators
+\end_layout
+
+\begin_layout Standard
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Intercomm_Merge(MPI_Comm intercomm, int high, MPI_Comm *newintracomm)|
+\end_layout
+
+\end_inset
+
+ creates an intra-communicator by merging the local and remote groups of an inter-communicator. All processes should provide the same 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|high|
+\end_layout
+
+\end_inset
+
+ value within each of the two groups. If processes in one group provided the value 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|high=false|
+\end_layout
+
+\end_inset
+
+ and processes in the other group provided the value 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|high=true|
+\end_layout
+
+\end_inset
+
+ then the union orders the âlowâ group before the âhighâ group. If all processes provided the same high argument then the order of the union is arbitrary. This call is blocking and collective within the union of the two groups. 
+\begin_inset CommandInset citation
+LatexCommand cite
+after ""
+key "MPI"
+literal "true"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+This routine can be considered as the inverse of 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Intercomm_create|
+\end_layout
+
+\end_inset
+
+. In the intercommunicator create function, all 5 cases are eventually transformed into the case where no MPI process is shared by two groups. It is from this case that the merge funtion takes place.
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+1.
+\end_layout
+
+\end_inset
+
+The classic 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Intercomm_merge|
+\end_layout
+
+\end_inset
+
+ is called and an MPI intracommunicator is created from the two disjoint groups and MPI processes are ordered by the high value of the local leader. 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+2.
+\end_layout
+
+\end_inset
+
+Endpoints are created based on the MPI intracommunicator and the new EP ranks are orderd firstly according to the high value of each thread and then to the origianl EP ranks in the intercommunicators. 
+\end_layout
+
+\begin_layout Standard
+\align center
+
+\begin_inset Graphics 
+	filename merge.png
+	scale 25
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Section
+P2P communication on inter-communicators
+\end_layout
+
+\begin_layout Standard
+In case of the intercommunicators, the 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Comm|
+\end_layout
+
+\end_inset
+
+ class has 3 members to determine the topology along with the original 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|rank_map|
+\end_layout
+
+\end_inset
+
+: 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|RANK_MAP local_rank_map[size of commA]|
+\end_layout
+
+\end_inset
+
+: composed of the EP rank in commA' or commB'; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|RANK_MAP remote_rank_map[size of commB]|
+\end_layout
+
+\end_inset
+
+: = 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|local_rank_map|
+\end_layout
+
+\end_inset
+
+ of remote group; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|RANK_MAP intercomm_rank_map[size of commB']|
+\end_layout
+
+\end_inset
+
+: = 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|rank_map|
+\end_layout
+
+\end_inset
+
+ of remote group'; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|RANK_MAP rank_map|
+\end_layout
+
+\end_inset
+
+: rank map of commA' or commB'. 
+\end_layout
+
+\begin_layout Standard
+For example, in the following configuration: 
+\end_layout
+
+\begin_layout Standard
+\align center
+
+\begin_inset Graphics 
+	filename ranks.png
+	scale 30
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Standard
+For all endpoints in commA, 
+\end_layout
+
+\begin_layout Verbatim
+ local_rank_map={(rank in commA' or commB', 
+\end_layout
+
+\begin_layout Verbatim
+                  rank of leader in MPI_Comm_world)}
+\end_layout
+
+\begin_layout Verbatim
+               ={(1,0), (0,1), (2,1), (4,1)}
+\end_layout
+
+\begin_layout Verbatim
+                
+\end_layout
+
+\begin_layout Verbatim
+ remote_rank_map={(remote endpoints' rank in commA' or commB', 
+\end_layout
+
+\begin_layout Verbatim
+                   rank of remote leader in MPI_Comm_world)}
+\end_layout
+
+\begin_layout Verbatim
+                ={(0,0), (1,1), (3,1), (5,1)}
+\end_layout
+
+\begin_layout Standard
+For all endpoints in commA' 
+\end_layout
+
+\begin_layout Verbatim
+ intercomm_rank_map={(remote endpoints local rank in commA' or commB', 
+\end_layout
+
+\begin_layout Verbatim
+                      remote endpoints MPI rank in commA' or commB')}
+\end_layout
+
+\begin_layout Verbatim
+                   ={(0,0), (1,0)}
+\end_layout
+
+\begin_layout Verbatim
+ rank_map={(local rank in commA', mpi rank in commA')}
+\end_layout
+
+\begin_layout Verbatim
+         ={(0,0), (1,0), (0,1), (1,1), (0,2), (1,2)}
+\end_layout
+
+\begin_layout Standard
+For all endpoints in comm B, 
+\end_layout
+
+\begin_layout Verbatim
+ local_rank_map={(rank in commA' or commB', 
+\end_layout
+
+\begin_layout Verbatim
+                  rank of leader in MPI_Comm_world)}
+\end_layout
+
+\begin_layout Verbatim
+               ={(0,0), (1,1), (3,1), (5,1)}
+\end_layout
+
+\begin_layout Verbatim
+                
+\end_layout
+
+\begin_layout Verbatim
+ remote_rank_map={(remote endpoints' rank in commA' or commB', 
+\end_layout
+
+\begin_layout Verbatim
+                   rank of remote leader in MPI_Comm_world)}
+\end_layout
+
+\begin_layout Verbatim
+                ={(1,0), (0,1), (2,1), (4,1)}
+\end_layout
+
+\begin_layout Standard
+For all endpoints in commB' 
+\end_layout
+
+\begin_layout Verbatim
+ intercomm_rank_map={(remote endpoints local rank in commA' or commB', 
+\end_layout
+
+\begin_layout Verbatim
+                      remote endpoints MPI rank in commA' or commB')}
+\end_layout
+
+\begin_layout Verbatim
+                   ={(0,0), (1,0), (0,1), (1,1), (0,2), (1,2)}
+\end_layout
+
+\begin_layout Verbatim
+ rank_map={(local rank in commB', mpi rank in commB')}
+\end_layout
+
+\begin_layout Verbatim
+         ={(0,0), (1,0)}
+\end_layout
+
+\begin_layout Standard
+When calling a p2p communication on an inter-communicator, we should: 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+1.
+\end_layout
+
+\end_inset
+
+Determine if the source and the destination endpoints are in a same group by checking the 
+\begin_inset Quotes eld
+\end_inset
+
+labels
+\begin_inset Quotes erd
+\end_inset
+
+. 
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|src_label = local_rank_map->at(src).second|
+\end_layout
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|dest_label = remote_rank_map->at(dest).second|
+\end_layout
+
+\end_inset
+
+ 
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+2.
+\end_layout
+
+\end_inset
+
+If 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|src_label == dest_label|
+\end_layout
+
+\end_inset
+
+, then the communication is in fact a intra-communication. The new source rank and destination rank, as well as the local ranks, are deduced by: 
+\end_layout
+
+\begin_layout Verbatim
+      src_rank = local_rank_map->at(src).first
+\end_layout
+
+\begin_layout Verbatim
+      dest_rank = remote_rank_map->at(dest).first
+\end_layout
+
+\begin_layout Verbatim
+      src_rank_local = rank_map->at(src_rank).first
+\end_layout
+
+\begin_layout Verbatim
+      dest_rank_local = rank_map->at(dest_rank).first
+\end_layout
+
+\begin_layout Verbatim
+     
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+3.
+\end_layout
+
+\end_inset
+
+If 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|src_label != dest_label|
+\end_layout
+
+\end_inset
+
+, then the inter-communication is required. The new ranks are obtained by: 
+\end_layout
+
+\begin_layout Verbatim
+      src_rank = local_rank_map->at(src).first
+\end_layout
+
+\begin_layout Verbatim
+      dest_rank = remote_rank_map->at(dest).first
+\end_layout
+
+\begin_layout Verbatim
+      src_rank_local = intercomm_rank_map->at(src_rank).first
+\end_layout
+
+\begin_layout Verbatim
+      dest_rank_local = rank_map->at(dest_rank).first
+\end_layout
+
+\begin_layout Verbatim
+     
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+4.
+\end_layout
+
+\end_inset
+
+Call MPI P2P function to start the communication. 
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+If intra-communication, 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|mpi_comm = commA'_mpi or commB'_mpi|
+\end_layout
+
+\end_inset
+
+; 
+\end_layout
+
+\begin_layout Itemize
+
+\begin_inset Argument item:1
+status open
+
+\begin_layout Plain Layout
+
+\begin_inset Formula $\bullet$
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+If inter-communication, 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|mpi_comm = inter_comm_mpi|
+\end_layout
+
+\end_inset
+
+. 
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+\align center
+
+\begin_inset Graphics 
+	filename sendrecv2.png
+	scale 30
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Section
+One-sided communications
+\end_layout
+
+\begin_layout Standard
+The one-sided communication is a type of communcation which involves only one process to specify all communication parameters, both for the sending side and the receiving side 
+\begin_inset CommandInset citation
+LatexCommand cite
+after "Chapter~11"
+key "MPI"
+literal "true"
+
+\end_inset
+
+. To extend this type of communication in the context of endpoints, we encounter some limitations. In the current work, the one-sided communication can only be used in the client-server mode which means that RMA(remote memory access) can occur only between a server and a client.
+\end_layout
+
+\begin_layout Standard
+The construction of RMA windows is illustrated by the following figure: 
+\end_layout
+
+\begin_layout Standard
+\align center
+
+\begin_inset Graphics 
+	filename RMA_schema.pdf
+	scale 50
+
+\end_inset
+
+ 
+\end_layout
+
+\begin_layout Itemize
+we determin the max number of threads N in the endpoint environment (N=3 in the example); 
+\end_layout
+
+\begin_layout Itemize
+on the server side, N windows are declared and asociated with the same memory adress; 
+\end_layout
+
+\begin_layout Itemize
+we start a loop : i = 0, ..., N-1 
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+each endpoint with thread number i declares an RMA window; 
+\end_layout
+
+\begin_layout Itemize
+the link between windows on the client side and the i-th window on the server side are created via 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Win_created|
+\end_layout
+
+\end_inset
+
+; 
+\end_layout
+
+\begin_layout Itemize
+if the number of threads on a certain process is less than N, then a 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|NULL|
+\end_layout
+
+\end_inset
+
+ pointer is used as memory adress. 
+\end_layout
+
+\end_deeper
+\begin_layout Standard
+With the RMA windows created, we can then perform some communications: 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Put|
+\end_layout
+
+\end_inset
+
+, 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Get|
+\end_layout
+
+\end_inset
+
+, 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Accumulate|
+\end_layout
+
+\end_inset
+
+, 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Get_accumulate|
+\end_layout
+
+\end_inset
+
+, 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Fetch_and_op|
+\end_layout
+
+\end_inset
+
+, 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Compare_and_swap|
+\end_layout
+
+\end_inset
+
+, 
+\shape italic
+etc
+\shape default
+.
+\end_layout
+
+\begin_layout Standard
+The main idea of any of the mentioned communications is to identify the threads which are involved in the connection. For example, we want to perform a put operation from EP 2 to the server. We know that EP 2 is the thread 0 of process 1. Thus the 0-th window (win A) of the server side should be used. Once the sender and the receiver are identified, the 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Put|
+\end_layout
+
+\end_inset
+
+ communication can be established.
+\end_layout
+
+\begin_layout Standard
+Other RMA functions, such as 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Win_allocate|
+\end_layout
+
+\end_inset
+
+, 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_win_Fence|
+\end_layout
+
+\end_inset
+
+, and 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+\backslash
+verb|MPI_Win_free|
+\end_layout
+
+\end_inset
+
+, remain nearly the same and we will skip the detail in this document.
+\end_layout
+
+\begin_layout Standard
+ 
+\begin_inset CommandInset bibtex
+LatexCommand bibtex
+bibfiles "reference"
+options "plain"
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
Index: /XIOS/dev/branch_openmp/Note/EP note.tex
===================================================================
--- /XIOS/dev/branch_openmp/Note/EP note.tex	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/EP note.tex	(revision 1548)
@@ -0,0 +1,545 @@
+\documentclass[a4paper,10pt]{article}
+\usepackage[utf8]{inputenc}
+\usepackage{graphicx}
+\usepackage{listings}
+\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
+\usepackage{amsmath}
+
+% Title Page
+\title{Note for MPI Endpoints}
+\author{}
+
+
+\begin{document}
+\maketitle
+
+%\begin{abstract}
+%\end{abstract}
+
+\section{Purpose}
+
+Use threads as if they are MPI processes. Each thread will be assigned a rank and be associated with a endpoints communicator 
+(EP\_Comm). Convention: one OpenMP thread corresponds to one endpoint.
+
+\section{MPI Endpoints Semantics}
+
+\begin{center}
+\includegraphics[scale=0.4]{scheme.png} 
+\end{center}
+
+Endpoints are created from one MPI communicator and the number of available threads:
+\begin{center}
+ \begin{verbatim}
+int MPI_Comm_create_endpoints(MPI_Comm parent_comm, int num_ep, 
+                              MPI_Info info, MPI_Comm out_comm_hdls[])
+ \end{verbatim}
+\end{center}
+
+``In this collective call, a single output communicator is created, and an array of \verb|num_ep| handles to this new communicator 
+are returned, where the $i^{th}$ handle corresponds to the $i^{th}$ rank requested by the caller of \verb|MPI_Comm_create_endpoints|. Ranks 
+in the output communicator are ordered sequentially and in the same order as the parent communicator. After it has been created, the 
+output communicator behaves as a normal communicator, and MPI calls on each endpoint (i.e., communicator handle) behave as though 
+they originated from a separate MPI process. In particular, collective calls must be made once per endpoint.''\cite{Dinan:2013}
+
+``Once created, endpoints behave as MPI processes. For example, all ranks in an endpoints communicator must participate in 
+collective operations. A consequence of this semantic is that endpoints also have MPI process progress requirements; that operations on 
+that endpoint are required to make progress only when an MPI operation (e.g. \verb|MPI_Test|) is performed on that endpoint. This semantic 
+enables an MPI implementation to logically separate endpoints, treat them independently within the progress engine, and eliminate 
+synchronization in updating their state.''\cite{Sridharan:2014}
+
+\section{EP types}
+\subsection*{MPI\_Comm}
+\verb|MPI_Comm| is composed by:
+\begin{itemize}
+ \item[$\bullet$] \verb|bool is_ep|: true $\implies$ EP, false $\implies$ MPI classic;
+ \item[$\bullet$] \verb|int mpi_comm|: handle to the parent MPI communicator;
+ \item[$\bullet$] \verb|OMPbarrier *ep_barrier|: openMP barrier, used for in-process synchronization and is different from 
+ \verb|omp barrier|;
+ \item[$\bullet$] \verb|int[2] size_rank_info[3]|: topology information of the current endpoint:
+ \begin{itemize}
+  \item rank of parent MPI process;
+  \item size of parent MPI communicator;
+  \item rank of endpoint, returned by \verb|MPI_Comm_rank|;
+  \item size of EP communicator, returned by \verb|MPI_Comm_size|;
+  \item in-process rank of endpoint;
+  \item in-process size of EP communicator, also noted as the number of endpoints in one MPI process.
+ \end{itemize}
+ \item[$\bullet$] \verb|MPI_Comm *comm_list|: pointer of the first endpoint communicator of one process;
+ \item[$\bullet$] \verb|Message_list *message_queue|: location of in-coming messages for each endpoint;
+ \item[$\bullet$] \verb|RANK_MAP *rank_map|: a map composed by an integer and a pair of integers. The integer key represents the rank of an 
+endpoint. The mapped type (pair of integers) gives the in-process rank of the endpoint and the rank of its parent MPI process: 
+ \begin{center}
+ \begin{verbatim}
+rank_map->at(ep_rank)=(ep_rank_local, mpi_rank)
+ \end{verbatim}
+\end{center}
+ \item[$\bullet$] \verb|BUFFER *ep_buffer|: buffer (of type \verb|int|, \verb|float|, \verb|double|, \verb|char|, \verb|long|, 
+and \verb|unsigned long|) used for in-process communication.
+\end{itemize}
+
+\subsection{MPI\_Request}
+\verb|MPI_Request| is composed by:
+\begin{itemize}
+ \item[$\bullet$] \verb|int mpi_request|: handle to the MPI request;
+ \item[$\bullet$] \verb|int ep_datatype|: data type of the communication;
+ \item[$\bullet$] \verb|MPI_Comm comm|: handle to the EP communicator;
+ \item[$\bullet$] \verb|int ep_src|: rank of the source endpoint;
+ \item[$\bullet$] \verb|int ep_tag|: tag of the communication.
+ \item[$\bullet$] \verb|int type|: type of the communication:
+ \begin{itemize}
+  \item 1 $\implies$ non-blocking send;
+  \item 2 $\implies$ pending non-blocking receive;
+  \item 3 $\implies$ non-blocking matching receive.
+ \end{itemize}
+
+\end{itemize}
+
+\subsection{MPI\_Status}
+\verb|MPI_Status| consists of:
+\begin{itemize}
+ \item[$\bullet$] \verb|int mpi_status|: handle to the MPI status;
+ \item[$\bullet$] \verb|int ep_datatype|: data type of the communication;
+ \item[$\bullet$] \verb|int ep_src|: rank of the source endpoint;
+ \item[$\bullet$] \verb|int ep_tag|: tag of the communication.
+\end{itemize}
+
+\subsection{MPI\_Message}
+\verb|MPI_Message| includes:
+\begin{itemize}
+ \item[$\bullet$] \verb|int mpi_message|: handle to the MPI message;
+ \item[$\bullet$] \verb|int ep_src|: rank of the source endpoint;
+ \item[$\bullet$] \verb|int ep_tag|: tag of the communication.
+\end{itemize}
+
+Other types, such as \verb|MPI_Info|, \verb|MPI_Aint|, and \verb|MPI_Fint| are defined in the same way.  
+
+\section{P2P communication}
+
+All EP point-to-point communication use tag to distinguish the source and destination endpoint. To be able to add these extra 
+information to tag, we require that the tag value is represented using 31 bits in the underlying MPI inmplemention.
+
+\includegraphics[scale=0.4]{tag.png}
+
+EP\_tag is user defined. MPI\_tag is internally computed and used inside MPI calls. Because of the extension of tag, wild-cards as 
+\verb|MPI_ANY_SOURCE| and \verb|MPI_ANY_TAG| will not be usable directly. An extra step of tag analysis is needed which leads to the 
+message dequeuing mechanism.
+
+\begin{center}
+ \includegraphics[scale = 0.5]{sendrecv.png}
+\end{center}
+
+
+In MPI environment, each MPI process has an incoming message queue. In EP case, messages for all threads inside one MPI process are stored 
+in this MPI queue. With the MPI 3 standard, we use the \verb|MPI_Improbe| routine to inquire the message queue and relocate the incoming 
+message in the local message queue for the corresponding thread/endpoint.
+
+
+\includegraphics[scale=0.3]{dequeue.png}
+
+% Any EP calls will trigger the message dequeuing and the probing, (matched-)receiving operations are performed upon the local message queue. 
+% 
+% Example: \verb|EP_Recv(src=2, tag=10, comm1)|:
+% \begin{itemize}
+%  \item[1.] Dequeue MPI message queue;
+%  \item[2.] call \verb|EP_Improb(src=2, tag=10, comm1, message)|;
+%  \item[3.] if find corresponding triple (src, tag, comm1), call \verb|EP_Mrecv(src=2, tag=10, comm1, message)|;
+%  \item[4.] else, repeat from step 2.
+% \end{itemize}
+
+
+\paragraph{Messages are \textit{non-overtaking}} Incoming messages' order is important! If one thread is receiving multiple messages from 
+the same source with the same tag. The receive order should be the same order in which the messages are sent. That is to say, the n-th sent 
+message should be the n-th received message.
+
+
+
+\paragraph{Progress} ``If a pair of matching send and receives have been initiated on two processes, then at least one of these 
+two operations will complete, independently of other actions in the system: the send operation will complete, unless the receive is 
+satisfied by another message, and completes; the receive operation will complete, unless the message sent is consumed by another matching 
+receive that was posted at the same destination process.'' \cite{MPI}
+
+
+When one \verb|EP_Irecv| is issued, we first dequeue the MPI incoming message queue and distribute all incoming messages to the local 
+queues according to the destination identifier. Next, the nonblocking receive request is added at the end of the request pending list.
+Third, the pending list is checked and requests with matching source, tag, and communicator will be accomplished.
+
+
+Because of the importance of message order, some communication completion functions must be discussed here such as \verb|MPI_Test| and 
+\verb|MPI_Wait|. ``The functions \verb|MPI_Wait| and \verb|MPI_Test| are used to complete a nonblocking communication. The completion of a 
+send operation indicates that the sender is now free to update the locations in the send buffer (the send operation itself leaves the 
+content of the send buffer unchanged). It does not indicate that the message has been received, rather, it may have been buffered by 
+the communication subsystem. However, if a synchronous mode send was used, the completion of the send operation indicates that a 
+matching receive was initiated, and that the message will eventually be received by this matching receive. The completion of a 
+receive operation indicates that the receive buffer contains the received message, the receiver is now free to access it, and that the 
+status object is set. It does not indicate that the matching send operation has completed (but indicates, of course, that the send 
+was initiated).'' \cite{MPI}
+
+\paragraph{Example 1}
+\verb|MPI_Test(MPI_Request *request, int *flag, MPI_Status *status)|
+\begin{itemize}
+ \item[1.] If \verb|request->type == 1|, communication to be tested is indeed issued from a non-blocking send. The completion status is 
+returned by:
+ \begin{center}
+  \begin{verbatim}
+   MPI_Test(& request->mpi_request, flag, & status->mpi_status)
+  \end{verbatim}
+ \end{center}
+ \item[2.] If \verb|request->type == 2|, it means that a non-blocking receive is called but the corresponding message is not yet probed. 
+The request is in the pending list thus not yet completed. All incoming message is once again probed and all pending requests are 
+checked. If after the second check, the matching message is found, thus a \verb|MPI_Imrecv| is called and the type is set to 3. 
+Otherwise, the type is still 2, then \verb|flag = false| is returned.
+ \item[3.] If \verb|request->type == 3|, this indcates that the request is issued from a non-blocking receive call and the 
+matching message is probed thus the status of the communication lies in the status of the \verb|MPI_Imrecv| function. The 
+completion result is returned by:
+ \begin{center}
+  \begin{verbatim}
+   MPI_Test(& request->mpi_request, flag, & status->mpi_status)
+  \end{verbatim}
+ \end{center}
+\end{itemize}
+
+\paragraph{Example 2}
+\verb|MPI_Wait(MPI_Request *request, MPI_Status *status)|
+\begin{itemize}
+ \item[1.] If \verb|request->type == 1|, communication to be tested is indeed issued from a non-blocking send. Jump to step 4.
+ \item[2.] If \verb|request->type == 2|,  it means that a non-blocking receive is called but the corresponding message is not yet probed. 
+The request is in the pending list thus not yet completed. We repeat the incoming message probing and the pending request checking until the 
+matching message is found, thus a \verb|MPI_Imrecv| is called and the type is set to 3. Jump to step 4.
+ \item[3.] If \verb|request->type == 3|, this indcates that the request is issued from a non-blocking receive call and the 
+matching message is probed thus the status of the communication lies in the status of the \verb|MPI_Imrecv| function. Jump to step 4.
+ \item[4.] We force the completion by calling:
+ \begin{center}
+  \begin{verbatim}
+   MPI_Wat(& request->mpi_request, & status->mpi_status)
+  \end{verbatim}
+ \end{center}
+\end{itemize}
+
+\section{Collective communication}
+
+All MPI classic collective communications are performed as the following pattern: 
+
+\begin{itemize}
+ \item[1.] Intra-process communication using OpenMP. \textit{e.g.} Collect data from slave threads to master thread.
+ \item[2.] Inter-process communication using MPI collective calls on master threads.
+ \item[3.] Intra-process communication using OpenMP. \textit{e.g.} Distribute data from master thread to slave threads.
+\end{itemize}
+
+\paragraph{Example 1}
+\verb|EP_Bcast(buffer, count, datatype, root = 4, comm)| with \verb|comm| composed by 4 MPI 
+processes and 3 threads per process:
+
+We can consider the communicator as $\{\underbrace{(0,1,2)}_\textrm{proc 0} \quad \underbrace{(3,\textcolor{red}{4},5)}_\textrm{proc 
+1}\quad \underbrace{(6,7,8)}_\textrm{proc 2}\quad \underbrace{(9,10,11)}_\textrm{proc 3}\}$.
+
+This collective communication is performed by the following three steps:
+
+\begin{itemize}
+ \item[1.] EP process with rank 4 send the buffer to EP process rank 3 which is a master thread. 
+ \item[2.] We call \verb|MPI_Bcast(buffer, count, datatype, mpi_root = 1, mpi_comm) |.
+ \item[3.] All master threads send the buffer to its slaves. 
+\end{itemize}
+
+\begin{center}
+\includegraphics[scale=0.3]{bcast.png} 
+\end{center}
+
+
+\paragraph{Example 2} 
+\verb|EP_Allreduce(sendbuf, recvbuf, count, datatype, op, comm)| with \verb|comm| the same 
+as in example 1.
+
+This collective communication is performed by the following three steps:
+
+\begin{itemize}
+ \item[1.] We perform a intra-process ``allreduce'' operation: master threads collect data from its slaves and perform the reduce 
+operation.
+ \item[2.] Master threads call the classic \verb|MPI_Allreduce| routine.
+ \item[3.] All master threads send the updated reduced data to its slaves. 
+\end{itemize}
+
+\begin{center}
+\includegraphics[scale=0.3]{allreduce.png} 
+\end{center}
+
+
+
+Other collective communications have the similar execution pattern.
+
+\section{Inter-communicator}
+
+In XIOS, inter-communicator is an very important component. Thus, our EP library must support inter-communications.
+
+\subsection{The splitting of intra-communicator}
+
+Before talking about the inter-communicator, we will start by splitting intra-communicator.
+The C prototype of the splitting routine is 
+\begin{center}
+ \begin{verbatim}
+int  MPI_Comm_split(MPI_Comm comm, int color, int key, 
+                                    MPI_Comm *newcomm)
+ \end{verbatim}
+\end{center}
+
+``This function partitions the group associated with \verb|comm| into disjoint subgroups, one for
+each value of \verb|color|. Each subgroup contains all processes of the same color. Within each
+subgroup, the processes are ranked in the order defined by the value of the argument
+\verb|key|, with ties broken according to their rank in the old group. A new communicator is
+created for each subgroup and returned in \verb|newcomm|. A process may supply the color value
+\verb|MPI_UNDEFINED|, in which case \verb|newcomm| returns \verb|MPI_COMM_NULL|. This is a collective
+call, but each process is permitted to provide different values for color and key.''\cite{MPI}
+
+By definition of the routine, in the case of EP, each thread participating the split operation will have only one color 
+(\verb|MPI_UNDEFINED| is also considered to be one color). However, in the process's point of view, it can have multiple colors as shown 
+in the following figure. 
+
+\begin{center}
+\includegraphics[scale=0.4]{split.png} 
+\end{center}
+
+This figure shows the result of the EP communicator splitting. Here we used the EP rank as key to assign the new rank of the thread in the 
+resulting split intra-communicator. If the key is anything else than the EP rank, we follow the convention that the key takes effect only 
+inside a process. This means that the threads are at first ordered by the MPI process rank and then by the value of key.
+
+Due to the fact that one process can have multiple colors for its threads, the splitting operation is executed by the following steps:
+
+\begin{itemize}
+ \item[1.] Master threads collect all colors from its slaves and communicate with each other to determine the total number of colors across 
+the communicator. 
+ \item[2.] For each color, the master thread check all its slave threads to obtain the number of threads having the same color. 
+ \item[3.] If at least one of the slave threads holds the color, then the master thread takes this color. If not, the master thread takes 
+color \verb|MPI_UNDEFINED|. All master threads call classic communicator splitting routine with key $=$ MPI rank.
+ \item[4.] For master threads holding a defined color, we execute the endpoint creation routine according to the number of slave 
+threads holding the same color. The resulting EP communicators are then assigned to these slave threads.
+\end{itemize}
+
+\begin{center}
+\includegraphics[scale=0.4]{split2.png} 
+\end{center}
+
+\subsection{The creation of inter-communicator}
+
+In XIOS, the inter-communicators are create by the routine \verb|MPI_Intercomm_create| which is used to bind two intra-communicators into 
+an inter-communicator. The C prototype is
+\begin{center}
+ \begin{verbatim}
+int MPI_Intercomm_create(MPI_Comm local_comm, int local_leader, 
+                         MPI_Comm peer_comm, int remote_leader, 
+                               int tag, MPI_Comm *newintercomm)
+ \end{verbatim}
+\end{center}
+
+
+According to the MPI standard, ``an inter-communication is a point-to-point communication between processes in
+different groups''. ``All inter-communicator constructors are blocking except for \verb|MPI_COMM_IDUP| and
+require that the local and remote groups be disjoint.''
+
+As in EP the threads are considered as processes, the non-overlapping condition can be translated to ``non-overlapping'' at the thread 
+level which means that one thread can not belong to the local group and the remote group. However, the parent process of the thread can 
+be overlapped. As the EP library is built upon an existing MPI implementation which follows the non-overlapping condition at the process 
+level, we can have an issue in the case. 
+
+Before digging into this issue, we shall at first look at the case where the non-overlapping condition is perfectly respected.
+\begin{center}
+ \includegraphics[scale=0.3]{intercomm.png}
+\end{center}
+
+As shown in the figure, we have two intra-communicators A and B and they are totally disjoint both at the thread and process level. Each of 
+the communicators has a local leader. We also assume that both leaders belong to a peer communicator and have rank 4 and 9 respectively.
+
+To create the inter-communicator, all threads from the left intra-comm call:
+\begin{verbatim}
+MPI_Intercomm_create(commA, local_leader = 2, peer_comm, 
+                     remote_leader = 9, tag, inter_comm)
+\end{verbatim}
+and for threads of the right intra-comm, they call:
+\begin{verbatim}
+MPI_Intercomm_create(commB, local_leader = 3, peer_comm, 
+                     remote_leader = 4, tag, inter_comm)
+\end{verbatim}
+
+To perform the inter-communicator creation, we follow the 3 steps:
+\begin{itemize}
+ \item[1.] Determine the leaders and ranks at the process level;
+ \item[2.] Call classic \verb|MPI_Intercomm_create|;
+ \item[3.] Create endpoints from process and assigned to threads.
+\end{itemize}
+
+\begin{center}
+ \includegraphics[scale=0.25]{intercomm_step.png}
+\end{center}
+
+If we have overlapped process in the creation of inter-communicator, we should add an \textit{priority check} to assign the process to only 
+one intra-communicator.
+Several possibilities:
+\begin{itemize}
+ \item[1.] Process is shared and contains no local leader $\implies$ process belongs to group with higher rank in peer comm;
+ \item[2.] Process is shared and contains one local leader $\implies$ process belongs to group with the leader;
+ \item[3.] Process is shared and contains both local leaders : leader change is performed and the peer communicator is 
+\verb|MPI_COMM_WORLD| and we note ``group A'' the group with smaller peer rank and ``group B'' the group with higher peer rank.
+   \begin{itemize}
+    \item[3a.] If group A has at least two processes, the leader of group A is changed to the master thread of the process with smallest 
+rank except the overlapped process. The overlapped process belongs to group B.
+    \item[3b.] If group A has only one processes, and group B has at least two processes, then the leader of group B is changed to the 
+master thread of the process with smallest rank except the overlapped process. The overlapped process belongs to group A.
+    \item[3c.] If both group A and group B have only one process, then an one-process intra-communicator is created though it will be 
+considered (labeled) as an inter-communicator. 
+   \end{itemize}
+\end{itemize}
+
+\begin{center}
+ \includegraphics[scale=0.25]{intercomm2.png}
+\end{center}
+
+\subsection{The merge of inter-communicators}
+\verb|MPI_Intercomm_Merge(MPI_Comm intercomm, int high, MPI_Comm *newintracomm)| creates an intra-communicator by merging the 
+local and remote groups of an inter-communicator. All processes should provide the same \verb|high| value within each of the two groups. If 
+processes in one group provided the value \verb|high=false| and processes in the other group provided the value \verb|high=true| then the 
+union orders the âlowâ group before the âhighâ group. If all processes provided the same high argument then the order of the union 
+is arbitrary. This call is blocking and collective within the union of the two groups. \cite{MPI}
+
+This routine can be considered as the inverse of \verb|MPI_Intercomm_create|. In the intercommunicator create function, all 5 cases are 
+eventually transformed into the case where no MPI process is shared by two groups. It is from this case that the merge funtion takes place.
+
+\begin{itemize}
+ \item[1.] The classic \verb|MPI_Intercomm_merge| is called and an MPI intracommunicator is created from the two disjoint groups and MPI 
+processes are ordered by the high value of the local leader. 
+ \item[2.] Endpoints are created based on the MPI intracommunicator and the new EP ranks are orderd firstly according to the high value of 
+each thread and then to the origianl EP ranks in the intercommunicators.
+\end{itemize}
+
+\begin{center}
+ \includegraphics[scale=0.25]{merge.png}
+\end{center}
+
+\section{P2P communication on inter-communicators}
+
+In case of the intercommunicators, the \verb|MPI_Comm| class has 3 members to determine the topology along with the original 
+\verb|rank_map|:
+\begin{itemize}
+ \item \verb|RANK_MAP local_rank_map[size of commA]|: composed of the EP rank in commA' or commB';
+ \item \verb|RANK_MAP remote_rank_map[size of commB]|: = \verb|local_rank_map| of remote group;
+ \item \verb|RANK_MAP intercomm_rank_map[size of commB']|: = \verb|rank_map| of remote group';
+ \item \verb|RANK_MAP rank_map|: rank map of commA' or commB'.
+\end{itemize}
+
+For example, in the following configuration:
+\begin{center}
+ \includegraphics[scale = 0.3]{ranks.png}
+\end{center}
+
+For all endpoints in commA, 
+\begin{verbatim}
+ local_rank_map={(rank in commA' or commB', 
+                  rank of leader in MPI_Comm_world)}
+               ={(1,0), (0,1), (2,1), (4,1)}
+                
+ remote_rank_map={(remote endpoints' rank in commA' or commB', 
+                   rank of remote leader in MPI_Comm_world)}
+                ={(0,0), (1,1), (3,1), (5,1)}
+\end{verbatim}
+
+For all endpoints in commA'
+\begin{verbatim}
+ intercomm_rank_map={(remote endpoints local rank in commA' or commB', 
+                      remote endpoints MPI rank in commA' or commB')}
+                   ={(0,0), (1,0)}
+ rank_map={(local rank in commA', mpi rank in commA')}
+         ={(0,0), (1,0), (0,1), (1,1), (0,2), (1,2)}
+\end{verbatim}
+
+
+For all endpoints in comm B,
+\begin{verbatim}
+ local_rank_map={(rank in commA' or commB', 
+                  rank of leader in MPI_Comm_world)}
+               ={(0,0), (1,1), (3,1), (5,1)}
+                
+ remote_rank_map={(remote endpoints' rank in commA' or commB', 
+                   rank of remote leader in MPI_Comm_world)}
+                ={(1,0), (0,1), (2,1), (4,1)}
+\end{verbatim}
+
+For all endpoints in commB'
+\begin{verbatim}
+ intercomm_rank_map={(remote endpoints local rank in commA' or commB', 
+                      remote endpoints MPI rank in commA' or commB')}
+                   ={(0,0), (1,0), (0,1), (1,1), (0,2), (1,2)}
+ rank_map={(local rank in commB', mpi rank in commB')}
+         ={(0,0), (1,0)}
+\end{verbatim}
+
+When calling a p2p communication on an inter-communicator, we should:
+\begin{itemize}
+ \item[1.] Determine if the source and the destination endpoints are in a same group by checking the ``labels''.
+   \begin{itemize}
+    \item[$\bullet$] \verb|src_label = local_rank_map->at(src).second|
+    \item[$\bullet$] \verb|dest_label = remote_rank_map->at(dest).second|
+   \end{itemize}
+   
+   
+ \item[2.] If \verb|src_label == dest_label|, then the communication is in fact a intra-communication. The new source rank and 
+destination rank, as well as the local ranks, are deduced by: 
+     \begin{verbatim}
+      src_rank = local_rank_map->at(src).first
+      dest_rank = remote_rank_map->at(dest).first
+      src_rank_local = rank_map->at(src_rank).first
+      dest_rank_local = rank_map->at(dest_rank).first
+     \end{verbatim}
+ \item[3.] If \verb|src_label != dest_label|, then the inter-communication is required. The new ranks are obtained by:
+    \begin{verbatim}
+      src_rank = local_rank_map->at(src).first
+      dest_rank = remote_rank_map->at(dest).first
+      src_rank_local = intercomm_rank_map->at(src_rank).first
+      dest_rank_local = rank_map->at(dest_rank).first
+     \end{verbatim}
+ \item[4.] Call MPI P2P function to start the communication. 
+ \begin{itemize}
+  \item[$\bullet$] If intra-communication, \verb|mpi_comm = commA'_mpi or commB'_mpi|; 
+  \item[$\bullet$] If inter-communication, \verb|mpi_comm = inter_comm_mpi|.
+ \end{itemize}
+\end{itemize}
+
+\begin{center}
+ \includegraphics[scale = 0.3]{sendrecv2.png}
+\end{center}
+
+\section{One-sided communications}
+
+The one-sided communication is a type of communcation which involves only one process to specify all communication parameters, both for the 
+sending side and the receiving side \cite[Chapter~11]{MPI}. To extend this type of communication in the context of endpoints, we encounter 
+some limitations. In the current work, the one-sided communication can only be used in the client-server mode which means that 
+RMA(remote memory access) can occur only between a server and a client.
+
+The construction of RMA windows is illustrated by the following figure:
+\begin{center}
+ \includegraphics[scale=0.5]{RMA_schema.pdf}
+\end{center}
+
+\begin{itemize}
+ \item we determin the max number of threads N in the endpoint environment (N=3 in the example);
+ \item on the server side, N windows are declared and asociated with the same memory adress;
+ \item we start a loop : i = 0, ..., N-1
+ \begin{itemize}
+  \item each endpoint with thread number i declares an RMA window;
+  \item the link between windows on the client side and the i-th window on the server side are created via \verb|MPI_Win_created|;
+  \item if the number of threads on a certain process is less than N, then a \verb|NULL| pointer is used as memory adress.
+ \end{itemize}
+\end{itemize}
+
+With the RMA windows created, we can then perform some communications: \verb|MPI_Put|, \verb|MPI_Get|, \verb|MPI_Accumulate|, 
+\verb|MPI_Get_accumulate|, \verb|MPI_Fetch_and_op|, \verb|MPI_Compare_and_swap|, \textit{etc}. 
+
+The main idea of any of the mentioned communications is to identify the threads which are involved in the connection. For example, we want 
+to perform a put operation from EP 2 to the server. We know that EP 2 is the thread 0 of process 1. Thus the 0-th window (win A) of the 
+server side should be used. Once the sender and the receiver are identified, the \verb|MPI_Put| communication can be established.
+
+Other RMA functions, such as \verb|MPI_Win_allocate|, \verb|MPI_win_Fence|, and \verb|MPI_Win_free|, remain nearly the same and we will 
+skip the detail in this document.
+
+
+
+\bibliographystyle{plain}
+\bibliography{reference}
+
+\end{document}          
Index: /XIOS/dev/branch_openmp/Note/EP note.tex.backup
===================================================================
--- /XIOS/dev/branch_openmp/Note/EP note.tex.backup	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/EP note.tex.backup	(revision 1548)
@@ -0,0 +1,543 @@
+\documentclass[a4paper,10pt]{article}
+\usepackage[utf8]{inputenc}
+\usepackage{graphicx}
+\usepackage{listings}
+\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
+\usepackage{amsmath}
+
+% Title Page
+\title{Note for MPI Endpoints}
+\author{}
+
+
+\begin{document}
+\maketitle
+
+%\begin{abstract}
+%\end{abstract}
+
+\section{Purpose}
+
+Use threads as if they are MPI processes. Each thread will be assigned a rank and be associated with a endpoints communicator 
+(EP\_Comm). Convention: one OpenMP thread corresponds to one endpoint.
+
+\section{MPI Endpoints Semantics}
+
+\begin{center}
+\includegraphics[scale=0.4]{scheme.png} 
+\end{center}
+
+Endpoints are created from one MPI communicator and the number of available threads:
+\begin{center}
+ \begin{verbatim}
+int MPI_Comm_create_endpoints(MPI_Comm parent_comm, int num_ep, 
+                              MPI_Info info, MPI_Comm out_comm_hdls[])
+ \end{verbatim}
+\end{center}
+
+``In this collective call, a single output communicator is created, and an array of \verb|num_ep| handles to this new communicator 
+are returned, where the $i^{th}$ handle corresponds to the $i^{th}$ rank requested by the caller of \verb|MPI_Comm_create_endpoints|. Ranks 
+in the output communicator are ordered sequentially and in the same order as the parent communicator. After it has been created, the 
+output communicator behaves as a normal communicator, and MPI calls on each endpoint (i.e., communicator handle) behave as though 
+they originated from a separate MPI process. In particular, collective calls must be made once per endpoint.''\cite{Dinan:2013}
+
+``Once created, endpoints behave as MPI processes. For example, all ranks in an endpoints communicator must participate in 
+collective operations. A consequence of this semantic is that endpoints also have MPI process progress requirements; that operations on 
+that endpoint are required to make progress only when an MPI operation (e.g. \verb|MPI_Test|) is performed on that endpoint. This semantic 
+enables an MPI implementation to logically separate endpoints, treat them independently within the progress engine, and eliminate 
+synchronization in updating their state.''\cite{Sridharan:2014}
+
+\section{EP types}
+\subsection*{MPI\_Comm}
+\verb|MPI_Comm| is composed by:
+\begin{itemize}
+ \item[$\bullet$] \verb|bool is_ep|: true $\implies$ EP, false $\implies$ MPI classic;
+ \item[$\bullet$] \verb|int mpi_comm|: handle to the parent MPI communicator;
+ \item[$\bullet$] \verb|OMPbarrier *ep_barrier|: openMP barrier, used for in-process synchronization and is different from 
+ \verb|omp barrier|;
+ \item[$\bullet$] \verb|int[2] size_rank_info[3]|: topology information of the current endpoint:
+ \begin{itemize}
+  \item rank of parent MPI process;
+  \item size of parent MPI communicator;
+  \item rank of endpoint, returned by \verb|MPI_Comm_rank|;
+  \item size of EP communicator, returned by \verb|MPI_Comm_size|;
+  \item in-process rank of endpoint;
+  \item in-process size of EP communicator, also noted as the number of endpoints in one MPI process.
+ \end{itemize}
+ \item[$\bullet$] \verb|MPI_Comm *comm_list|: pointer of the first endpoint communicator of one process;
+ \item[$\bullet$] \verb|Message_list *message_queue|: location of in-coming messages for each endpoint;
+ \item[$\bullet$] \verb|RANK_MAP *rank_map|: a map composed by an integer and a pair of integers. The integer key represents the rank of an 
+endpoint. The mapped type (pair of integers) gives the in-process rank of the endpoint and the rank of its parent MPI process: 
+ \begin{center}
+ \begin{verbatim}
+rank_map->at(ep_rank)=(ep_rank_local, mpi_rank)
+ \end{verbatim}
+\end{center}
+ \item[$\bullet$] \verb|BUFFER *ep_buffer|: buffer (of type \verb|int|, \verb|float|, \verb|double|, \verb|char|, \verb|long|, 
+and \verb|unsigned long|) used for in-process communication.
+\end{itemize}
+
+\subsection{MPI\_Request}
+\verb|MPI_Request| is composed by:
+\begin{itemize}
+ \item[$\bullet$] \verb|int mpi_request|: handle to the MPI request;
+ \item[$\bullet$] \verb|int ep_datatype|: data type of the communication;
+ \item[$\bullet$] \verb|MPI_Comm comm|: handle to the EP communicator;
+ \item[$\bullet$] \verb|int ep_src|: rank of the source endpoint;
+ \item[$\bullet$] \verb|int ep_tag|: tag of the communication.
+ \item[$\bullet$] \verb|int type|: type of the communication:
+ \begin{itemize}
+  \item 1 $\implies$ non-blocking send;
+  \item 2 $\implies$ pending non-blocking receive;
+  \item 3 $\implies$ non-blocking matching receive.
+ \end{itemize}
+
+\end{itemize}
+
+\subsection{MPI\_Status}
+\verb|MPI_Status| consists of:
+\begin{itemize}
+ \item[$\bullet$] \verb|int mpi_status|: handle to the MPI status;
+ \item[$\bullet$] \verb|int ep_datatype|: data type of the communication;
+ \item[$\bullet$] \verb|int ep_src|: rank of the source endpoint;
+ \item[$\bullet$] \verb|int ep_tag|: tag of the communication.
+\end{itemize}
+
+\subsection{MPI\_Message}
+\verb|MPI_Message| includes:
+\begin{itemize}
+ \item[$\bullet$] \verb|int mpi_message|: handle to the MPI message;
+ \item[$\bullet$] \verb|int ep_src|: rank of the source endpoint;
+ \item[$\bullet$] \verb|int ep_tag|: tag of the communication.
+\end{itemize}
+
+Other types, such as \verb|MPI_Info|, \verb|MPI_Aint|, and \verb|MPI_Fint| are defined in the same way.  
+
+\section{P2P communication}
+
+All EP point-to-point communication use tag to distinguish the source and destination endpoint. To be able to add these extra 
+information to tag, we require that the tag value is represented using 31 bits in the underlying MPI inmplemention.
+
+\includegraphics[scale=0.4]{tag.png}
+
+EP\_tag is user defined. MPI\_tag is internally computed and used inside MPI calls. Because of the extension of tag, wild-cards as 
+\verb|MPI_ANY_SOURCE| and \verb|MPI_ANY_TAG| will not be usable directly. An extra step of tag analysis is needed which leads to the 
+message dequeuing mechanism.
+
+\begin{center}
+ \includegraphics[scale = 0.5]{sendrecv.png}
+\end{center}
+
+
+In MPI environment, each MPI process has an incoming message queue. In EP case, messages for all threads inside one MPI process are stored 
+in this MPI queue. With the MPI 3 standard, we use the \verb|MPI_Improbe| routine to inquire the message queue and relocate the incoming 
+message in the local message queue for the corresponding thread/endpoint.
+
+
+\includegraphics[scale=0.3]{dequeue.png}
+
+% Any EP calls will trigger the message dequeuing and the probing, (matched-)receiving operations are performed upon the local message queue. 
+% 
+% Example: \verb|EP_Recv(src=2, tag=10, comm1)|:
+% \begin{itemize}
+%  \item[1.] Dequeue MPI message queue;
+%  \item[2.] call \verb|EP_Improb(src=2, tag=10, comm1, message)|;
+%  \item[3.] if find corresponding triple (src, tag, comm1), call \verb|EP_Mrecv(src=2, tag=10, comm1, message)|;
+%  \item[4.] else, repeat from step 2.
+% \end{itemize}
+
+
+\paragraph{Messages are \textit{non-overtaking}} Incoming messages' order is important! If one thread is receiving multiple messages from 
+the same source with the same tag. The receive order should be the same order in which the messages are sent. That is to say, the n-th sent 
+message should be the n-th received message.
+
+
+
+\paragraph{Progress} ``If a pair of matching send and receives have been initiated on two processes, then at least one of these 
+two operations will complete, independently of other actions in the system: the send operation will complete, unless the receive is 
+satisfied by another message, and completes; the receive operation will complete, unless the message sent is consumed by another matching 
+receive that was posted at the same destination process.'' \cite{MPI}
+
+
+When one \verb|EP_Irecv| is issued, we first dequeue the MPI incoming message queue and distribute all incoming messages to the local 
+queues according to the destination identifier. Next, the nonblocking receive request is added at the end of the request pending list.
+Third, the pending list is checked and requests with matching source, tag, and communicator will be accomplished.
+
+
+Because of the importance of message order, some communication completion functions must be discussed here such as \verb|MPI_Test| and 
+\verb|MPI_Wait|. ``The functions \verb|MPI_Wait| and \verb|MPI_Test| are used to complete a nonblocking communication. The completion of a 
+send operation indicates that the sender is now free to update the locations in the send buffer (the send operation itself leaves the 
+content of the send buffer unchanged). It does not indicate that the message has been received, rather, it may have been buffered by 
+the communication subsystem. However, if a synchronous mode send was used, the completion of the send operation indicates that a 
+matching receive was initiated, and that the message will eventually be received by this matching receive. The completion of a 
+receive operation indicates that the receive buffer contains the received message, the receiver is now free to access it, and that the 
+status object is set. It does not indicate that the matching send operation has completed (but indicates, of course, that the send 
+was initiated).'' \cite{MPI}
+
+\paragraph{Example 1}
+\verb|MPI_Test(MPI_Request *request, int *flag, MPI_Status *status)|
+\begin{itemize}
+ \item[1.] If \verb|request->type == 1|, communication to be tested is indeed issued from a non-blocking send. The completion status is 
+returned by:
+ \begin{center}
+  \begin{verbatim}
+   MPI_Test(& request->mpi_request, flag, & status->mpi_status)
+  \end{verbatim}
+ \end{center}
+ \item[2.] If \verb|request->type == 2|, it means that a non-blocking receive is called but the corresponding message is not yet probed. 
+The request is in the pending list thus not yet completed. All incoming message is once again probed and all pending requests are 
+checked. If after the second check, the matching message is found, thus a \verb|MPI_Imrecv| is called and the type is set to 3. 
+Otherwise, the type is still 2, then \verb|flag = false| is returned.
+ \item[3.] If \verb|request->type == 3|, this indcates that the request is issued from a non-blocking receive call and the 
+matching message is probed thus the status of the communication lies in the status of the \verb|MPI_Imrecv| function. The 
+completion result is returned by:
+ \begin{center}
+  \begin{verbatim}
+   MPI_Test(& request->mpi_request, flag, & status->mpi_status)
+  \end{verbatim}
+ \end{center}
+\end{itemize}
+
+\paragraph{Example 2}
+\verb|MPI_Wait(MPI_Request *request, MPI_Status *status)|
+\begin{itemize}
+ \item[1.] If \verb|request->type == 1|, communication to be tested is indeed issued from a non-blocking send. Jump to step 4.
+ \item[2.] If \verb|request->type == 2|,  it means that a non-blocking receive is called but the corresponding message is not yet probed. 
+The request is in the pending list thus not yet completed. We repeat the incoming message probing and the pending request checking until the 
+matching message is found, thus a \verb|MPI_Imrecv| is called and the type is set to 3. Jump to step 4.
+ \item[3.] If \verb|request->type == 3|, this indcates that the request is issued from a non-blocking receive call and the 
+matching message is probed thus the status of the communication lies in the status of the \verb|MPI_Imrecv| function. Jump to step 4.
+ \item[4.] We force the completion by calling:
+ \begin{center}
+  \begin{verbatim}
+   MPI_Wat(& request->mpi_request, & status->mpi_status)
+  \end{verbatim}
+ \end{center}
+\end{itemize}
+
+\section{Collective communication}
+
+All MPI classic collective communications are performed as the following pattern: 
+
+\begin{itemize}
+ \item[1.] Intra-process communication using OpenMP. \textit{e.g.} Collect data from slave threads to master thread.
+ \item[2.] Inter-process communication using MPI collective calls on master threads.
+ \item[3.] Intra-process communication using OpenMP. \textit{e.g.} Distribute data from master thread to slave threads.
+\end{itemize}
+
+\paragraph{Example 1}
+\verb|EP_Bcast(buffer, count, datatype, root = 4, comm)| with \verb|comm| composed by 4 MPI 
+processes and 3 threads per process:
+
+We can consider the communicator as $\{\underbrace{(0,1,2)}_\textrm{proc 0} \quad \underbrace{(3,\textcolor{red}{4},5)}_\textrm{proc 
+1}\quad \underbrace{(6,7,8)}_\textrm{proc 2}\quad \underbrace{(9,10,11)}_\textrm{proc 3}\}$.
+
+This collective communication is performed by the following three steps:
+
+\begin{itemize}
+ \item[1.] EP process with rank 4 send the buffer to EP process rank 3 which is a master thread. 
+ \item[2.] We call \verb|MPI_Bcast(buffer, count, datatype, mpi_root = 1, mpi_comm) |.
+ \item[3.] All master threads send the buffer to its slaves. 
+\end{itemize}
+
+\begin{center}
+\includegraphics[scale=0.3]{bcast.png} 
+\end{center}
+
+
+\paragraph{Example 2} 
+\verb|EP_Allreduce(sendbuf, recvbuf, count, datatype, op, comm)| with \verb|comm| the same 
+as in example 1.
+
+This collective communication is performed by the following three steps:
+
+\begin{itemize}
+ \item[1.] We perform a intra-process ``allreduce'' operation: master threads collect data from its slaves and perform the reduce 
+operation.
+ \item[2.] Master threads call the classic \verb|MPI_Allreduce| routine.
+ \item[3.] All master threads send the updated reduced data to its slaves. 
+\end{itemize}
+
+\begin{center}
+\includegraphics[scale=0.3]{allreduce.png} 
+\end{center}
+
+
+
+Other collective communications have the similar execution pattern.
+
+\section{Inter-communicator}
+
+In XIOS, inter-communicator is an very important component. Thus, our EP library must support inter-communications.
+
+\subsection{The splitting of intra-communicator}
+
+Before talking about the inter-communicator, we will start by splitting intra-communicator.
+The C prototype of the splitting routine is 
+\begin{center}
+ \begin{verbatim}
+int  MPI_Comm_split(MPI_Comm comm, int color, int key, 
+                                    MPI_Comm *newcomm)
+ \end{verbatim}
+\end{center}
+
+``This function partitions the group associated with \verb|comm| into disjoint subgroups, one for
+each value of \verb|color|. Each subgroup contains all processes of the same color. Within each
+subgroup, the processes are ranked in the order defined by the value of the argument
+\verb|key|, with ties broken according to their rank in the old group. A new communicator is
+created for each subgroup and returned in \verb|newcomm|. A process may supply the color value
+\verb|MPI_UNDEFINED|, in which case \verb|newcomm| returns \verb|MPI_COMM_NULL|. This is a collective
+call, but each process is permitted to provide different values for color and key.''\cite{MPI}
+
+By definition of the routine, in the case of EP, each thread participating the split operation will have only one color 
+(\verb|MPI_UNDEFINED| is also considered to be one color). However, in the process's point of view, it can have multiple colors as shown 
+in the following figure. 
+
+\begin{center}
+\includegraphics[scale=0.4]{split.png} 
+\end{center}
+
+This figure shows the result of the EP communicator splitting. Here we used the EP rank as key to assign the new rank of the thread in the 
+resulting split intra-communicator. If the key is anything else than the EP rank, we follow the convention that the key takes effect only 
+inside a process. This means that the threads are at first ordered by the MPI process rank and then by the value of key.
+
+Due to the fact that one process can have multiple colors for its threads, the splitting operation is executed by the following steps:
+
+\begin{itemize}
+ \item[1.] Master threads collect all colors from its slaves and communicate with each other to determine the total number of colors across 
+the communicator. 
+ \item[2.] For each color, the master thread check all its slave threads to obtain the number of threads having the same color. 
+ \item[3.] If at least one of the slave threads holds the color, then the master thread takes this color. If not, the master thread takes 
+color \verb|MPI_UNDEFINED|. All master threads call classic communicator splitting routine with key $=$ MPI rank.
+ \item[4.] For master threads holding a defined color, we execute the endpoint creation routine according to the number of slave 
+threads holding the same color. The resulting EP communicators are then assigned to these slave threads.
+\end{itemize}
+
+\begin{center}
+\includegraphics[scale=0.4]{split2.png} 
+\end{center}
+
+\subsection{The creation of inter-communicator}
+
+In XIOS, the inter-communicators are create by the routine \verb|MPI_Intercomm_create| which is used to bind two intra-communicators into 
+an inter-communicator. The C prototype is
+\begin{center}
+ \begin{verbatim}
+int MPI_Intercomm_create(MPI_Comm local_comm, int local_leader, 
+                         MPI_Comm peer_comm, int remote_leader, 
+                               int tag, MPI_Comm *newintercomm)
+ \end{verbatim}
+\end{center}
+
+
+According to the MPI standard, ``an inter-communication is a point-to-point communication between processes in
+different groups''. ``All inter-communicator constructors are blocking except for \verb|MPI_COMM_IDUP| and
+require that the local and remote groups be disjoint.''
+
+As in EP the threads are considered as processes, the non-overlapping condition can be translated to ``non-overlapping'' at the thread 
+level which means that one thread can not belong to the local group and the remote group. However, the parent process of the thread can 
+be overlapped. As the EP library is built upon an existing MPI implementation which follows the non-overlapping condition at the process 
+level, we can have an issue in the case. 
+
+Before digging into this issue, we shall at first look at the case where the non-overlapping condition is perfectly respected.
+\begin{center}
+ \includegraphics[scale=0.3]{intercomm.png}
+\end{center}
+
+As shown in the figure, we have two intra-communicators A and B and they are totally disjoint both at the thread and process level. Each of 
+the communicators has a local leader. We also assume that both leaders belong to a peer communicator and have rank 4 and 9 respectively.
+
+To create the inter-communicator, all threads from the left intra-comm call:
+\begin{verbatim}
+MPI_Intercomm_create(commA, local_leader = 2, peer_comm, 
+                     remote_leader = 9, tag, inter_comm)
+\end{verbatim}
+and for threads of the right intra-comm, they call:
+\begin{verbatim}
+MPI_Intercomm_create(commB, local_leader = 3, peer_comm, 
+                     remote_leader = 4, tag, inter_comm)
+\end{verbatim}
+
+To perform the inter-communicator creation, we follow the 3 steps:
+\begin{itemize}
+ \item[1.] Determine the leaders and ranks at the process level;
+ \item[2.] Call classic \verb|MPI_Intercomm_create|;
+ \item[3.] Create endpoints from process and assigned to threads.
+\end{itemize}
+
+\begin{center}
+ \includegraphics[scale=0.25]{intercomm_step.png}
+\end{center}
+
+If we have overlapped process in the creation of inter-communicator, we should add an \textit{priority check} to assign the process to only 
+one intra-communicator.
+Several possibilities:
+\begin{itemize}
+ \item[1.] Process is shared and contains no local leader $\implies$ process belongs to group with higher rank in peer comm;
+ \item[2.] Process is shared and contains one local leader $\implies$ process belongs to group with the leader;
+ \item[3.] Process is shared and contains both local leaders : leader change is performed and the peer communicator is 
+\verb|MPI_COMM_WORLD| and we note ``group A'' the group with smaller peer rank and ``group B'' the group with higher peer rank.
+   \begin{itemize}
+    \item[3a.] If group A has at least two processes, the leader of group A is changed to the master thread of the process with smallest 
+rank except the overlapped process. The overlapped process belongs to group B.
+    \item[3b.] If group A has only one processes, and group B has at least two processes, then the leader of group B is changed to the 
+master thread of the process with smallest rank except the overlapped process. The overlapped process belongs to group A.
+    \item[3c.] If both group A and group B have only one process, then an one-process intra-communicator is created though it will be 
+considered (labeled) as an inter-communicator. 
+   \end{itemize}
+\end{itemize}
+
+\begin{center}
+ \includegraphics[scale=0.25]{intercomm2.png}
+\end{center}
+
+\subsection{The merge of inter-communicators}
+\verb|MPI_Intercomm_Merge(MPI_Comm intercomm, int high, MPI_Comm *newintracomm)| creates an intra-communicator by merging the 
+local and remote groups of an inter-communicator. All processes should provide the same \verb|high| value within each of the two groups. If 
+processes in one group provided the value \verb|high=false| and processes in the other group provided the value \verb|high=true| then the 
+union orders the âlowâ group before the âhighâ group. If all processes provided the same high argument then the order of the union 
+is arbitrary. This call is blocking and collective within the union of the two groups. \cite{MPI}
+
+This routine can be considered as the inverse of \verb|MPI_Intercomm_create|. In the intercommunicator create function, all 5 cases are 
+eventually transformed into the case where no MPI process is shared by two groups. It is from this case that the merge funtion takes place.
+
+\begin{itemize}
+ \item[1.] The classic \verb|MPI_Intercomm_merge| is called and an MPI intracommunicator is created from the two disjoint groups and MPI 
+processes are ordered by the high value of the local leader. 
+ \item[2.] Endpoints are created based on the MPI intracommunicator and the new EP ranks are orderd firstly according to the high value of 
+each thread and then to the origianl EP ranks in the intercommunicators.
+\end{itemize}
+
+\begin{center}
+ \includegraphics[scale=0.25]{merge.png}
+\end{center}
+
+\section{P2P communication on inter-communicators}
+
+In case of the intercommunicators, the \verb|MPI_Comm| class has 3 members to determine the topology along with the original 
+\verb|rank_map|:
+\begin{itemize}
+ \item \verb|RANK_MAP local_rank_map[size of commA]|: composed of the EP rank in commA' or commB';
+ \item \verb|RANK_MAP remote_rank_map[size of commB]|: = \verb|local_rank_map| of remote group;
+ \item \verb|RANK_MAP intercomm_rank_map[size of commB']|: = \verb|rank_map| of remote group';
+ \item \verb|RANK_MAP rank_map|: rank map of commA' or commB'.
+\end{itemize}
+
+For example, in the following configuration:
+\begin{center}
+ \includegraphics[scale = 0.3]{ranks.png}
+\end{center}
+
+For all endpoints in commA, 
+\begin{verbatim}
+ local_rank_map={(rank in commA' or commB', 
+                  rank of leader in MPI_Comm_world)}
+               ={(1,0), (0,1), (2,1), (4,1)}
+                
+ remote_rank_map={(remote endpoints' rank in commA' or commB', 
+                   rank of remote leader in MPI_Comm_world)}
+                ={(0,0), (1,1), (3,1), (5,1)}
+\end{verbatim}
+
+For all endpoints in commA'
+\begin{verbatim}
+ intercomm_rank_map={(remote endpoints local rank in commA' or commB', 
+                      remote endpoints MPI rank in commA' or commB')}
+                   ={(0,0), (1,0)}
+ rank_map={(local rank in commA', mpi rank in commA')}
+         ={(0,0), (1,0), (0,1), (1,1), (0,2), (1,2)}
+\end{verbatim}
+
+
+For all endpoints in comm B,
+\begin{verbatim}
+ local_rank_map={(rank in commA' or commB', 
+                  rank of leader in MPI_Comm_world)}
+               ={(0,0), (1,1), (3,1), (5,1)}
+                
+ remote_rank_map={(remote endpoints' rank in commA' or commB', 
+                   rank of remote leader in MPI_Comm_world)}
+                ={(1,0), (0,1), (2,1), (4,1)}
+\end{verbatim}
+
+For all endpoints in commB'
+\begin{verbatim}
+ intercomm_rank_map={(remote endpoints local rank in commA' or commB', 
+                      remote endpoints MPI rank in commA' or commB')}
+                   ={(0,0), (1,0), (0,1), (1,1), (0,2), (1,2)}
+ rank_map={(local rank in commB', mpi rank in commB')}
+         ={(0,0), (1,0)}
+\end{verbatim}
+
+When calling a p2p communication on an inter-communicator, we should:
+\begin{itemize}
+ \item[1.] Determine if the source and the destination endpoints are in a same group by checking the ``labels''.
+   \begin{itemize}
+    \item[$\bullet$] \verb|src_label = local_rank_map->at(src).second|
+    \item[$\bullet$] \verb|dest_label = remote_rank_map->at(dest).second|
+   \end{itemize}
+   
+   
+ \item[2.] If \verb|src_label == dest_label|, then the communication is in fact a intra-communication. The new source rank and 
+destination rank, as well as the local ranks, are deduced by: 
+     \begin{verbatim}
+      src_rank = local_rank_map->at(src).first
+      dest_rank = remote_rank_map->at(dest).first
+      src_rank_local = rank_map->at(src_rank).first
+      dest_rank_local = rank_map->at(dest_rank).first
+     \end{verbatim}
+ \item[3.] If \verb|src_label != dest_label|, then the inter-communication is required. The new ranks are obtained by:
+    \begin{verbatim}
+      src_rank = local_rank_map->at(src).first
+      dest_rank = remote_rank_map->at(dest).first
+      src_rank_local = intercomm_rank_map->at(src_rank).first
+      dest_rank_local = rank_map->at(dest_rank).first
+     \end{verbatim}
+ \item[4.] Call MPI P2P function to start the communication. 
+ \begin{itemize}
+  \item[$\bullet$] If intra-communication, \verb|mpi_comm = commA'_mpi or commB'_mpi|; 
+  \item[$\bullet$] If inter-communication, \verb|mpi_comm = inter_comm_mpi|.
+ \end{itemize}
+\end{itemize}
+
+\begin{center}
+ \includegraphics[scale = 0.3]{sendrecv2.png}
+\end{center}
+
+\section{One-sided communications}
+
+The one-sided communication is a type of communcation which involves only one process to specify all communication parameters, both for the 
+sending side and the receiving side \cite[Chapter~11]{MPI}. To extend this type of communication in the context of endpoints, we encounter 
+some limitations. In the current work, the one-sided communication can only be used in the client-server mode which means that 
+RMA(remote memory access) can occur only between a server and a client.
+
+The construction of RMA windows is illustrated by the following figure:
+\begin{center}
+ \includegraphics[scale=0.5]{RMA_schema.pdf}
+\end{center}
+
+\begin{itemize}
+ \item we determin the max number of threads N in the endpoint environment (N=3 in the example);
+ \item on the server side, N windows are declared and asociated with the same memory adress;
+ \item we start a loop : i = 0, ..., N-1
+ \begin{itemize}
+  \item each endpoint with thread number i declares an RMA window;
+  \item the link between windows on the client side and the i-th window on the server side are created via \verb|MPI_Win_created|;
+  \item if the number of threads on a certain process is less than N, then a \verb|NULL| pointer is used as memory adress.
+ \end{itemize}
+\end{itemize}
+
+With the RMA windows created, we can then perform some communications: \verb|MPI_Put|, \verb|MPI_Get|, \verb|MPI_Accumulate|, 
+\verb|MPI_Get_accumulate|, \verb|MPI_Fetch_and_op|, \verb|MPI_Compare_and_swap|, \textit{etc}. 
+
+The main idea of any of the mentioned communications is to identify the threads which are involved in the connection. For example, we want 
+to perform a put operation from EP 2 to the server. We know that EP 2 is the thread 0 of process 1. Thus the 0-th window (win A) of the 
+server side should be used. Once the sender and the receiver are identified, the \verb|MPI_Put| communication can be established.
+
+Other RMA functions, such as \verb|MPI_Win_allocate|, \verb|MPI_Fence|, and \verb||
+
+
+\bibliographystyle{plain}
+\bibliography{reference}
+
+\end{document}          
Index: /XIOS/dev/branch_openmp/Note/RMA_schema.svg
===================================================================
--- /XIOS/dev/branch_openmp/Note/RMA_schema.svg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/RMA_schema.svg	(revision 1548)
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+    xmlns:latexdraw="http://latexdraw.sourceforge.net/namespaces/latexdraw"
+    version="1.1" baseProfile="full">
+    <defs>
+        <marker overflow="visible" orient="auto" id="arrow1-2226">
+            <path
+                d="M 0.0 0.0 L 4.652083333333334 1.6614583333333335 L 2.79125 0.0 L 4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="red"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-2226">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="red"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow1-2227">
+            <path
+                d="M 0.0 0.0 L 4.652083333333334 1.6614583333333335 L 2.79125 0.0 L 4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="red"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-2227">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="red"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow1-2228">
+            <path
+                d="M 0.0 0.0 L 4.652083333333334 1.6614583333333335 L 2.79125 0.0 L 4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="blue"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-2228">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="blue"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow1-2229">
+            <path
+                d="M 0.0 0.0 L 4.652083333333334 1.6614583333333335 L 2.79125 0.0 L 4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="blue"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-2229">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="blue"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow1-2230">
+            <path
+                d="M 0.0 0.0 L 4.652083333333334 1.6614583333333335 L 2.79125 0.0 L 4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="lime"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-2230">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="lime"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow1-2231">
+            <path
+                d="M 0.0 0.0 L 4.652083333333334 1.6614583333333335 L 2.79125 0.0 L 4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="lime"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-2231">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="lime"/>
+        </marker>
+    </defs>
+    <g>
+        <g latexdraw:type="rectangle" id="id2164">
+            <rect x="501.0" y="261.0" width="358.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id2165" font-family="Dialog"
+            fill="black" font-size="17" latexdraw:x="510.0">
+            <text x="510.0" y="290.0"><![CDATA[local memory for EP 0 (Proc 0, thread 0)]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id2168">
+            <rect x="501.0" y="331.0" width="358.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id2169" font-family="Dialog"
+            fill="black" font-size="17" latexdraw:x="510.0">
+            <text x="510.0" y="360.0"><![CDATA[local memory for EP 1 (Proc 0, thread 1)]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id2172">
+            <rect x="501.0" y="521.0" width="358.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id2173" font-family="Dialog"
+            fill="black" font-size="17" latexdraw:x="510.0">
+            <text x="510.0" y="550.0"><![CDATA[local memory for EP 2 (Proc 1, thread 0)]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id2176">
+            <rect x="501.0" y="591.0" width="358.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id2177" font-family="Dialog"
+            fill="black" font-size="17" latexdraw:x="510.0">
+            <text x="510.0" y="620.0"><![CDATA[local memory for EP 3 (Proc 1, thread 1)]]></text>
+        </g>
+        <g latexdraw:type="text" id="id2180" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="640.0">
+            <text x="640.0" y="190.0"><![CDATA[CLIENT]]></text>
+        </g>
+        <g latexdraw:type="text" id="id2183" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1420.0">
+            <text x="1420.0" y="190.0"><![CDATA[SERVER]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id2186">
+            <rect x="1301.0" y="411.0" width="358.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id2187" font-family="Dialog"
+            fill="black" font-size="17" latexdraw:x="1310.0">
+            <text x="1310.0" y="440.0"><![CDATA[local memory for Proc 2]]></text>
+        </g>
+        <g latexdraw:type="square" id="id2190" transform="rotate(41.82016988013578) translate(-42.5802571758594 -671.4478057358155)">
+            <rect x="881.0" y="261.0" width="38.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#d1f5fe"/>
+        </g>
+        <g latexdraw:type="square" id="id2191" transform="rotate(41.82016988013578) translate(4.095382987028415 -689.2809137890586)">
+            <rect x="881.0" y="331.0" width="38.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#d1f5fe"/>
+        </g>
+        <g latexdraw:type="square" id="id2192" transform="rotate(41.82016988013578) translate(130.78640628629523 -737.6850642192896)">
+            <rect x="881.0" y="521.0" width="38.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#d1f5fe"/>
+        </g>
+        <g latexdraw:type="square" id="id2193" transform="rotate(41.82016988013578) translate(177.46204644918316 -755.5181722725326)">
+            <rect x="881.0" y="591.0" width="38.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#d1f5fe"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id2194">
+            <rect x="501.0" y="661.0" width="358.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id2195" font-family="Dialog"
+            fill="black" font-size="17" latexdraw:x="510.0">
+            <text x="510.0" y="690.0"><![CDATA[local memory for EP 4 (Proc 1, thread 2)]]></text>
+        </g>
+        <g latexdraw:type="square" id="id2198" transform="rotate(41.82016988013578) translate(224.13768661207087 -773.3512803257757)">
+            <rect x="881.0" y="661.0" width="38.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#d1f5fe"/>
+        </g>
+        <g latexdraw:type="square" id="id2199" transform="rotate(41.82016988013578) translate(-65.66427436074355 -891.8669584947553)">
+            <rect x="1181.0" y="341.0" width="38.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#d1f5fe"/>
+        </g>
+        <g latexdraw:type="square" id="id2200" transform="rotate(41.82016988013578) translate(-18.988634197855845 -909.7000665479984)">
+            <rect x="1181.0" y="411.0" width="38.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#d1f5fe"/>
+        </g>
+        <g latexdraw:type="text" id="id2201" font-family="Dialog"
+            fill="black" font-size="17" latexdraw:x="920.0">
+            <text x="920.0" y="260.0"><![CDATA[win 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id2204" font-family="Dialog"
+            fill="black" font-size="17" latexdraw:x="920.0">
+            <text x="920.0" y="330.0"><![CDATA[win 1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id2207" font-family="Dialog"
+            fill="black" font-size="17" latexdraw:x="920.0">
+            <text x="920.0" y="520.0"><![CDATA[win 2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id2210" font-family="Dialog"
+            fill="black" font-size="17" latexdraw:x="920.0">
+            <text x="920.0" y="590.0"><![CDATA[win 3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id2213" font-family="Dialog"
+            fill="black" font-size="17" latexdraw:x="920.0">
+            <text x="920.0" y="660.0"><![CDATA[win 4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id2216" font-family="Dialog"
+            fill="black" font-size="17" latexdraw:x="1220.0">
+            <text x="1220.0" y="340.0"><![CDATA[win A]]></text>
+        </g>
+        <g latexdraw:type="text" id="id2219" font-family="Dialog"
+            fill="black" font-size="17" latexdraw:x="1220.0">
+            <text x="1220.0" y="410.0"><![CDATA[win B]]></text>
+        </g>
+        <g latexdraw:type="square" id="id2222" transform="rotate(41.82016988013578) translate(27.687005965032085 -927.5331746012414)">
+            <rect x="1181.0" y="481.0" width="38.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#d1f5fe"/>
+        </g>
+        <g latexdraw:type="text" id="id2223" font-family="Dialog"
+            fill="black" font-size="17" latexdraw:x="1220.0">
+            <text x="1220.0" y="480.0"><![CDATA[win C]]></text>
+        </g>
+        <g latexdraw:type="line" id="id2226">
+            <line x1="960.0" x2="1160.0" y1="280.0" y2="360.0"
+                stroke-width="2.0" stroke="red"
+                latexdraw:rotationAngle="0.0"
+                marker-start="url(#arrow1-2226)" marker-end="url(#arrow2-2226)"/>
+        </g>
+        <g latexdraw:type="line" id="id2227">
+            <line x1="1160.0" x2="950.0" y1="370.0" y2="540.0"
+                stroke-width="2.0" stroke="red"
+                latexdraw:rotationAngle="-0.2554615577213105"
+                marker-start="url(#arrow1-2227)" marker-end="url(#arrow2-2227)"/>
+        </g>
+        <g latexdraw:type="line" id="id2228">
+            <line x1="960.0" x2="1160.0" y1="350.0" y2="430.0"
+                stroke-width="2.0" stroke="blue"
+                latexdraw:rotationAngle="0.0"
+                marker-start="url(#arrow1-2228)" marker-end="url(#arrow2-2228)"/>
+        </g>
+        <g latexdraw:type="line" id="id2229">
+            <line x1="1160.0" x2="950.0" y1="440.0" y2="610.0"
+                stroke-width="2.0" stroke="blue"
+                latexdraw:rotationAngle="0.0"
+                marker-start="url(#arrow1-2229)" marker-end="url(#arrow2-2229)"/>
+        </g>
+        <g latexdraw:type="line" id="id2230">
+            <line x1="1160.0" x2="950.0" y1="510.0" y2="680.0"
+                stroke-width="2.0" stroke="lime"
+                latexdraw:rotationAngle="0.0"
+                marker-start="url(#arrow1-2230)" marker-end="url(#arrow2-2230)"/>
+        </g>
+        <g latexdraw:type="line" id="id2231">
+            <line x1="1160.0" x2="960.0" y1="500.0" y2="420.0"
+                stroke-width="2.0" stroke="lime"
+                latexdraw:rotationAngle="0.0"
+                marker-start="url(#arrow1-2231)" marker-end="url(#arrow2-2231)"/>
+        </g>
+        <g latexdraw:type="text" id="id2232" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="900.0">
+            <text x="900.0" y="420.0"><![CDATA[NULL]]></text>
+        </g>
+    </g>
+    <metadata>
+        <latexdraw:metadata>
+            <latexdraw:displayBorders>false</latexdraw:displayBorders>
+            <latexdraw:autoAdjust>true</latexdraw:autoAdjust>
+            <latexdraw:ppc>50</latexdraw:ppc>
+            <latexdraw:zoom>1.0</latexdraw:zoom>
+            <latexdraw:unit>cm</latexdraw:unit>
+            <latexdraw:classicGrid>false</latexdraw:classicGrid>
+            <latexdraw:gridGap>10</latexdraw:gridGap>
+            <latexdraw:code>0</latexdraw:code>
+            <latexdraw:displayGrid>true</latexdraw:displayGrid>
+            <latexdraw:magneticGrid>true</latexdraw:magneticGrid>
+            <latexdraw:autoUpdate>true</latexdraw:autoUpdate>
+            <latexdraw:version>2.0.8</latexdraw:version>
+            <latexdraw:size>
+                <latexdraw:width>2507</latexdraw:width>
+                <latexdraw:height>1576</latexdraw:height>
+            </latexdraw:size>
+            <latexdraw:position>
+                <latexdraw:x>53</latexdraw:x>
+                <latexdraw:y>24</latexdraw:y>
+            </latexdraw:position>
+            <latexdraw:dividerPosition>0.9976067012365377</latexdraw:dividerPosition>
+            <latexdraw:displayCodePanel>true</latexdraw:displayCodePanel>
+            <latexdraw:displayXScale>true</latexdraw:displayXScale>
+            <latexdraw:displayYScale>true</latexdraw:displayYScale>
+            <latexdraw:delimitorOpacity>138</latexdraw:delimitorOpacity>
+        </latexdraw:metadata>
+    </metadata>
+</svg>
Index: /XIOS/dev/branch_openmp/Note/allreduce.svg
===================================================================
--- /XIOS/dev/branch_openmp/Note/allreduce.svg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/allreduce.svg	(revision 1548)
@@ -0,0 +1,616 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+    xmlns:latexdraw="http://latexdraw.sourceforge.net/namespaces/latexdraw"
+    version="1.1" baseProfile="full">
+    <defs>
+        <marker overflow="visible" orient="auto" id="arrow2-4871">
+            <path
+                d="M 0.0 0.0 L -4.8173611111111105 1.720486111111111 L -2.890416666666666 0.0 L -4.8173611111111105 -1.720486111111111 z "
+                latexdraw:arrSizeNum="3.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-4927">
+            <path
+                d="M 0.0 0.0 L -4.8173611111111105 1.720486111111111 L -2.890416666666666 0.0 L -4.8173611111111105 -1.720486111111111 z "
+                latexdraw:arrSizeNum="3.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-4981">
+            <path
+                d="M 0.0 0.0 L -4.8173611111111105 1.720486111111111 L -2.890416666666666 0.0 L -4.8173611111111105 -1.720486111111111 z "
+                latexdraw:arrSizeNum="3.0" fill="black"/>
+        </marker>
+    </defs>
+    <g>
+        <g latexdraw:type="drawing" id="id4761">
+            <g latexdraw:type="drawing" id="id4762">
+                <g latexdraw:type="rectangle" id="id4763">
+                    <rect x="351.0" y="531.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#d4f4e0"/>
+                </g>
+                <g latexdraw:type="rectangle" id="id4764">
+                    <rect x="351.0" y="391.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#dfe1f2"/>
+                </g>
+                <g latexdraw:type="rectangle" id="id4765">
+                    <rect x="351.0" y="251.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#f1daf9"/>
+                </g>
+                <g latexdraw:type="rectangle" id="id4766">
+                    <rect x="351.0" y="111.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#fafac9"/>
+                </g>
+            </g>
+            <g latexdraw:type="drawing" id="id4768">
+                <g latexdraw:type="square" id="id4769">
+                    <rect x="361.0" y="121.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id4770">
+                    <rect x="361.0" y="161.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id4771">
+                    <rect x="361.0" y="201.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+            </g>
+            <g latexdraw:type="square" id="id4773">
+                <rect x="361.0" y="261.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="square" id="id4774">
+                <rect x="361.0" y="341.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="drawing" id="id4775">
+                <g latexdraw:type="square" id="id4776">
+                    <rect x="361.0" y="401.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id4777">
+                    <rect x="361.0" y="441.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id4778">
+                    <rect x="361.0" y="481.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+            </g>
+            <g latexdraw:type="drawing" id="id4780">
+                <g latexdraw:type="square" id="id4781">
+                    <rect x="361.0" y="541.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id4782">
+                    <rect x="361.0" y="581.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id4783">
+                    <rect x="361.0" y="621.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+            </g>
+            <g latexdraw:type="text" id="id4785" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="320.0">
+                <text x="320.0" y="140.0"><![CDATA[0]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4788" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="320.0">
+                <text x="320.0" y="180.0"><![CDATA[1]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4791" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="320.0">
+                <text x="320.0" y="220.0"><![CDATA[2]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4794" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="320.0">
+                <text x="320.0" y="280.0"><![CDATA[3]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4797" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="320.0">
+                <text x="320.0" y="320.0"><![CDATA[4]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4800" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="320.0">
+                <text x="320.0" y="360.0"><![CDATA[5]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4803" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="320.0">
+                <text x="320.0" y="420.0"><![CDATA[6]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4806" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="320.0">
+                <text x="320.0" y="460.0"><![CDATA[7]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4809" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="320.0">
+                <text x="320.0" y="500.0"><![CDATA[8]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4812" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="320.0">
+                <text x="320.0" y="560.0"><![CDATA[9]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4815" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="320.0">
+                <text x="320.0" y="600.0"><![CDATA[10]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4818" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="320.0">
+                <text x="320.0" y="640.0"><![CDATA[11]]></text>
+            </g>
+            <g latexdraw:type="drawing" id="id4821">
+                <g latexdraw:type="drawing" id="id4822">
+                    <g latexdraw:type="rectangle" id="id4823">
+                        <rect x="571.0" y="531.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#d4f4e0"/>
+                    </g>
+                    <g latexdraw:type="rectangle" id="id4824">
+                        <rect x="571.0" y="391.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#dfe1f2"/>
+                    </g>
+                    <g latexdraw:type="rectangle" id="id4825">
+                        <rect x="571.0" y="251.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#f1daf9"/>
+                    </g>
+                    <g latexdraw:type="rectangle" id="id4826">
+                        <rect x="571.0" y="111.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#fafac9"/>
+                    </g>
+                </g>
+                <g latexdraw:type="square" id="id4828">
+                    <rect x="581.0" y="161.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id4829">
+                    <rect x="581.0" y="201.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id4830">
+                    <rect x="581.0" y="341.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id4831">
+                    <rect x="581.0" y="441.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id4832">
+                    <rect x="581.0" y="481.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id4833">
+                    <rect x="581.0" y="581.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id4834">
+                    <rect x="581.0" y="621.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="text" id="id4835"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="140.0"><![CDATA[0]]></text>
+                </g>
+                <g latexdraw:type="text" id="id4838"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="180.0"><![CDATA[1]]></text>
+                </g>
+                <g latexdraw:type="text" id="id4841"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="220.0"><![CDATA[2]]></text>
+                </g>
+                <g latexdraw:type="text" id="id4844"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="280.0"><![CDATA[3]]></text>
+                </g>
+                <g latexdraw:type="text" id="id4847"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="320.0"><![CDATA[4]]></text>
+                </g>
+                <g latexdraw:type="text" id="id4850"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="360.0"><![CDATA[5]]></text>
+                </g>
+                <g latexdraw:type="text" id="id4853"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="420.0"><![CDATA[6]]></text>
+                </g>
+                <g latexdraw:type="text" id="id4856"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="460.0"><![CDATA[7]]></text>
+                </g>
+                <g latexdraw:type="text" id="id4859"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="500.0"><![CDATA[8]]></text>
+                </g>
+                <g latexdraw:type="text" id="id4862"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="560.0"><![CDATA[9]]></text>
+                </g>
+                <g latexdraw:type="text" id="id4865"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="600.0"><![CDATA[10]]></text>
+                </g>
+                <g latexdraw:type="text" id="id4868"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="640.0"><![CDATA[11]]></text>
+                </g>
+                <g latexdraw:type="line" id="id4871">
+                    <line x1="410.0" x2="530.0" y1="380.0" y2="380.0"
+                        stroke-width="6.0" stroke="black"
+                        latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-4871)"/>
+                </g>
+                <g latexdraw:type="square" id="id4872">
+                    <rect x="581.0" y="301.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id4873">
+                    <rect x="581.0" y="121.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="blue"/>
+                </g>
+                <g latexdraw:type="square" id="id4874">
+                    <rect x="581.0" y="261.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="blue"/>
+                </g>
+                <g latexdraw:type="square" id="id4875">
+                    <rect x="581.0" y="401.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="blue"/>
+                </g>
+                <g latexdraw:type="square" id="id4876">
+                    <rect x="581.0" y="541.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="blue"/>
+                </g>
+            </g>
+            <g latexdraw:type="drawing" id="id4878">
+                <g latexdraw:type="rectangle" id="id4879">
+                    <rect x="801.0" y="531.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#d4f4e0"/>
+                </g>
+                <g latexdraw:type="rectangle" id="id4880">
+                    <rect x="801.0" y="391.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#dfe1f2"/>
+                </g>
+                <g latexdraw:type="rectangle" id="id4881">
+                    <rect x="801.0" y="251.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#f1daf9"/>
+                </g>
+                <g latexdraw:type="rectangle" id="id4882">
+                    <rect x="801.0" y="111.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#fafac9"/>
+                </g>
+            </g>
+            <g latexdraw:type="square" id="id4884">
+                <rect x="811.0" y="161.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="square" id="id4885">
+                <rect x="811.0" y="201.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="square" id="id4886">
+                <rect x="811.0" y="341.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="square" id="id4887">
+                <rect x="811.0" y="441.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="square" id="id4888">
+                <rect x="811.0" y="481.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="square" id="id4889">
+                <rect x="811.0" y="581.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="square" id="id4890">
+                <rect x="811.0" y="621.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="text" id="id4891" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="770.0">
+                <text x="770.0" y="140.0"><![CDATA[0]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4894" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="770.0">
+                <text x="770.0" y="180.0"><![CDATA[1]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4897" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="770.0">
+                <text x="770.0" y="220.0"><![CDATA[2]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4900" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="770.0">
+                <text x="770.0" y="280.0"><![CDATA[3]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4903" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="770.0">
+                <text x="770.0" y="320.0"><![CDATA[4]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4906" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="770.0">
+                <text x="770.0" y="360.0"><![CDATA[5]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4909" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="770.0">
+                <text x="770.0" y="420.0"><![CDATA[6]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4912" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="770.0">
+                <text x="770.0" y="460.0"><![CDATA[7]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4915" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="770.0">
+                <text x="770.0" y="500.0"><![CDATA[8]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4918" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="770.0">
+                <text x="770.0" y="560.0"><![CDATA[9]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4921" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="770.0">
+                <text x="770.0" y="600.0"><![CDATA[10]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4924" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="770.0">
+                <text x="770.0" y="640.0"><![CDATA[11]]></text>
+            </g>
+            <g latexdraw:type="line" id="id4927">
+                <line x1="640.0" x2="760.0" y1="380.0" y2="380.0"
+                    stroke-width="6.0" stroke="black"
+                    latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-4927)"/>
+            </g>
+            <g latexdraw:type="text" id="id4928" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="670.0">
+                <text x="670.0" y="360.0"><![CDATA[step 2]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4931" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="440.0">
+                <text x="440.0" y="360.0"><![CDATA[step 1]]></text>
+            </g>
+            <g latexdraw:type="drawing" id="id4934">
+                <g latexdraw:type="rectangle" id="id4935">
+                    <rect x="1011.0" y="531.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#d4f4e0"/>
+                </g>
+                <g latexdraw:type="rectangle" id="id4936">
+                    <rect x="1011.0" y="391.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#dfe1f2"/>
+                </g>
+                <g latexdraw:type="rectangle" id="id4937">
+                    <rect x="1011.0" y="251.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#f1daf9"/>
+                </g>
+                <g latexdraw:type="rectangle" id="id4938">
+                    <rect x="1011.0" y="111.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#fafac9"/>
+                </g>
+            </g>
+            <g latexdraw:type="drawing" id="id4940">
+                <g latexdraw:type="square" id="id4941">
+                    <rect x="1021.0" y="261.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id4942">
+                    <rect x="1021.0" y="301.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id4943">
+                    <rect x="1021.0" y="341.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+            </g>
+            <g latexdraw:type="text" id="id4945" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="140.0"><![CDATA[0]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4948" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="180.0"><![CDATA[1]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4951" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="220.0"><![CDATA[2]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4954" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="280.0"><![CDATA[3]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4957" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="320.0"><![CDATA[4]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4960" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="360.0"><![CDATA[5]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4963" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="420.0"><![CDATA[6]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4966" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="460.0"><![CDATA[7]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4969" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="500.0"><![CDATA[8]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4972" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="560.0"><![CDATA[9]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4975" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="600.0"><![CDATA[10]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4978" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="640.0"><![CDATA[11]]></text>
+            </g>
+            <g latexdraw:type="line" id="id4981">
+                <line x1="850.0" x2="970.0" y1="380.0" y2="380.0"
+                    stroke-width="6.0" stroke="black"
+                    latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-4981)"/>
+            </g>
+            <g latexdraw:type="text" id="id4982" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="880.0">
+                <text x="880.0" y="360.0"><![CDATA[step 3]]></text>
+            </g>
+            <g latexdraw:type="drawing" id="id4985">
+                <g latexdraw:type="square" id="id4986">
+                    <rect x="1021.0" y="401.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id4987">
+                    <rect x="1021.0" y="441.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id4988">
+                    <rect x="1021.0" y="481.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+            </g>
+            <g latexdraw:type="drawing" id="id4990">
+                <g latexdraw:type="square" id="id4991">
+                    <rect x="1021.0" y="541.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id4992">
+                    <rect x="1021.0" y="581.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id4993">
+                    <rect x="1021.0" y="621.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+            </g>
+            <g latexdraw:type="square" id="id4995">
+                <rect x="1021.0" y="121.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="red"/>
+            </g>
+            <g latexdraw:type="square" id="id4996">
+                <rect x="1021.0" y="161.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="red"/>
+            </g>
+            <g latexdraw:type="square" id="id4997">
+                <rect x="1021.0" y="201.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="red"/>
+            </g>
+            <g latexdraw:type="square" id="id4998">
+                <rect x="361.0" y="301.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="square" id="id4999">
+                <rect x="811.0" y="301.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="square" id="id5000">
+                <rect x="811.0" y="121.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="red"/>
+            </g>
+            <g latexdraw:type="square" id="id5001">
+                <rect x="811.0" y="261.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="red"/>
+            </g>
+            <g latexdraw:type="square" id="id5002">
+                <rect x="811.0" y="401.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="red"/>
+            </g>
+            <g latexdraw:type="square" id="id5003">
+                <rect x="811.0" y="541.0" width="18.0" height="18.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="red"/>
+            </g>
+        </g>
+    </g>
+    <metadata>
+        <latexdraw:metadata>
+            <latexdraw:displayBorders>false</latexdraw:displayBorders>
+            <latexdraw:autoAdjust>true</latexdraw:autoAdjust>
+            <latexdraw:ppc>50</latexdraw:ppc>
+            <latexdraw:zoom>1.0</latexdraw:zoom>
+            <latexdraw:unit>cm</latexdraw:unit>
+            <latexdraw:classicGrid>false</latexdraw:classicGrid>
+            <latexdraw:gridGap>10</latexdraw:gridGap>
+            <latexdraw:code>0</latexdraw:code>
+            <latexdraw:displayGrid>true</latexdraw:displayGrid>
+            <latexdraw:magneticGrid>true</latexdraw:magneticGrid>
+            <latexdraw:autoUpdate>true</latexdraw:autoUpdate>
+            <latexdraw:version>2.0.8</latexdraw:version>
+            <latexdraw:size>
+                <latexdraw:width>1867</latexdraw:width>
+                <latexdraw:height>1176</latexdraw:height>
+            </latexdraw:size>
+            <latexdraw:position>
+                <latexdraw:x>53</latexdraw:x>
+                <latexdraw:y>24</latexdraw:y>
+            </latexdraw:position>
+            <latexdraw:dividerPosition>0.8489555436529191</latexdraw:dividerPosition>
+            <latexdraw:displayCodePanel>true</latexdraw:displayCodePanel>
+            <latexdraw:displayXScale>true</latexdraw:displayXScale>
+            <latexdraw:displayYScale>true</latexdraw:displayYScale>
+            <latexdraw:delimitorOpacity>138</latexdraw:delimitorOpacity>
+        </latexdraw:metadata>
+    </metadata>
+</svg>
Index: /XIOS/dev/branch_openmp/Note/bcast.svg
===================================================================
--- /XIOS/dev/branch_openmp/Note/bcast.svg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/bcast.svg	(revision 1548)
@@ -0,0 +1,628 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+    xmlns:latexdraw="http://latexdraw.sourceforge.net/namespaces/latexdraw"
+    version="1.1" baseProfile="full">
+    <defs>
+        <marker overflow="visible" orient="auto" id="arrow2-3386">
+            <path
+                d="M 0.0 0.0 L -4.8173611111111105 1.720486111111111 L -2.890416666666666 0.0 L -4.8173611111111105 -1.720486111111111 z "
+                latexdraw:arrSizeNum="3.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-3391">
+            <path
+                d="M 0.0 0.0 L -4.8173611111111105 1.720486111111111 L -2.890416666666666 0.0 L -4.8173611111111105 -1.720486111111111 z "
+                latexdraw:arrSizeNum="3.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-3442">
+            <path
+                d="M 0.0 0.0 L -4.8173611111111105 1.720486111111111 L -2.890416666666666 0.0 L -4.8173611111111105 -1.720486111111111 z "
+                latexdraw:arrSizeNum="3.0" fill="black"/>
+        </marker>
+    </defs>
+    <g>
+        <g latexdraw:type="drawing" id="id3206">
+            <g latexdraw:type="drawing" id="id3207">
+                <g latexdraw:type="drawing" id="id3208">
+                    <g latexdraw:type="rectangle" id="id3209">
+                        <rect x="351.0" y="531.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#d4f4e0"/>
+                    </g>
+                    <g latexdraw:type="rectangle" id="id3210">
+                        <rect x="351.0" y="391.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#dfe1f2"/>
+                    </g>
+                    <g latexdraw:type="rectangle" id="id3211">
+                        <rect x="351.0" y="251.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#f1daf9"/>
+                    </g>
+                    <g latexdraw:type="rectangle" id="id3212">
+                        <rect x="351.0" y="111.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#fafac9"/>
+                    </g>
+                </g>
+                <g latexdraw:type="drawing" id="id3214">
+                    <g latexdraw:type="square" id="id3215">
+                        <rect x="361.0" y="121.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                    <g latexdraw:type="square" id="id3216">
+                        <rect x="361.0" y="161.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                    <g latexdraw:type="square" id="id3217">
+                        <rect x="361.0" y="201.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                </g>
+                <g latexdraw:type="square" id="id3219">
+                    <rect x="361.0" y="261.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id3220">
+                    <rect x="361.0" y="301.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3221">
+                    <rect x="361.0" y="341.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="drawing" id="id3222">
+                    <g latexdraw:type="square" id="id3223">
+                        <rect x="361.0" y="401.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                    <g latexdraw:type="square" id="id3224">
+                        <rect x="361.0" y="441.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                    <g latexdraw:type="square" id="id3225">
+                        <rect x="361.0" y="481.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                </g>
+                <g latexdraw:type="drawing" id="id3227">
+                    <g latexdraw:type="square" id="id3228">
+                        <rect x="361.0" y="541.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                    <g latexdraw:type="square" id="id3229">
+                        <rect x="361.0" y="581.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                    <g latexdraw:type="square" id="id3230">
+                        <rect x="361.0" y="621.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                </g>
+                <g latexdraw:type="text" id="id3232"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="320.0">
+                    <text x="320.0" y="140.0"><![CDATA[0]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3235"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="320.0">
+                    <text x="320.0" y="180.0"><![CDATA[1]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3238"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="320.0">
+                    <text x="320.0" y="220.0"><![CDATA[2]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3241"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="320.0">
+                    <text x="320.0" y="280.0"><![CDATA[3]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3244"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="320.0">
+                    <text x="320.0" y="320.0"><![CDATA[4]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3247"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="320.0">
+                    <text x="320.0" y="360.0"><![CDATA[5]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3250"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="320.0">
+                    <text x="320.0" y="420.0"><![CDATA[6]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3253"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="320.0">
+                    <text x="320.0" y="460.0"><![CDATA[7]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3256"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="320.0">
+                    <text x="320.0" y="500.0"><![CDATA[8]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3259"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="320.0">
+                    <text x="320.0" y="560.0"><![CDATA[9]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3262"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="320.0">
+                    <text x="320.0" y="600.0"><![CDATA[10]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3265"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="320.0">
+                    <text x="320.0" y="640.0"><![CDATA[11]]></text>
+                </g>
+            </g>
+            <g latexdraw:type="drawing" id="id3269">
+                <g latexdraw:type="drawing" id="id3270">
+                    <g latexdraw:type="rectangle" id="id3271">
+                        <rect x="571.0" y="531.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#d4f4e0"/>
+                    </g>
+                    <g latexdraw:type="rectangle" id="id3272">
+                        <rect x="571.0" y="391.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#dfe1f2"/>
+                    </g>
+                    <g latexdraw:type="rectangle" id="id3273">
+                        <rect x="571.0" y="251.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#f1daf9"/>
+                    </g>
+                    <g latexdraw:type="rectangle" id="id3274">
+                        <rect x="571.0" y="111.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#fafac9"/>
+                    </g>
+                </g>
+                <g latexdraw:type="drawing" id="id3276">
+                    <g latexdraw:type="square" id="id3277">
+                        <rect x="581.0" y="121.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                    <g latexdraw:type="square" id="id3278">
+                        <rect x="581.0" y="161.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                    <g latexdraw:type="square" id="id3279">
+                        <rect x="581.0" y="201.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                </g>
+                <g latexdraw:type="square" id="id3281">
+                    <rect x="581.0" y="261.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3282">
+                    <rect x="581.0" y="301.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3283">
+                    <rect x="581.0" y="341.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="drawing" id="id3284">
+                    <g latexdraw:type="square" id="id3285">
+                        <rect x="581.0" y="401.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                    <g latexdraw:type="square" id="id3286">
+                        <rect x="581.0" y="441.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                    <g latexdraw:type="square" id="id3287">
+                        <rect x="581.0" y="481.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                </g>
+                <g latexdraw:type="drawing" id="id3289">
+                    <g latexdraw:type="square" id="id3290">
+                        <rect x="581.0" y="541.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                    <g latexdraw:type="square" id="id3291">
+                        <rect x="581.0" y="581.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                    <g latexdraw:type="square" id="id3292">
+                        <rect x="581.0" y="621.0" width="18.0"
+                            height="18.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="white"/>
+                    </g>
+                </g>
+                <g latexdraw:type="text" id="id3294"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="140.0"><![CDATA[0]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3297"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="180.0"><![CDATA[1]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3300"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="220.0"><![CDATA[2]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3303"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="280.0"><![CDATA[3]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3306"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="320.0"><![CDATA[4]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3309"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="360.0"><![CDATA[5]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3312"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="420.0"><![CDATA[6]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3315"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="460.0"><![CDATA[7]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3318"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="500.0"><![CDATA[8]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3321"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="560.0"><![CDATA[9]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3324"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="600.0"><![CDATA[10]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3327"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="540.0">
+                    <text x="540.0" y="640.0"><![CDATA[11]]></text>
+                </g>
+            </g>
+            <g latexdraw:type="drawing" id="id3331">
+                <g latexdraw:type="drawing" id="id3332">
+                    <g latexdraw:type="rectangle" id="id3333">
+                        <rect x="801.0" y="531.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#d4f4e0"/>
+                    </g>
+                    <g latexdraw:type="rectangle" id="id3334">
+                        <rect x="801.0" y="391.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#dfe1f2"/>
+                    </g>
+                    <g latexdraw:type="rectangle" id="id3335">
+                        <rect x="801.0" y="251.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#f1daf9"/>
+                    </g>
+                    <g latexdraw:type="rectangle" id="id3336">
+                        <rect x="801.0" y="111.0" width="38.0"
+                            height="118.0" latexdraw:borderPos="outer"
+                            stroke-width="2.0" stroke="black" fill="#fafac9"/>
+                    </g>
+                </g>
+                <g latexdraw:type="square" id="id3338">
+                    <rect x="811.0" y="121.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3339">
+                    <rect x="811.0" y="161.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id3340">
+                    <rect x="811.0" y="201.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id3341">
+                    <rect x="811.0" y="261.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3342">
+                    <rect x="811.0" y="301.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3343">
+                    <rect x="811.0" y="341.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id3344">
+                    <rect x="811.0" y="401.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3345">
+                    <rect x="811.0" y="441.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id3346">
+                    <rect x="811.0" y="481.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id3347">
+                    <rect x="811.0" y="541.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3348">
+                    <rect x="811.0" y="581.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="square" id="id3349">
+                    <rect x="811.0" y="621.0" width="18.0" height="18.0"
+                        latexdraw:borderPos="outer" stroke-width="2.0"
+                        stroke="black" fill="white"/>
+                </g>
+                <g latexdraw:type="text" id="id3350"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="770.0">
+                    <text x="770.0" y="140.0"><![CDATA[0]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3353"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="770.0">
+                    <text x="770.0" y="180.0"><![CDATA[1]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3356"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="770.0">
+                    <text x="770.0" y="220.0"><![CDATA[2]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3359"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="770.0">
+                    <text x="770.0" y="280.0"><![CDATA[3]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3362"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="770.0">
+                    <text x="770.0" y="320.0"><![CDATA[4]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3365"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="770.0">
+                    <text x="770.0" y="360.0"><![CDATA[5]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3368"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="770.0">
+                    <text x="770.0" y="420.0"><![CDATA[6]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3371"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="770.0">
+                    <text x="770.0" y="460.0"><![CDATA[7]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3374"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="770.0">
+                    <text x="770.0" y="500.0"><![CDATA[8]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3377"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="770.0">
+                    <text x="770.0" y="560.0"><![CDATA[9]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3380"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="770.0">
+                    <text x="770.0" y="600.0"><![CDATA[10]]></text>
+                </g>
+                <g latexdraw:type="text" id="id3383"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="770.0">
+                    <text x="770.0" y="640.0"><![CDATA[11]]></text>
+                </g>
+                <g latexdraw:type="line" id="id3386">
+                    <line x1="640.0" x2="760.0" y1="380.0" y2="380.0"
+                        stroke-width="6.0" stroke="black"
+                        latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-3386)"/>
+                </g>
+                <g latexdraw:type="text" id="id3387"
+                    font-family="Dialog" fill="black" font-size="18" latexdraw:x="670.0">
+                    <text x="670.0" y="360.0"><![CDATA[step 2]]></text>
+                </g>
+            </g>
+            <g latexdraw:type="line" id="id3391">
+                <line x1="410.0" x2="530.0" y1="380.0" y2="380.0"
+                    stroke-width="6.0" stroke="black"
+                    latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-3391)"/>
+            </g>
+            <g latexdraw:type="text" id="id3392" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="440.0">
+                <text x="440.0" y="360.0"><![CDATA[step 1]]></text>
+            </g>
+            <g latexdraw:type="drawing" id="id3395">
+                <g latexdraw:type="rectangle" id="id3396">
+                    <rect x="1011.0" y="531.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#d4f4e0"/>
+                </g>
+                <g latexdraw:type="rectangle" id="id3397">
+                    <rect x="1011.0" y="391.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#dfe1f2"/>
+                </g>
+                <g latexdraw:type="rectangle" id="id3398">
+                    <rect x="1011.0" y="251.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#f1daf9"/>
+                </g>
+                <g latexdraw:type="rectangle" id="id3399">
+                    <rect x="1011.0" y="111.0" width="38.0"
+                        height="118.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="#fafac9"/>
+                </g>
+            </g>
+            <g latexdraw:type="drawing" id="id3401">
+                <g latexdraw:type="square" id="id3402">
+                    <rect x="1021.0" y="261.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3403">
+                    <rect x="1021.0" y="301.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3404">
+                    <rect x="1021.0" y="341.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+            </g>
+            <g latexdraw:type="text" id="id3406" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="140.0"><![CDATA[0]]></text>
+            </g>
+            <g latexdraw:type="text" id="id3409" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="180.0"><![CDATA[1]]></text>
+            </g>
+            <g latexdraw:type="text" id="id3412" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="220.0"><![CDATA[2]]></text>
+            </g>
+            <g latexdraw:type="text" id="id3415" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="280.0"><![CDATA[3]]></text>
+            </g>
+            <g latexdraw:type="text" id="id3418" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="320.0"><![CDATA[4]]></text>
+            </g>
+            <g latexdraw:type="text" id="id3421" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="360.0"><![CDATA[5]]></text>
+            </g>
+            <g latexdraw:type="text" id="id3424" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="420.0"><![CDATA[6]]></text>
+            </g>
+            <g latexdraw:type="text" id="id3427" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="460.0"><![CDATA[7]]></text>
+            </g>
+            <g latexdraw:type="text" id="id3430" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="500.0"><![CDATA[8]]></text>
+            </g>
+            <g latexdraw:type="text" id="id3433" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="560.0"><![CDATA[9]]></text>
+            </g>
+            <g latexdraw:type="text" id="id3436" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="600.0"><![CDATA[10]]></text>
+            </g>
+            <g latexdraw:type="text" id="id3439" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="980.0">
+                <text x="980.0" y="640.0"><![CDATA[11]]></text>
+            </g>
+            <g latexdraw:type="line" id="id3442">
+                <line x1="850.0" x2="970.0" y1="380.0" y2="380.0"
+                    stroke-width="6.0" stroke="black"
+                    latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-3442)"/>
+            </g>
+            <g latexdraw:type="text" id="id3443" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="880.0">
+                <text x="880.0" y="360.0"><![CDATA[step 3]]></text>
+            </g>
+            <g latexdraw:type="drawing" id="id3446">
+                <g latexdraw:type="square" id="id3447">
+                    <rect x="1021.0" y="401.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3448">
+                    <rect x="1021.0" y="441.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3449">
+                    <rect x="1021.0" y="481.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+            </g>
+            <g latexdraw:type="drawing" id="id3451">
+                <g latexdraw:type="square" id="id3452">
+                    <rect x="1021.0" y="541.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3453">
+                    <rect x="1021.0" y="581.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3454">
+                    <rect x="1021.0" y="621.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+            </g>
+            <g latexdraw:type="drawing" id="id3456">
+                <g latexdraw:type="square" id="id3457">
+                    <rect x="1021.0" y="121.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3458">
+                    <rect x="1021.0" y="161.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+                <g latexdraw:type="square" id="id3459">
+                    <rect x="1021.0" y="201.0" width="18.0"
+                        height="18.0" latexdraw:borderPos="outer"
+                        stroke-width="2.0" stroke="black" fill="red"/>
+                </g>
+            </g>
+        </g>
+    </g>
+    <metadata>
+        <latexdraw:metadata>
+            <latexdraw:displayBorders>false</latexdraw:displayBorders>
+            <latexdraw:autoAdjust>true</latexdraw:autoAdjust>
+            <latexdraw:ppc>50</latexdraw:ppc>
+            <latexdraw:zoom>1.0</latexdraw:zoom>
+            <latexdraw:unit>cm</latexdraw:unit>
+            <latexdraw:classicGrid>false</latexdraw:classicGrid>
+            <latexdraw:gridGap>10</latexdraw:gridGap>
+            <latexdraw:code>0</latexdraw:code>
+            <latexdraw:displayGrid>true</latexdraw:displayGrid>
+            <latexdraw:magneticGrid>true</latexdraw:magneticGrid>
+            <latexdraw:autoUpdate>true</latexdraw:autoUpdate>
+            <latexdraw:version>2.0.8</latexdraw:version>
+            <latexdraw:size>
+                <latexdraw:width>1867</latexdraw:width>
+                <latexdraw:height>1176</latexdraw:height>
+            </latexdraw:size>
+            <latexdraw:position>
+                <latexdraw:x>53</latexdraw:x>
+                <latexdraw:y>24</latexdraw:y>
+            </latexdraw:position>
+            <latexdraw:dividerPosition>0.8489555436529191</latexdraw:dividerPosition>
+            <latexdraw:displayCodePanel>true</latexdraw:displayCodePanel>
+            <latexdraw:displayXScale>true</latexdraw:displayXScale>
+            <latexdraw:displayYScale>true</latexdraw:displayYScale>
+            <latexdraw:delimitorOpacity>138</latexdraw:delimitorOpacity>
+        </latexdraw:metadata>
+    </metadata>
+</svg>
Index: /XIOS/dev/branch_openmp/Note/dequeue.svg
===================================================================
--- /XIOS/dev/branch_openmp/Note/dequeue.svg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/dequeue.svg	(revision 1548)
@@ -0,0 +1,449 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+    xmlns:latexdraw="http://latexdraw.sourceforge.net/namespaces/latexdraw"
+    version="1.1" baseProfile="full">
+    <defs>
+        <marker overflow="visible" orient="auto" id="arrow2-7797">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7798">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7799">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7964">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7965">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7966">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+    </defs>
+    <g>
+        <g latexdraw:type="line" id="id7797">
+            <line x1="1030.0" x2="610.0" y1="260.0" y2="470.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7797)"/>
+        </g>
+        <g latexdraw:type="line" id="id7798">
+            <line x1="430.0" x2="510.0" y1="260.0" y2="470.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7798)"/>
+        </g>
+        <g latexdraw:type="line" id="id7799">
+            <line x1="330.0" x2="410.0" y1="260.0" y2="470.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7799)"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id7800">
+            <rect x="281.0" y="121.0" width="1028.0" height="138.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id7801" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="290.0">
+            <text x="290.0" y="150.0"><![CDATA[src = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7804" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="290.0">
+            <text x="290.0" y="180.0"><![CDATA[tag = 10]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7807" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="290.0">
+            <text x="290.0" y="240.0"><![CDATA[comm1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7810" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="390.0">
+            <text x="390.0" y="150.0"><![CDATA[src = 2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7813" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="390.0">
+            <text x="390.0" y="180.0"><![CDATA[tag = 20]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7816" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="390.0">
+            <text x="390.0" y="240.0"><![CDATA[comm1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7819" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="490.0">
+            <text x="490.0" y="150.0"><![CDATA[src = 1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7822" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="490.0">
+            <text x="490.0" y="180.0"><![CDATA[tag = 10]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7825" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="490.0">
+            <text x="490.0" y="240.0"><![CDATA[comm1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7828" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="590.0">
+            <text x="590.0" y="150.0"><![CDATA[src = 2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7831" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="590.0">
+            <text x="590.0" y="180.0"><![CDATA[tag = 10]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7834" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="590.0">
+            <text x="590.0" y="240.0"><![CDATA[comm2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7837" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="690.0">
+            <text x="690.0" y="150.0"><![CDATA[src = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7840" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="690.0">
+            <text x="690.0" y="180.0"><![CDATA[tag = 30]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7843" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="690.0">
+            <text x="690.0" y="240.0"><![CDATA[comm1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7846" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="790.0">
+            <text x="790.0" y="150.0"><![CDATA[src = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7849" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="790.0">
+            <text x="790.0" y="180.0"><![CDATA[tag = 10]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7852" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="790.0">
+            <text x="790.0" y="240.0"><![CDATA[comm2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7855" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="890.0">
+            <text x="890.0" y="150.0"><![CDATA[src = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7858" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="890.0">
+            <text x="890.0" y="180.0"><![CDATA[tag = 30]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7861" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="890.0">
+            <text x="890.0" y="240.0"><![CDATA[comm1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7864" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="990.0">
+            <text x="990.0" y="150.0"><![CDATA[src = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7867" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="990.0">
+            <text x="990.0" y="180.0"><![CDATA[tag = 10]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7870" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="990.0">
+            <text x="990.0" y="240.0"><![CDATA[comm1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7873" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1090.0">
+            <text x="1090.0" y="150.0"><![CDATA[src = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7876" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1090.0">
+            <text x="1090.0" y="180.0"><![CDATA[tag = 10]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7879" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1090.0">
+            <text x="1090.0" y="240.0"><![CDATA[comm1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7882" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="290.0">
+            <text x="290.0" y="210.0"><![CDATA[dst = 1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7885" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="390.0">
+            <text x="390.0" y="210.0"><![CDATA[dst = 1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7888" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="490.0">
+            <text x="490.0" y="210.0"><![CDATA[dst = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7891" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="590.0">
+            <text x="590.0" y="210.0"><![CDATA[dst = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7894" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="690.0">
+            <text x="690.0" y="210.0"><![CDATA[dst = 2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7897" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="790.0">
+            <text x="790.0" y="210.0"><![CDATA[dst = 2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7900" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="890.0">
+            <text x="890.0" y="210.0"><![CDATA[dst = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7903" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="990.0">
+            <text x="990.0" y="210.0"><![CDATA[dst = 1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7906" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1090.0">
+            <text x="1090.0" y="210.0"><![CDATA[dst = 2]]></text>
+        </g>
+        <g latexdraw:type="line" id="id7909">
+            <line x1="380.0" x2="380.0" y1="120.0" y2="260.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id7910">
+            <line x1="480.0" x2="480.0" y1="120.0" y2="260.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id7911">
+            <line x1="580.0" x2="580.0" y1="120.0" y2="260.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id7912">
+            <line x1="680.0" x2="680.0" y1="120.0" y2="260.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id7913">
+            <line x1="780.0" x2="780.0" y1="120.0" y2="260.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id7914">
+            <line x1="880.0" x2="880.0" y1="120.0" y2="260.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id7915">
+            <line x1="980.0" x2="980.0" y1="120.0" y2="260.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id7916">
+            <line x1="1080.0" x2="1080.0" y1="120.0" y2="260.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id7917">
+            <line x1="1180.0" x2="1180.0" y1="120.0" y2="260.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id7918" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="1210.0 190.0">
+            <circle r="3.0" fill="black" cx="1210.0" cy="190.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id7919" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="1240.0 190.0">
+            <circle r="3.0" fill="black" cx="1240.0" cy="190.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id7920" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="1270.0 190.0">
+            <circle r="3.0" fill="black" cx="1270.0" cy="190.0"/>
+        </g>
+        <g latexdraw:type="text" id="id7921" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="130.0">
+            <text x="130.0" y="200.0"><![CDATA[MPI Queue]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7924" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="130.0">
+            <text x="130.0" y="370.0"><![CDATA[Local queue for dst=0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7927" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="130.0">
+            <text x="130.0" y="530.0"><![CDATA[Local queue for dst=1]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id7930">
+            <rect x="351.0" y="311.0" width="438.0" height="108.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#f0d7e6"/>
+        </g>
+        <g latexdraw:type="text" id="id7931" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="370.0">
+            <text x="370.0" y="340.0"><![CDATA[src = 1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7934" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="370.0">
+            <text x="370.0" y="370.0"><![CDATA[tag = 10]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7937" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="370.0">
+            <text x="370.0" y="400.0"><![CDATA[comm1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7940" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="470.0">
+            <text x="470.0" y="340.0"><![CDATA[src = 2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7943" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="470.0">
+            <text x="470.0" y="370.0"><![CDATA[tag = 10]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7946" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="470.0">
+            <text x="470.0" y="400.0"><![CDATA[comm2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7949" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="340.0"><![CDATA[src = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7952" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="370.0"><![CDATA[tag = 30]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7955" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="400.0"><![CDATA[comm1]]></text>
+        </g>
+        <g latexdraw:type="line" id="id7958">
+            <line x1="460.0" x2="460.0" y1="310.0" y2="420.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id7959">
+            <line x1="560.0" x2="560.0" y1="310.0" y2="420.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id7960">
+            <line x1="660.0" x2="660.0" y1="310.0" y2="420.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id7961" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="690.0 370.0">
+            <circle r="3.0" fill="black" cx="690.0" cy="370.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id7962" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="720.0 370.0">
+            <circle r="3.0" fill="black" cx="720.0" cy="370.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id7963" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="750.0 370.0">
+            <circle r="3.0" fill="black" cx="750.0" cy="370.0"/>
+        </g>
+        <g latexdraw:type="line" id="id7964">
+            <line x1="530.0" x2="410.0" y1="260.0" y2="310.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7964)"/>
+        </g>
+        <g latexdraw:type="line" id="id7965">
+            <line x1="630.0" x2="520.0" y1="260.0" y2="310.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7965)"/>
+        </g>
+        <g latexdraw:type="line" id="id7966">
+            <line x1="930.0" x2="620.0" y1="260.0" y2="310.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7966)"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id7967">
+            <rect x="351.0" y="471.0" width="438.0" height="108.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#f7f7bc"/>
+        </g>
+        <g latexdraw:type="text" id="id7968" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="370.0">
+            <text x="370.0" y="500.0"><![CDATA[src = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7971" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="370.0">
+            <text x="370.0" y="530.0"><![CDATA[tag = 10]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7974" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="370.0">
+            <text x="370.0" y="560.0"><![CDATA[comm1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7977" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="470.0">
+            <text x="470.0" y="500.0"><![CDATA[src = 2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7980" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="470.0">
+            <text x="470.0" y="530.0"><![CDATA[tag = 20]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7983" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="470.0">
+            <text x="470.0" y="560.0"><![CDATA[comm1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7986" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="500.0"><![CDATA[src = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7989" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="530.0"><![CDATA[tag = 10]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7992" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="560.0"><![CDATA[comm1]]></text>
+        </g>
+        <g latexdraw:type="line" id="id7995">
+            <line x1="460.0" x2="460.0" y1="470.0" y2="580.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id7996">
+            <line x1="560.0" x2="560.0" y1="470.0" y2="580.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id7997">
+            <line x1="660.0" x2="660.0" y1="470.0" y2="580.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id7998" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="690.0 530.0">
+            <circle r="3.0" fill="black" cx="690.0" cy="530.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id7999" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="720.0 530.0">
+            <circle r="3.0" fill="black" cx="720.0" cy="530.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id8000" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="750.0 530.0">
+            <circle r="3.0" fill="black" cx="750.0" cy="530.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id8001" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="140.0 650.0">
+            <circle r="3.0" fill="black" cx="140.0" cy="650.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id8002" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="180.0 650.0">
+            <circle r="3.0" fill="black" cx="180.0" cy="650.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id8003" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="220.0 650.0">
+            <circle r="3.0" fill="black" cx="220.0" cy="650.0"/>
+        </g>
+    </g>
+    <metadata>
+        <latexdraw:metadata>
+            <latexdraw:displayBorders>false</latexdraw:displayBorders>
+            <latexdraw:autoAdjust>true</latexdraw:autoAdjust>
+            <latexdraw:ppc>50</latexdraw:ppc>
+            <latexdraw:zoom>1.0</latexdraw:zoom>
+            <latexdraw:unit>cm</latexdraw:unit>
+            <latexdraw:classicGrid>false</latexdraw:classicGrid>
+            <latexdraw:gridGap>10</latexdraw:gridGap>
+            <latexdraw:code>0</latexdraw:code>
+            <latexdraw:displayGrid>true</latexdraw:displayGrid>
+            <latexdraw:magneticGrid>true</latexdraw:magneticGrid>
+            <latexdraw:autoUpdate>true</latexdraw:autoUpdate>
+            <latexdraw:version>2.0.8</latexdraw:version>
+            <latexdraw:size>
+                <latexdraw:width>1867</latexdraw:width>
+                <latexdraw:height>1176</latexdraw:height>
+            </latexdraw:size>
+            <latexdraw:position>
+                <latexdraw:x>53</latexdraw:x>
+                <latexdraw:y>24</latexdraw:y>
+            </latexdraw:position>
+            <latexdraw:dividerPosition>0.8971612212104981</latexdraw:dividerPosition>
+            <latexdraw:displayCodePanel>true</latexdraw:displayCodePanel>
+            <latexdraw:displayXScale>true</latexdraw:displayXScale>
+            <latexdraw:displayYScale>true</latexdraw:displayYScale>
+            <latexdraw:delimitorOpacity>138</latexdraw:delimitorOpacity>
+        </latexdraw:metadata>
+    </metadata>
+</svg>
Index: /XIOS/dev/branch_openmp/Note/intercomm.svg
===================================================================
--- /XIOS/dev/branch_openmp/Note/intercomm.svg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/intercomm.svg	(revision 1548)
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+    xmlns:latexdraw="http://latexdraw.sourceforge.net/namespaces/latexdraw"
+    version="1.1" baseProfile="full">
+    <defs>
+        <marker overflow="visible" orient="auto" id="arrow2-4778">
+            <path
+                d="M 0.0 0.0 L -7.452083333333333 2.6614583333333335 L -4.4712499999999995 0.0 L -7.452083333333333 -2.6614583333333335 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-4829">
+            <path
+                d="M 0.0 0.0 L -7.452083333333333 2.6614583333333335 L -4.4712499999999995 0.0 L -7.452083333333333 -2.6614583333333335 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+    </defs>
+    <g>
+        <g latexdraw:type="drawing" id="id4725">
+            <g latexdraw:type="rectangle" id="id4726">
+                <rect x="451.0" y="131.0" width="68.0" height="288.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="#dafde7"/>
+            </g>
+            <g latexdraw:type="rectangle" id="id4727">
+                <rect x="571.0" y="131.0" width="68.0" height="288.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="#fdfbda"/>
+            </g>
+            <g latexdraw:type="text" id="id4728" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="470.0">
+                <text x="470.0" y="110.0"><![CDATA[P0]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4731" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="590.0">
+                <text x="590.0" y="110.0"><![CDATA[P1]]></text>
+            </g>
+            <g latexdraw:type="bezierCurve" id="id4734">
+                <path
+                    d="M 490.0 60.0 C 443.8896496594617 79.3348284572912 396.3186697372353 180.40086278221315 390.0 230.0 C 383.6813302627647 279.59913721778685 410.0825675941985 409.89022434277734 450.0 440.0 C 489.9174324058015 470.10977565722266 530.8023224942342 448.92124027468685 580.0 440.0 C 629.1976775057658 431.07875972531315 632.8165092753162 451.9649595736905 660.0 410.0 C 687.1834907246838 368.0350404263095 673.9228058161007 126.73204657465942 640.0 90.0 C 606.0771941838993 53.26795342534058 619.067458154177 89.61168821217504 570.0 80.0 C 520.932541845823 70.38831178782496 536.1103503405383 40.665171542708805 490.0 60.0 z "
+                    stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+            </g>
+            <g latexdraw:type="text" id="id4737" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="430.0">
+                <text x="430.0" y="50.0"><![CDATA[commA]]></text>
+            </g>
+        </g>
+        <g latexdraw:type="square" id="id4741">
+            <rect x="471.0" y="151.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id4742">
+            <rect x="471.0" y="201.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id4743">
+            <rect x="471.0" y="251.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id4744">
+            <rect x="471.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id4745">
+            <rect x="471.0" y="351.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id4746">
+            <rect x="591.0" y="161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id4747">
+            <rect x="591.0" y="221.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id4748">
+            <rect x="591.0" y="281.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id4749">
+            <rect x="591.0" y="341.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id4750" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="170.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id4753" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="220.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id4756" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="270.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id4759" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="320.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id4762" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="370.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id4765" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="180.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id4768" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="240.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id4771" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="300.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="text" id="id4774" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="360.0"><![CDATA[8]]></text>
+        </g>
+        <g latexdraw:type="drawing" id="id4777">
+            <g latexdraw:type="line" id="id4778">
+                <line x1="470.0" x2="360.0" y1="260.0" y2="280.0"
+                    stroke-width="2.0" stroke="black"
+                    latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-4778)"/>
+            </g>
+            <g latexdraw:type="text" id="id4779" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="180.0">
+                <text x="180.0" y="300.0"><![CDATA[leader in local group]]></text>
+            </g>
+        </g>
+        <g latexdraw:type="text" id="id4783" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="180.0">
+            <text x="180.0" y="320.0"><![CDATA[rank in peer = 4]]></text>
+        </g>
+        <g latexdraw:type="drawing" id="id4786">
+            <g latexdraw:type="rectangle" id="id4787">
+                <rect x="771.0" y="131.0" width="68.0" height="288.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="#fce0f8"/>
+            </g>
+            <g latexdraw:type="rectangle" id="id4788">
+                <rect x="891.0" y="131.0" width="68.0" height="288.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="#daf1fd"/>
+            </g>
+            <g latexdraw:type="text" id="id4789" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="790.0">
+                <text x="790.0" y="110.0"><![CDATA[P2]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4792" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="910.0">
+                <text x="910.0" y="110.0"><![CDATA[P3]]></text>
+            </g>
+            <g latexdraw:type="bezierCurve" id="id4795">
+                <path
+                    d="M 870.0 60.0 C 820.002952726888 60.54338197440169 799.599708017029 59.70288738250906 770.0 100.0 C 740.400291982971 140.29711261749094 740.7836832056058 180.00614196831157 740.0 230.0 C 739.2163167943942 279.99385803168843 731.5948388690721 417.9836979257834 770.0 450.0 C 808.4051611309279 482.0163020742166 956.4526989305939 457.0753097216816 990.0 420.0 C 1023.5473010694061 382.9246902783184 1018.3066253569808 186.52813630524315 1000.0 140.0 C 981.6933746430192 93.47186369475685 992.0387164453975 117.06928738669615 950.0 90.0 C 907.9612835546025 62.930712613303854 919.997047273112 59.45661802559831 870.0 60.0 z "
+                    stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+            </g>
+            <g latexdraw:type="text" id="id4798" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="900.0">
+                <text x="900.0" y="50.0"><![CDATA[commB]]></text>
+            </g>
+            <g latexdraw:type="square" id="id4801">
+                <rect x="791.0" y="161.0" width="28.0" height="28.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="square" id="id4802">
+                <rect x="791.0" y="231.0" width="28.0" height="28.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="square" id="id4803">
+                <rect x="791.0" y="301.0" width="28.0" height="28.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="square" id="id4804">
+                <rect x="911.0" y="161.0" width="28.0" height="28.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="red"/>
+            </g>
+            <g latexdraw:type="square" id="id4805">
+                <rect x="911.0" y="221.0" width="28.0" height="28.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="square" id="id4806">
+                <rect x="911.0" y="281.0" width="28.0" height="28.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="square" id="id4807">
+                <rect x="911.0" y="341.0" width="28.0" height="28.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="text" id="id4808" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="800.0">
+                <text x="800.0" y="180.0"><![CDATA[0]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4811" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="800.0">
+                <text x="800.0" y="250.0"><![CDATA[1]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4814" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="800.0">
+                <text x="800.0" y="320.0"><![CDATA[2]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4817" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="920.0">
+                <text x="920.0" y="360.0"><![CDATA[6]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4820" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="920.0">
+                <text x="920.0" y="300.0"><![CDATA[5]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4823" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="920.0">
+                <text x="920.0" y="240.0"><![CDATA[4]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4826" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="920.0">
+                <text x="920.0" y="180.0"><![CDATA[3]]></text>
+            </g>
+            <g latexdraw:type="line" id="id4829">
+                <line x1="940.0" x2="1030.0" y1="170.0" y2="180.0"
+                    stroke-width="2.0" stroke="black"
+                    latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-4829)"/>
+            </g>
+            <g latexdraw:type="text" id="id4830" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="1020.0">
+                <text x="1020.0" y="200.0"><![CDATA[leader in local group]]></text>
+            </g>
+            <g latexdraw:type="text" id="id4833" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="1020.0">
+                <text x="1020.0" y="220.0"><![CDATA[rank in peer = 9]]></text>
+            </g>
+        </g>
+    </g>
+    <metadata>
+        <latexdraw:metadata>
+            <latexdraw:displayBorders>false</latexdraw:displayBorders>
+            <latexdraw:autoAdjust>true</latexdraw:autoAdjust>
+            <latexdraw:ppc>50</latexdraw:ppc>
+            <latexdraw:zoom>1.0</latexdraw:zoom>
+            <latexdraw:unit>cm</latexdraw:unit>
+            <latexdraw:classicGrid>false</latexdraw:classicGrid>
+            <latexdraw:gridGap>10</latexdraw:gridGap>
+            <latexdraw:code>0</latexdraw:code>
+            <latexdraw:displayGrid>true</latexdraw:displayGrid>
+            <latexdraw:magneticGrid>true</latexdraw:magneticGrid>
+            <latexdraw:autoUpdate>true</latexdraw:autoUpdate>
+            <latexdraw:version>2.0.8</latexdraw:version>
+            <latexdraw:size>
+                <latexdraw:width>1867</latexdraw:width>
+                <latexdraw:height>1176</latexdraw:height>
+            </latexdraw:size>
+            <latexdraw:position>
+                <latexdraw:x>53</latexdraw:x>
+                <latexdraw:y>24</latexdraw:y>
+            </latexdraw:position>
+            <latexdraw:dividerPosition>0.8489555436529191</latexdraw:dividerPosition>
+            <latexdraw:displayCodePanel>true</latexdraw:displayCodePanel>
+            <latexdraw:displayXScale>true</latexdraw:displayXScale>
+            <latexdraw:displayYScale>true</latexdraw:displayYScale>
+            <latexdraw:delimitorOpacity>138</latexdraw:delimitorOpacity>
+        </latexdraw:metadata>
+    </metadata>
+</svg>
Index: /XIOS/dev/branch_openmp/Note/intercomm2.svg
===================================================================
--- /XIOS/dev/branch_openmp/Note/intercomm2.svg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/intercomm2.svg	(revision 1548)
@@ -0,0 +1,1639 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+    xmlns:latexdraw="http://latexdraw.sourceforge.net/namespaces/latexdraw"
+    version="1.1" baseProfile="full">
+    <defs>
+        <marker overflow="visible" orient="auto" id="arrow2-27725">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-27878">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-28031">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-28078">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-28130">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+    </defs>
+    <g>
+        <g latexdraw:type="rectangle" id="id27572">
+            <rect x="1231.0" y="1451.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id27573">
+            <rect x="451.0" y="131.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id27574">
+            <rect x="571.0" y="131.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id27575" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="470.0">
+            <text x="470.0" y="110.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27577" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="590.0">
+            <text x="590.0" y="110.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27579" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="430.0">
+            <text x="430.0" y="50.0"><![CDATA[commA]]></text>
+        </g>
+        <g latexdraw:type="square" id="id27581">
+            <rect x="471.0" y="151.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27582">
+            <rect x="471.0" y="201.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27583">
+            <rect x="471.0" y="251.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id27584">
+            <rect x="471.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27585">
+            <rect x="471.0" y="351.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27586">
+            <rect x="591.0" y="161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27587">
+            <rect x="591.0" y="221.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27588">
+            <rect x="591.0" y="281.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27589">
+            <rect x="591.0" y="341.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id27590" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="170.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27592" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="220.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27594" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="270.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27596" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="320.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27598" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="370.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27600" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="180.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27602" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="240.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27604" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="300.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27606" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="360.0"><![CDATA[8]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id27608">
+            <rect x="771.0" y="131.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id27609">
+            <rect x="891.0" y="131.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="text" id="id27610" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="790.0">
+            <text x="790.0" y="110.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27612" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="910.0">
+            <text x="910.0" y="110.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id27614">
+            <path
+                d="M 870.0 60.0 C 820.002952726888 60.54338197440169 799.599708017029 59.70288738250906 770.0 100.0 C 740.400291982971 140.29711261749094 740.7836832056058 180.00614196831157 740.0 230.0 C 739.2163167943942 279.99385803168843 821.5948388690721 267.9836979257834 860.0 300.0 C 898.4051611309279 332.0163020742166 846.4526989305939 417.0753097216816 900.0 430.0 C 953.5473010694061 442.9246902783184 1008.3066253569809 406.52813630524315 990.0 360.0 C 971.6933746430191 313.47186369475685 992.0387164453975 117.06928738669615 950.0 90.0 C 907.9612835546025 62.930712613303854 919.997047273112 59.45661802559831 870.0 60.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id27617" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="900.0">
+            <text x="900.0" y="50.0"><![CDATA[commB]]></text>
+        </g>
+        <g latexdraw:type="square" id="id27619">
+            <rect x="791.0" y="161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id27620">
+            <rect x="791.0" y="231.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27621">
+            <rect x="791.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27622">
+            <rect x="911.0" y="161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id27623">
+            <rect x="911.0" y="221.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27624">
+            <rect x="911.0" y="281.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27625">
+            <rect x="911.0" y="341.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id27626" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="180.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27628" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="250.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27630" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="320.0"><![CDATA[9]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27633" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="360.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27636" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="300.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27639" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="240.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27642" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="180.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id27645">
+            <path
+                d="M 550.0 60.0 C 500.0830306671305 62.88030773032496 444.67479901485495 116.51259615042011 420.0 160.0 C 395.32520098514505 203.4874038495799 388.8539311123431 281.25817865167915 400.0 330.0 C 411.1460688876569 378.74182134832085 425.0772343076202 418.0467514352089 470.0 440.0 C 514.9227656923798 461.9532485647911 631.0813345877202 430.34234858633704 680.0 420.0 C 728.9186654122798 409.65765141366296 812.1548785912422 416.7070834232263 830.0 370.0 C 847.8451214087578 323.2929165767737 860.1279311817755 309.8286630453093 820.0 290.0 C 779.8720688182245 270.1713369546907 726.2539316445288 294.4333042317146 690.0 260.0 C 653.7460683554712 225.5666957682854 680.4317152390538 159.67254349810776 650.0 120.0 C 619.5682847609462 80.32745650189224 599.9169693328695 57.11969226967504 550.0 60.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id27648" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="290.0">
+            <text x="290.0" y="240.0"><![CDATA[Case 1]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id27650">
+            <rect x="1131.0" y="131.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id27651">
+            <rect x="1251.0" y="131.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id27652" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1150.0">
+            <text x="1150.0" y="110.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27654" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1270.0">
+            <text x="1270.0" y="110.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27656" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1110.0">
+            <text x="1110.0" y="50.0"><![CDATA[commA']]></text>
+        </g>
+        <g latexdraw:type="square" id="id27658">
+            <rect x="1151.0" y="151.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27659">
+            <rect x="1151.0" y="201.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27660">
+            <rect x="1151.0" y="251.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id27661">
+            <rect x="1151.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27662">
+            <rect x="1151.0" y="351.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27663">
+            <rect x="1271.0" y="161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27664">
+            <rect x="1271.0" y="221.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27665">
+            <rect x="1271.0" y="281.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27666">
+            <rect x="1271.0" y="341.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id27667" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="170.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27669" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="220.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27671" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="270.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27673" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="320.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27675" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="370.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27677" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="180.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27679" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="240.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27681" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="300.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27683" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="360.0"><![CDATA[8]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id27685">
+            <rect x="1451.0" y="131.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id27686">
+            <rect x="1571.0" y="131.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="text" id="id27687" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1470.0">
+            <text x="1470.0" y="110.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27689" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1590.0">
+            <text x="1590.0" y="110.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id27691">
+            <path
+                d="M 1550.0 60.0 C 1500.002952726888 60.54338197440168 1479.5997080170291 59.70288738250906 1450.0 100.0 C 1420.4002919829709 140.29711261749094 1420.783683205606 180.00614196831157 1420.0 230.0 C 1419.216316794394 279.99385803168843 1401.5948388690722 397.9836979257834 1440.0 430.0 C 1478.4051611309278 462.0163020742166 1526.452698930594 417.0753097216816 1580.0 430.0 C 1633.547301069406 442.9246902783184 1688.306625356981 406.52813630524315 1670.0 360.0 C 1651.693374643019 313.47186369475685 1672.0387164453975 117.06928738669615 1630.0 90.0 C 1587.9612835546025 62.930712613303854 1599.997047273112 59.45661802559832 1550.0 60.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id27694" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1580.0">
+            <text x="1580.0" y="50.0"><![CDATA[commB']]></text>
+        </g>
+        <g latexdraw:type="square" id="id27696">
+            <rect x="1471.0" y="161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id27697">
+            <rect x="1471.0" y="231.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27698">
+            <rect x="1471.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27699">
+            <rect x="1591.0" y="161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id27700">
+            <rect x="1591.0" y="221.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27701">
+            <rect x="1591.0" y="281.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27702">
+            <rect x="1591.0" y="341.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id27703" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1480.0">
+            <text x="1480.0" y="180.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27705" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1480.0">
+            <text x="1480.0" y="250.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27707" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1480.0">
+            <text x="1480.0" y="320.0"><![CDATA[9]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27710" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1600.0">
+            <text x="1600.0" y="360.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27713" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1600.0">
+            <text x="1600.0" y="300.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27716" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1600.0">
+            <text x="1600.0" y="240.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27719" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1600.0">
+            <text x="1600.0" y="180.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id27722">
+            <path
+                d="M 1230.0 60.0 C 1180.0830306671305 62.88030773032496 1124.674799014855 116.51259615042011 1100.0 160.0 C 1075.325200985145 203.4874038495799 1068.8539311123432 281.25817865167915 1080.0 330.0 C 1091.1460688876568 378.74182134832085 1105.07723430762 418.0467514352089 1150.0 440.0 C 1194.92276569238 461.9532485647911 1241.0813345877202 450.34234858633704 1290.0 440.0 C 1338.9186654122798 429.65765141366296 1332.1548785912423 416.7070834232263 1360.0 390.0 C 1387.8451214087577 363.2929165767737 1390.1279311817755 339.8286630453093 1380.0 320.0 C 1369.8720688182245 300.1713369546907 1370.0 290.0 1370.0 260.0 C 1370.0 230.0 1360.4317152390538 159.67254349810776 1330.0 120.0 C 1299.5682847609462 80.32745650189224 1279.9169693328695 57.11969226967504 1230.0 60.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id27725">
+            <line x1="1000.0" x2="1060.0" y1="260.0" y2="260.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-27725)"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id27726">
+            <rect x="451.0" y="571.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id27727">
+            <rect x="571.0" y="571.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id27728" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="470.0">
+            <text x="470.0" y="550.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27730" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="590.0">
+            <text x="590.0" y="550.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27732" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="430.0">
+            <text x="430.0" y="490.0"><![CDATA[commA]]></text>
+        </g>
+        <g latexdraw:type="square" id="id27734">
+            <rect x="471.0" y="591.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27735">
+            <rect x="471.0" y="641.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27736">
+            <rect x="471.0" y="691.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id27737">
+            <rect x="471.0" y="741.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27738">
+            <rect x="471.0" y="791.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27739">
+            <rect x="591.0" y="601.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27740">
+            <rect x="591.0" y="661.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27741">
+            <rect x="591.0" y="721.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27742">
+            <rect x="591.0" y="781.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id27743" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="610.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27745" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="660.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27747" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="710.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27749" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="760.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27751" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="810.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27753" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="620.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27755" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="680.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27757" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="740.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27759" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="800.0"><![CDATA[8]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id27761">
+            <rect x="771.0" y="571.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id27762">
+            <rect x="891.0" y="571.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="text" id="id27763" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="790.0">
+            <text x="790.0" y="550.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27765" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="910.0">
+            <text x="910.0" y="550.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id27767">
+            <path
+                d="M 870.0 500.0 C 820.002952726888 500.54338197440165 799.599708017029 499.70288738250906 770.0 540.0 C 740.400291982971 580.2971126174909 740.7836832056058 620.0061419683116 740.0 670.0 C 739.2163167943942 719.9938580316884 821.5948388690721 707.9836979257834 860.0 740.0 C 898.4051611309279 772.0163020742166 846.4526989305939 857.0753097216816 900.0 870.0 C 953.5473010694061 882.9246902783184 1008.3066253569809 846.5281363052432 990.0 800.0 C 971.6933746430191 753.4718636947568 992.0387164453975 557.0692873866961 950.0 530.0 C 907.9612835546025 502.93071261330385 919.997047273112 499.45661802559835 870.0 500.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id27770" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="900.0">
+            <text x="900.0" y="490.0"><![CDATA[commB]]></text>
+        </g>
+        <g latexdraw:type="square" id="id27772">
+            <rect x="791.0" y="601.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id27773">
+            <rect x="791.0" y="671.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27774">
+            <rect x="791.0" y="741.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27775">
+            <rect x="911.0" y="601.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id27776">
+            <rect x="911.0" y="661.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27777">
+            <rect x="911.0" y="721.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27778">
+            <rect x="911.0" y="781.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id27779" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="620.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27781" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="690.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27783" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="760.0"><![CDATA[9]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27786" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="800.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27789" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="740.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27792" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="680.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27795" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="620.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id27798">
+            <path
+                d="M 550.0 500.0 C 500.0830306671305 502.88030773032494 444.67479901485495 556.5125961504201 420.0 600.0 C 395.32520098514505 643.4874038495799 388.8539311123431 721.2581786516791 400.0 770.0 C 411.1460688876569 818.7418213483209 425.0772343076202 858.0467514352089 470.0 880.0 C 514.9227656923798 901.9532485647911 631.0813345877202 870.342348586337 680.0 860.0 C 728.9186654122798 849.657651413663 812.1548785912422 856.7070834232263 830.0 810.0 C 847.8451214087578 763.2929165767737 860.1279311817755 749.8286630453093 820.0 730.0 C 779.8720688182245 710.1713369546907 726.2539316445288 734.4333042317146 690.0 700.0 C 653.7460683554712 665.5666957682854 680.4317152390538 599.6725434981078 650.0 560.0 C 619.5682847609462 520.3274565018922 599.9169693328695 497.11969226967506 550.0 500.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id27801" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="290.0">
+            <text x="290.0" y="680.0"><![CDATA[Case 2]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id27803">
+            <rect x="1131.0" y="571.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id27804">
+            <rect x="1251.0" y="571.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id27805" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1150.0">
+            <text x="1150.0" y="550.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27807" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1270.0">
+            <text x="1270.0" y="550.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27809" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1110.0">
+            <text x="1110.0" y="490.0"><![CDATA[commA']]></text>
+        </g>
+        <g latexdraw:type="square" id="id27811">
+            <rect x="1151.0" y="591.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27812">
+            <rect x="1151.0" y="641.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27813">
+            <rect x="1151.0" y="691.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id27814">
+            <rect x="1151.0" y="741.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27815">
+            <rect x="1151.0" y="791.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27816">
+            <rect x="1271.0" y="601.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27817">
+            <rect x="1271.0" y="661.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27818">
+            <rect x="1271.0" y="721.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27819">
+            <rect x="1271.0" y="781.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id27820" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="610.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27822" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="660.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27824" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="710.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27826" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="760.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27828" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="810.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27830" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="620.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27832" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="680.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27834" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="740.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27836" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="800.0"><![CDATA[8]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id27838">
+            <rect x="1451.0" y="571.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id27839">
+            <rect x="1571.0" y="571.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="text" id="id27840" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1470.0">
+            <text x="1470.0" y="550.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27842" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1590.0">
+            <text x="1590.0" y="550.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id27844">
+            <path
+                d="M 1550.0 500.0 C 1500.002952726888 500.54338197440165 1479.5997080170291 499.70288738250906 1450.0 540.0 C 1420.4002919829709 580.2971126174909 1420.783683205606 620.0061419683116 1420.0 670.0 C 1419.216316794394 719.9938580316884 1401.5948388690722 837.9836979257834 1440.0 870.0 C 1478.4051611309278 902.0163020742166 1526.452698930594 857.0753097216816 1580.0 870.0 C 1633.547301069406 882.9246902783184 1688.306625356981 846.5281363052432 1670.0 800.0 C 1651.693374643019 753.4718636947568 1672.0387164453975 557.0692873866961 1630.0 530.0 C 1587.9612835546025 502.93071261330385 1599.997047273112 499.45661802559835 1550.0 500.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id27847" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1580.0">
+            <text x="1580.0" y="490.0"><![CDATA[commB']]></text>
+        </g>
+        <g latexdraw:type="square" id="id27849">
+            <rect x="1471.0" y="601.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id27850">
+            <rect x="1471.0" y="671.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27851">
+            <rect x="1471.0" y="741.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27852">
+            <rect x="1591.0" y="601.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id27853">
+            <rect x="1591.0" y="661.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27854">
+            <rect x="1591.0" y="721.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27855">
+            <rect x="1591.0" y="781.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id27856" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1480.0">
+            <text x="1480.0" y="620.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27858" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1480.0">
+            <text x="1480.0" y="690.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27860" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1480.0">
+            <text x="1480.0" y="760.0"><![CDATA[9]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27863" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1600.0">
+            <text x="1600.0" y="800.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27866" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1600.0">
+            <text x="1600.0" y="740.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27869" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1600.0">
+            <text x="1600.0" y="680.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27872" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1600.0">
+            <text x="1600.0" y="620.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id27875">
+            <path
+                d="M 1230.0 500.0 C 1180.0830306671305 502.88030773032494 1124.674799014855 556.5125961504201 1100.0 600.0 C 1075.325200985145 643.4874038495799 1068.8539311123432 721.2581786516791 1080.0 770.0 C 1091.1460688876568 818.7418213483209 1105.07723430762 858.0467514352089 1150.0 880.0 C 1194.92276569238 901.9532485647911 1241.0813345877202 890.342348586337 1290.0 880.0 C 1338.9186654122798 869.657651413663 1332.1548785912423 856.7070834232263 1360.0 830.0 C 1387.8451214087577 803.2929165767737 1390.1279311817755 779.8286630453093 1380.0 760.0 C 1369.8720688182245 740.1713369546907 1370.0 730.0 1370.0 700.0 C 1370.0 670.0 1360.4317152390538 599.6725434981078 1330.0 560.0 C 1299.5682847609462 520.3274565018922 1279.9169693328695 497.11969226967506 1230.0 500.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id27878">
+            <line x1="1000.0" x2="1060.0" y1="700.0" y2="700.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-27878)"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id27879">
+            <rect x="451.0" y="1011.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id27880">
+            <rect x="571.0" y="1011.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id27881" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="470.0">
+            <text x="470.0" y="990.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27883" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="590.0">
+            <text x="590.0" y="990.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27885" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="430.0">
+            <text x="430.0" y="930.0"><![CDATA[commA]]></text>
+        </g>
+        <g latexdraw:type="square" id="id27887">
+            <rect x="471.0" y="1031.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27888">
+            <rect x="471.0" y="1081.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27889">
+            <rect x="471.0" y="1131.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id27890">
+            <rect x="471.0" y="1181.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27891">
+            <rect x="471.0" y="1231.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27892">
+            <rect x="591.0" y="1041.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27893">
+            <rect x="591.0" y="1101.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27894">
+            <rect x="591.0" y="1161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27895">
+            <rect x="591.0" y="1221.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id27896" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="1050.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27898" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="1100.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27900" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="1150.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27902" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="1200.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27904" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="1250.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27906" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="1060.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27908" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="1120.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27910" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="1180.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27912" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="1240.0"><![CDATA[8]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id27914">
+            <rect x="771.0" y="1011.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id27915">
+            <rect x="891.0" y="1011.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="text" id="id27916" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="790.0">
+            <text x="790.0" y="990.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27918" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="910.0">
+            <text x="910.0" y="990.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id27920">
+            <path
+                d="M 870.0 940.0 C 820.002952726888 940.5433819744017 799.599708017029 939.7028873825091 770.0 980.0 C 740.400291982971 1020.2971126174909 740.7836832056058 1060.0061419683116 740.0 1110.0 C 739.2163167943942 1159.9938580316884 821.5948388690721 1147.9836979257834 860.0 1180.0 C 898.4051611309279 1212.0163020742166 846.4526989305939 1297.0753097216816 900.0 1310.0 C 953.5473010694061 1322.9246902783184 1008.3066253569809 1286.5281363052432 990.0 1240.0 C 971.6933746430191 1193.4718636947568 992.0387164453975 997.0692873866961 950.0 970.0 C 907.9612835546025 942.9307126133039 919.997047273112 939.4566180255983 870.0 940.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id27923" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="900.0">
+            <text x="900.0" y="930.0"><![CDATA[commB]]></text>
+        </g>
+        <g latexdraw:type="square" id="id27925">
+            <rect x="791.0" y="1041.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id27926">
+            <rect x="791.0" y="1111.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27927">
+            <rect x="791.0" y="1181.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id27928">
+            <rect x="911.0" y="1041.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id27929">
+            <rect x="911.0" y="1101.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27930">
+            <rect x="911.0" y="1161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27931">
+            <rect x="911.0" y="1221.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id27932" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="1060.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27934" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="1130.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27936" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="1200.0"><![CDATA[9]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27939" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="1240.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27942" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="1180.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27945" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="1120.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27948" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="1060.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id27951">
+            <path
+                d="M 550.0 940.0 C 500.0830306671305 942.880307730325 444.67479901485495 996.5125961504201 420.0 1040.0 C 395.32520098514505 1083.48740384958 388.8539311123431 1161.2581786516791 400.0 1210.0 C 411.1460688876569 1258.7418213483209 425.0772343076202 1298.046751435209 470.0 1320.0 C 514.9227656923798 1341.953248564791 631.0813345877202 1310.342348586337 680.0 1300.0 C 728.9186654122798 1289.657651413663 812.1548785912422 1296.7070834232263 830.0 1250.0 C 847.8451214087578 1203.2929165767737 860.1279311817755 1189.8286630453094 820.0 1170.0 C 779.8720688182245 1150.1713369546906 726.2539316445288 1174.4333042317146 690.0 1140.0 C 653.7460683554712 1105.5666957682854 680.4317152390538 1039.6725434981076 650.0 1000.0 C 619.5682847609462 960.3274565018924 599.9169693328695 937.119692269675 550.0 940.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id27954" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="290.0">
+            <text x="290.0" y="1120.0"><![CDATA[Case 3a]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id27956">
+            <rect x="1131.0" y="1011.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id27957">
+            <rect x="1251.0" y="1011.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id27958" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1150.0">
+            <text x="1150.0" y="990.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27960" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1270.0">
+            <text x="1270.0" y="990.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27962" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1110.0">
+            <text x="1110.0" y="930.0"><![CDATA[commA']]></text>
+        </g>
+        <g latexdraw:type="square" id="id27964">
+            <rect x="1151.0" y="1031.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id27965">
+            <rect x="1151.0" y="1081.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27966">
+            <rect x="1151.0" y="1131.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id27967">
+            <rect x="1151.0" y="1181.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27968">
+            <rect x="1151.0" y="1231.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27969">
+            <rect x="1271.0" y="1041.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27970">
+            <rect x="1271.0" y="1101.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27971">
+            <rect x="1271.0" y="1161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id27972">
+            <rect x="1271.0" y="1221.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id27973" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="1050.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27975" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="1100.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27977" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="1150.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27979" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="1200.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27981" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="1250.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27983" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="1060.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27985" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="1120.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27987" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="1180.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27989" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="1240.0"><![CDATA[8]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id27991">
+            <rect x="1451.0" y="1011.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id27992">
+            <rect x="1571.0" y="1011.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="text" id="id27993" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1470.0">
+            <text x="1470.0" y="990.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id27995" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1590.0">
+            <text x="1590.0" y="990.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id27997">
+            <path
+                d="M 1550.0 940.0 C 1500.002952726888 940.5433819744017 1479.5997080170291 939.7028873825091 1450.0 980.0 C 1420.4002919829709 1020.2971126174909 1420.783683205606 1060.0061419683116 1420.0 1110.0 C 1419.216316794394 1159.9938580316884 1401.5948388690722 1277.9836979257834 1440.0 1310.0 C 1478.4051611309278 1342.0163020742166 1526.452698930594 1297.0753097216816 1580.0 1310.0 C 1633.547301069406 1322.9246902783184 1688.306625356981 1286.5281363052432 1670.0 1240.0 C 1651.693374643019 1193.4718636947568 1672.0387164453975 997.0692873866961 1630.0 970.0 C 1587.9612835546025 942.9307126133039 1599.997047273112 939.4566180255983 1550.0 940.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id28000" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1580.0">
+            <text x="1580.0" y="930.0"><![CDATA[commB']]></text>
+        </g>
+        <g latexdraw:type="square" id="id28002">
+            <rect x="1471.0" y="1041.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id28003">
+            <rect x="1471.0" y="1111.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id28004">
+            <rect x="1471.0" y="1181.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id28005">
+            <rect x="1591.0" y="1041.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id28006">
+            <rect x="1591.0" y="1101.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id28007">
+            <rect x="1591.0" y="1161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id28008">
+            <rect x="1591.0" y="1221.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id28009" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1480.0">
+            <text x="1480.0" y="1060.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28011" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1480.0">
+            <text x="1480.0" y="1130.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28013" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1480.0">
+            <text x="1480.0" y="1200.0"><![CDATA[9]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28016" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1600.0">
+            <text x="1600.0" y="1240.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28019" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1600.0">
+            <text x="1600.0" y="1180.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28022" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1600.0">
+            <text x="1600.0" y="1120.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28025" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1600.0">
+            <text x="1600.0" y="1060.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id28028">
+            <path
+                d="M 1230.0 940.0 C 1180.0830306671305 942.880307730325 1124.674799014855 996.5125961504201 1100.0 1040.0 C 1075.325200985145 1083.48740384958 1068.8539311123432 1161.2581786516791 1080.0 1210.0 C 1091.1460688876568 1258.7418213483209 1105.07723430762 1298.046751435209 1150.0 1320.0 C 1194.92276569238 1341.953248564791 1241.0813345877202 1330.342348586337 1290.0 1320.0 C 1338.9186654122798 1309.657651413663 1332.1548785912423 1296.7070834232263 1360.0 1270.0 C 1387.8451214087577 1243.2929165767737 1390.1279311817755 1219.8286630453094 1380.0 1200.0 C 1369.8720688182245 1180.1713369546906 1370.0 1170.0 1370.0 1140.0 C 1370.0 1110.0 1360.4317152390538 1039.6725434981076 1330.0 1000.0 C 1299.5682847609462 960.3274565018924 1279.9169693328695 937.119692269675 1230.0 940.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id28031">
+            <line x1="1000.0" x2="1060.0" y1="1140.0" y2="1140.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-28031)"/>
+        </g>
+        <g latexdraw:type="text" id="id28032" font-family="Dialog"
+            fill="black" font-size="11" latexdraw:x="780.0">
+            <text x="780.0" y="1080.0"><![CDATA[peer rank = 5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28034" font-family="Dialog"
+            fill="black" font-size="11" latexdraw:x="780.0">
+            <text x="780.0" y="1220.0"><![CDATA[peer rank = 2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28036" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="290.0">
+            <text x="290.0" y="1650.0"><![CDATA[commA]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id28038">
+            <rect x="391.0" y="1451.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id28039">
+            <rect x="511.0" y="1451.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="text" id="id28040" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="410.0">
+            <text x="410.0" y="1430.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28042" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="530.0">
+            <text x="530.0" y="1430.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id28044">
+            <path
+                d="M 490.4027962957688 1390.0 C 440.5513575601292 1390.5433819744017 420.20753409180213 1389.702887382509 390.69403056941917 1430.0 C 361.1805270470362 1470.297112617491 371.5628017030285 1450.0061419683116 370.0 1500.0 C 368.4371982969715 1549.9938580316884 442.13860758426983 1517.9836979257834 480.4319197231338 1550.0 C 518.7252318619977 1582.0163020742166 466.9240730375964 1747.0753097216816 520.3154260136737 1760.0 C 573.706778989751 1772.9246902783184 628.3066253569809 1736.5281363052432 610.0533151673883 1690.0 C 591.8000049777957 1643.4718636947568 612.0860941717543 1447.069287386696 570.1698088768485 1420.0 C 528.2535235819427 1392.930712613304 540.2542350314084 1389.4566180255983 490.4027962957688 1390.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id28047" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="550.0">
+            <text x="550.0" y="1390.0"><![CDATA[commB]]></text>
+        </g>
+        <g latexdraw:type="square" id="id28049">
+            <rect x="411.0" y="1481.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id28050">
+            <rect x="411.0" y="1551.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id28051">
+            <rect x="411.0" y="1621.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id28052">
+            <rect x="531.0" y="1481.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id28053">
+            <rect x="531.0" y="1541.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id28054">
+            <rect x="531.0" y="1601.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id28055">
+            <rect x="531.0" y="1661.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id28056" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="420.0">
+            <text x="420.0" y="1500.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28058" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="420.0">
+            <text x="420.0" y="1570.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28061" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="420.0">
+            <text x="420.0" y="1640.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28064" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="540.0">
+            <text x="540.0" y="1680.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28067" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="540.0">
+            <text x="540.0" y="1620.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28070" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="540.0">
+            <text x="540.0" y="1560.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28073" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="540.0">
+            <text x="540.0" y="1500.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28076" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="630.0">
+            <text x="630.0" y="1830.0"><![CDATA[Case 3b]]></text>
+        </g>
+        <g latexdraw:type="line" id="id28078">
+            <line x1="630.0" x2="690.0" y1="1580.0" y2="1580.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-28078)"/>
+        </g>
+        <g latexdraw:type="text" id="id28079" font-family="Dialog"
+            fill="black" font-size="11" latexdraw:x="400.0">
+            <text x="400.0" y="1520.0"><![CDATA[peer rank = 5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28081" font-family="Dialog"
+            fill="black" font-size="11" latexdraw:x="400.0">
+            <text x="400.0" y="1660.0"><![CDATA[peer rank = 2]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id28083">
+            <path
+                d="M 370.0 1630.0 C 370.0 1670.0 345.58691998999007 1737.0331037354936 390.0 1760.0 C 434.41308001000993 1782.9668962645064 445.50374893212995 1763.588228727709 470.0 1720.0 C 494.49625106787005 1676.411771272291 501.74205461191366 1577.5245504373108 460.0 1550.0 C 418.25794538808634 1522.4754495626892 370.0 1590.0 370.0 1630.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id28086" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="750.0">
+            <text x="750.0" y="1390.0"><![CDATA[commA']]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id28088">
+            <rect x="751.0" y="1451.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id28089">
+            <rect x="871.0" y="1451.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="text" id="id28090" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="770.0">
+            <text x="770.0" y="1430.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28092" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="890.0">
+            <text x="890.0" y="1430.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28094" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="870.0">
+            <text x="870.0" y="1390.0"><![CDATA[commB']]></text>
+        </g>
+        <g latexdraw:type="square" id="id28096">
+            <rect x="771.0" y="1481.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id28097">
+            <rect x="771.0" y="1551.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id28098">
+            <rect x="771.0" y="1621.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id28099">
+            <rect x="891.0" y="1481.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id28100">
+            <rect x="891.0" y="1541.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id28101">
+            <rect x="891.0" y="1601.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id28102">
+            <rect x="891.0" y="1661.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id28103" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="780.0">
+            <text x="780.0" y="1500.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28105" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="780.0">
+            <text x="780.0" y="1570.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28107" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="780.0">
+            <text x="780.0" y="1640.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28110" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="900.0">
+            <text x="900.0" y="1680.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28113" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="900.0">
+            <text x="900.0" y="1620.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28116" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="900.0">
+            <text x="900.0" y="1560.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28119" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="900.0">
+            <text x="900.0" y="1500.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id28122">
+            <path
+                d="M 730.0 1630.0 C 740.0 1710.0 705.5869199899901 1737.0331037354936 750.0 1760.0 C 794.4130800100099 1782.9668962645064 805.5037489321298 1763.588228727709 830.0 1720.0 C 854.4962510678702 1676.411771272291 850.0 1420.0 790.0 1400.0 C 730.0 1380.0 720.0 1550.0 730.0 1630.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id28125">
+            <path
+                d="M 850.0 1630.0 C 850.0 1670.0 835.5869199899901 1737.0331037354936 880.0 1760.0 C 924.4130800100099 1782.9668962645064 955.5037489321298 1763.588228727709 960.0 1720.0 C 964.4962510678702 1676.411771272291 991.7420546119138 1437.5245504373108 920.0 1400.0 C 848.2579453880862 1362.4754495626892 850.0 1590.0 850.0 1630.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id28128" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1340.0">
+            <text x="1340.0" y="1830.0"><![CDATA[Case 3c]]></text>
+        </g>
+        <g latexdraw:type="line" id="id28130">
+            <line x1="1350.0" x2="1410.0" y1="1580.0" y2="1580.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-28130)"/>
+        </g>
+        <g latexdraw:type="text" id="id28131" font-family="Dialog"
+            fill="black" font-size="11" latexdraw:x="1240.0">
+            <text x="1240.0" y="1520.0"><![CDATA[peer rank = 5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28133" font-family="Dialog"
+            fill="black" font-size="11" latexdraw:x="1250.0">
+            <text x="1250.0" y="1700.0"><![CDATA[peer rank = 2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28135" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1110.0">
+            <text x="1110.0" y="1650.0"><![CDATA[commA]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id28137">
+            <rect x="1481.0" y="1451.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="text" id="id28138" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1500.0">
+            <text x="1500.0" y="1430.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="square" id="id28140">
+            <rect x="1501.0" y="1481.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id28141">
+            <rect x="1501.0" y="1541.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id28142">
+            <rect x="1501.0" y="1601.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id28143">
+            <rect x="1501.0" y="1661.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id28144" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1510.0">
+            <text x="1510.0" y="1680.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28147" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1510.0">
+            <text x="1510.0" y="1620.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28150" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1510.0">
+            <text x="1510.0" y="1560.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28153" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1510.0">
+            <text x="1510.0" y="1500.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id28156">
+            <path
+                d="M 1460.0 1630.0 C 1470.0 1720.0 1445.58691998999 1737.0331037354936 1490.0 1760.0 C 1534.41308001001 1782.9668962645064 1545.5037489321298 1763.588228727709 1570.0 1720.0 C 1594.4962510678702 1676.411771272291 1591.7420546119138 1407.5245504373108 1530.0 1400.0 C 1468.2579453880862 1392.4754495626892 1450.0 1540.0 1460.0 1630.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="square" id="id28159">
+            <rect x="1251.0" y="1481.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id28160">
+            <rect x="1251.0" y="1541.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id28161">
+            <rect x="1251.0" y="1601.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id28162">
+            <rect x="1251.0" y="1661.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="text" id="id28163" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1260.0">
+            <text x="1260.0" y="1680.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28166" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1260.0">
+            <text x="1260.0" y="1620.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28169" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1260.0">
+            <text x="1260.0" y="1560.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28172" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1260.0">
+            <text x="1260.0" y="1500.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28175" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1250.0">
+            <text x="1250.0" y="1430.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id28177">
+            <path
+                d="M 1210.0 1440.0 C 1166.023822300205 1463.7927677018863 1179.4378907412126 1540.764485766804 1220.0 1570.0 C 1260.5621092587874 1599.235514233196 1329.8040938938336 1588.9493973269082 1340.0 1540.0 C 1350.1959061061664 1491.0506026730918 1253.976177699795 1416.2072322981137 1210.0 1440.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id28180">
+            <path
+                d="M 1200.0 1600.0 C 1161.987459742328 1632.4814836970024 1183.8237194239625 1627.3995031108318 1210.0 1670.0 C 1236.1762805760375 1712.6004968891682 1263.5916132154814 1758.6081067295554 1310.0 1740.0 C 1356.4083867845186 1721.3918932704446 1355.5973976802102 1682.9508234147115 1330.0 1640.0 C 1304.4026023197898 1597.0491765852885 1238.012540257672 1567.5185163029976 1200.0 1600.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id28183" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1110.0">
+            <text x="1110.0" y="1500.0"><![CDATA[commB]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28185" font-family="Dialog"
+            fill="black" font-size="11" latexdraw:x="950.0">
+            <text x="950.0" y="180.0"><![CDATA[peer rank = 5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id28187" font-family="Dialog"
+            fill="black" font-size="11" latexdraw:x="510.0">
+            <text x="510.0" y="270.0"><![CDATA[peer rank = 1]]></text>
+        </g>
+    </g>
+    <metadata>
+        <latexdraw:metadata>
+            <latexdraw:displayBorders>false</latexdraw:displayBorders>
+            <latexdraw:autoAdjust>true</latexdraw:autoAdjust>
+            <latexdraw:ppc>50</latexdraw:ppc>
+            <latexdraw:zoom>1.0</latexdraw:zoom>
+            <latexdraw:unit>cm</latexdraw:unit>
+            <latexdraw:classicGrid>false</latexdraw:classicGrid>
+            <latexdraw:gridGap>10</latexdraw:gridGap>
+            <latexdraw:code>0</latexdraw:code>
+            <latexdraw:displayGrid>true</latexdraw:displayGrid>
+            <latexdraw:magneticGrid>true</latexdraw:magneticGrid>
+            <latexdraw:autoUpdate>true</latexdraw:autoUpdate>
+            <latexdraw:version>2.0.8</latexdraw:version>
+            <latexdraw:size>
+                <latexdraw:width>1867</latexdraw:width>
+                <latexdraw:height>1176</latexdraw:height>
+            </latexdraw:size>
+            <latexdraw:position>
+                <latexdraw:x>53</latexdraw:x>
+                <latexdraw:y>24</latexdraw:y>
+            </latexdraw:position>
+            <latexdraw:dividerPosition>0.922335297268345</latexdraw:dividerPosition>
+            <latexdraw:displayCodePanel>true</latexdraw:displayCodePanel>
+            <latexdraw:displayXScale>true</latexdraw:displayXScale>
+            <latexdraw:displayYScale>true</latexdraw:displayYScale>
+            <latexdraw:delimitorOpacity>138</latexdraw:delimitorOpacity>
+        </latexdraw:metadata>
+    </metadata>
+</svg>
Index: /XIOS/dev/branch_openmp/Note/intercomm_step.svg
===================================================================
--- /XIOS/dev/branch_openmp/Note/intercomm_step.svg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/intercomm_step.svg	(revision 1548)
@@ -0,0 +1,662 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+    xmlns:latexdraw="http://latexdraw.sourceforge.net/namespaces/latexdraw"
+    version="1.1" baseProfile="full">
+    <defs>
+        <marker overflow="visible" orient="auto" id="arrow2-36713">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-36771">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow1-36816">
+            <path
+                d="M 0.0 0.0 L 4.940833333333333 1.7645833333333332 L 2.9644999999999997 0.0 L 4.940833333333333 -1.7645833333333332 z "
+                latexdraw:arrSizeNum="3.0" fill="#0ac4d2"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-36816">
+            <path
+                d="M 0.0 0.0 L 4.940833333333333 1.7645833333333332 L 2.9644999999999997 0.0 L 4.940833333333333 -1.7645833333333332 z "
+                latexdraw:arrSizeNum="3.0" fill="#0ac4d2"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-36819">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow1-36903">
+            <path
+                d="M 0.0 0.0 L 6.526041666666666 2.3307291666666665 L 3.9156249999999995 0.0 L 6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="#02afbd"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-36903">
+            <path
+                d="M 0.0 0.0 L 6.526041666666666 2.3307291666666665 L 3.9156249999999995 0.0 L 6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="#02afbd"/>
+        </marker>
+    </defs>
+    <g>
+        <g latexdraw:type="drawing" id="id36618">
+            <g latexdraw:type="rectangle" id="id36619">
+                <rect x="451.0" y="131.0" width="68.0" height="288.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="#dafde7"/>
+            </g>
+            <g latexdraw:type="rectangle" id="id36620">
+                <rect x="571.0" y="131.0" width="68.0" height="288.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="#fdfbda"/>
+            </g>
+            <g latexdraw:type="text" id="id36621" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="470.0">
+                <text x="470.0" y="110.0"><![CDATA[P0]]></text>
+            </g>
+            <g latexdraw:type="text" id="id36624" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="590.0">
+                <text x="590.0" y="110.0"><![CDATA[P1]]></text>
+            </g>
+            <g latexdraw:type="bezierCurve" id="id36627">
+                <path
+                    d="M 490.0 60.0 C 443.8896496594617 79.3348284572912 396.3186697372353 180.40086278221315 390.0 230.0 C 383.6813302627647 279.59913721778685 410.0825675941985 409.89022434277734 450.0 440.0 C 489.9174324058015 470.10977565722266 530.8023224942342 448.92124027468685 580.0 440.0 C 629.1976775057658 431.07875972531315 632.8165092753162 451.9649595736905 660.0 410.0 C 687.1834907246838 368.0350404263095 673.9228058161007 126.73204657465942 640.0 90.0 C 606.0771941838993 53.26795342534058 619.067458154177 89.61168821217504 570.0 80.0 C 520.932541845823 70.38831178782496 536.1103503405383 40.665171542708805 490.0 60.0 z "
+                    stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+            </g>
+            <g latexdraw:type="text" id="id36630" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="430.0">
+                <text x="430.0" y="50.0"><![CDATA[commA]]></text>
+            </g>
+        </g>
+        <g latexdraw:type="square" id="id36634">
+            <rect x="471.0" y="151.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36635">
+            <rect x="471.0" y="201.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36636">
+            <rect x="471.0" y="251.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id36637">
+            <rect x="471.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36638">
+            <rect x="471.0" y="351.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36639">
+            <rect x="591.0" y="161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36640">
+            <rect x="591.0" y="221.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36641">
+            <rect x="591.0" y="281.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36642">
+            <rect x="591.0" y="341.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id36643" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="170.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36646" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="220.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36649" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="270.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36652" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="320.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36655" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="370.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36658" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="180.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36661" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="240.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36664" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="300.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36667" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="600.0">
+            <text x="600.0" y="360.0"><![CDATA[8]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id36670">
+            <rect x="771.0" y="131.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id36671">
+            <rect x="891.0" y="131.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="text" id="id36672" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="790.0">
+            <text x="790.0" y="110.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36675" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="910.0">
+            <text x="910.0" y="110.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id36678">
+            <path
+                d="M 870.0 60.0 C 820.002952726888 60.54338197440169 799.599708017029 59.70288738250906 770.0 100.0 C 740.400291982971 140.29711261749094 740.7836832056058 180.00614196831157 740.0 230.0 C 739.2163167943942 279.99385803168843 731.5948388690721 417.9836979257834 770.0 450.0 C 808.4051611309279 482.0163020742166 956.4526989305939 457.0753097216816 990.0 420.0 C 1023.5473010694061 382.9246902783184 1018.3066253569808 186.52813630524315 1000.0 140.0 C 981.6933746430192 93.47186369475685 992.0387164453975 117.06928738669615 950.0 90.0 C 907.9612835546025 62.930712613303854 919.997047273112 59.45661802559831 870.0 60.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id36681" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="900.0">
+            <text x="900.0" y="50.0"><![CDATA[commB]]></text>
+        </g>
+        <g latexdraw:type="square" id="id36684">
+            <rect x="791.0" y="161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36685">
+            <rect x="791.0" y="231.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36686">
+            <rect x="791.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36687">
+            <rect x="911.0" y="161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id36688">
+            <rect x="911.0" y="221.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36689">
+            <rect x="911.0" y="281.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36690">
+            <rect x="911.0" y="341.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id36691" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="180.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36694" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="250.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36697" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="320.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36700" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="360.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36703" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="300.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36706" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="240.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36709" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="180.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="drawing" id="id36712">
+            <g latexdraw:type="line" id="id36713">
+                <line x1="700.0" x2="700.0" y1="470.0" y2="550.0"
+                    stroke-width="4.0" stroke="black"
+                    latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-36713)"/>
+            </g>
+            <g latexdraw:type="square" id="id36714">
+                <rect x="471.0" y="601.0" width="28.0" height="28.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="red"/>
+            </g>
+            <g latexdraw:type="square" id="id36715">
+                <rect x="591.0" y="601.0" width="28.0" height="28.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="bezierCurve" id="id36716">
+                <path
+                    d="M 540.0 580.0 C 490.90218066342834 589.4553760577478 435.428622333539 570.209413477749 440.0 620.0 C 444.571377666461 669.790586522251 490.02962967388885 641.721072186537 540.0 640.0 C 589.9703703261112 638.278927813463 640.624600039569 659.1131537938454 650.0 610.0 C 659.375399960431 560.8868462061546 657.4341649025249 595.8113883008416 610.0 580.0 C 562.5658350974751 564.1886116991584 589.0978193365717 570.5446239422522 540.0 580.0 z "
+                    stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+            </g>
+            <g latexdraw:type="text" id="id36719" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="480.0">
+                <text x="480.0" y="560.0"><![CDATA[commA_mpi]]></text>
+            </g>
+            <g latexdraw:type="text" id="id36722" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="470.0">
+                <text x="470.0" y="600.0"><![CDATA[P0]]></text>
+            </g>
+            <g latexdraw:type="text" id="id36725" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="590.0">
+                <text x="590.0" y="600.0"><![CDATA[P1]]></text>
+            </g>
+            <g latexdraw:type="text" id="id36728" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="450.0">
+                <text x="450.0" y="670.0"><![CDATA[leader rank in local = 0]]></text>
+            </g>
+            <g latexdraw:type="text" id="id36731" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="450.0">
+                <text x="450.0" y="690.0"><![CDATA[remote rank in peer = 3]]></text>
+            </g>
+            <g latexdraw:type="text" id="id36734" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="480.0">
+                <text x="480.0" y="620.0"><![CDATA[0]]></text>
+            </g>
+            <g latexdraw:type="text" id="id36737" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="600.0">
+                <text x="600.0" y="620.0"><![CDATA[1]]></text>
+            </g>
+            <g latexdraw:type="square" id="id36740">
+                <rect x="791.0" y="601.0" width="28.0" height="28.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="white"/>
+            </g>
+            <g latexdraw:type="square" id="id36741">
+                <rect x="911.0" y="601.0" width="28.0" height="28.0"
+                    latexdraw:borderPos="outer" stroke-width="2.0"
+                    stroke="black" fill="red"/>
+            </g>
+            <g latexdraw:type="bezierCurve" id="id36742">
+                <path
+                    d="M 810.0 570.0 C 761.1733442298537 580.7683650710607 736.6131037719447 571.8254111654696 750.0 620.0 C 763.3868962280553 668.1745888345304 830.2653025965873 645.1439162309463 880.0 640.0 C 929.7346974034127 634.8560837690537 962.4532216142769 659.9397807727655 960.0 610.0 C 957.5467783857231 560.0602192272345 858.8266557701463 559.2316349289393 810.0 570.0 z "
+                    stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+            </g>
+            <g latexdraw:type="text" id="id36745" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="840.0">
+                <text x="840.0" y="550.0"><![CDATA[commB_mpi]]></text>
+            </g>
+            <g latexdraw:type="text" id="id36748" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="790.0">
+                <text x="790.0" y="600.0"><![CDATA[P2]]></text>
+            </g>
+            <g latexdraw:type="text" id="id36751" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="910.0">
+                <text x="910.0" y="600.0"><![CDATA[P3]]></text>
+            </g>
+            <g latexdraw:type="text" id="id36754" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="750.0">
+                <text x="750.0" y="670.0"><![CDATA[leader rank in local = 1]]></text>
+            </g>
+            <g latexdraw:type="text" id="id36757" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="750.0">
+                <text x="750.0" y="690.0"><![CDATA[remote rank in peer = 0]]></text>
+            </g>
+            <g latexdraw:type="text" id="id36760" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="800.0">
+                <text x="800.0" y="620.0"><![CDATA[0]]></text>
+            </g>
+            <g latexdraw:type="text" id="id36763" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="920.0">
+                <text x="920.0" y="620.0"><![CDATA[1]]></text>
+            </g>
+        </g>
+        <g latexdraw:type="text" id="id36767" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="710.0">
+            <text x="710.0" y="510.0"><![CDATA[step 1]]></text>
+        </g>
+        <g latexdraw:type="drawing" id="id36770">
+            <g latexdraw:type="line" id="id36771">
+                <line x1="990.0" x2="1130.0" y1="610.0" y2="610.0"
+                    stroke-width="4.0" stroke="black"
+                    latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-36771)"/>
+            </g>
+            <g latexdraw:type="text" id="id36772" font-family="Dialog"
+                fill="black" font-size="18" latexdraw:x="1020.0">
+                <text x="1020.0" y="600.0"><![CDATA[step 2]]></text>
+            </g>
+        </g>
+        <g latexdraw:type="square" id="id36776">
+            <rect x="1181.0" y="601.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id36777">
+            <rect x="1301.0" y="601.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id36778">
+            <path
+                d="M 1250.0 580.0 C 1200.9021806634282 589.4553760577478 1145.428622333539 570.209413477749 1150.0 620.0 C 1154.571377666461 669.790586522251 1200.0296296738888 641.721072186537 1250.0 640.0 C 1299.9703703261112 638.278927813463 1350.624600039569 659.1131537938454 1360.0 610.0 C 1369.375399960431 560.886846206155 1367.434164902525 595.8113883008416 1320.0 580.0 C 1272.565835097475 564.1886116991584 1299.0978193365718 570.5446239422522 1250.0 580.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id36781" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1170.0">
+            <text x="1170.0" y="560.0"><![CDATA[commA_mpi]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36784" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1180.0">
+            <text x="1180.0" y="600.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36787" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1300.0">
+            <text x="1300.0" y="600.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36790" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1190.0">
+            <text x="1190.0" y="620.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36793" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1310.0">
+            <text x="1310.0" y="620.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="square" id="id36796">
+            <rect x="1501.0" y="601.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36797">
+            <rect x="1621.0" y="601.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id36798">
+            <path
+                d="M 1520.0 570.0 C 1471.1733442298537 580.7683650710607 1446.6131037719447 571.8254111654696 1460.0 620.0 C 1473.3868962280549 668.1745888345295 1540.2653025965874 645.1439162309463 1590.0 640.0 C 1639.7346974034126 634.8560837690537 1672.453221614277 659.9397807727655 1670.0 610.0 C 1667.546778385723 560.0602192272345 1568.8266557701463 559.2316349289393 1520.0 570.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id36801" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1570.0">
+            <text x="1570.0" y="550.0"><![CDATA[commB_mpi]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36804" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1500.0">
+            <text x="1500.0" y="600.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36807" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1620.0">
+            <text x="1620.0" y="600.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36810" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1510.0">
+            <text x="1510.0" y="620.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36813" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1630.0">
+            <text x="1630.0" y="620.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id36816">
+            <path
+                d="M 1190.0 630.0 C 1190.0 670.0 1190.0 670.0 1320.5777012418635 680.0 C 1451.1554024837271 690.0 1462.076953223767 679.3037967088482 1511.422033826126 670.0 C 1560.7671144284848 660.6962032911518 1640.0 679.3543728818158 1640.0 630.0 "
+                stroke-width="5.0" stroke="#0ac4d2" fill="none"
+                latexdraw:rotationAngle="0.0"
+                marker-start="url(#arrow1-36816)" marker-end="url(#arrow2-36816)"/>
+        </g>
+        <g latexdraw:type="line" id="id36819">
+            <line x1="1410.0" x2="1410.0" y1="570.0" y2="460.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-36819)"/>
+        </g>
+        <g latexdraw:type="text" id="id36820" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1430.0">
+            <text x="1430.0" y="520.0"><![CDATA[step 3]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id36823">
+            <rect x="1161.0" y="131.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id36824">
+            <rect x="1281.0" y="131.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id36825" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1180.0">
+            <text x="1180.0" y="110.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36828" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1300.0">
+            <text x="1300.0" y="110.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="square" id="id36831">
+            <rect x="1181.0" y="151.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36832">
+            <rect x="1181.0" y="201.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36833">
+            <rect x="1181.0" y="251.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id36834">
+            <rect x="1181.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36835">
+            <rect x="1181.0" y="351.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36836">
+            <rect x="1301.0" y="161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36837">
+            <rect x="1301.0" y="221.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36838">
+            <rect x="1301.0" y="281.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36839">
+            <rect x="1301.0" y="341.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id36840" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1190.0">
+            <text x="1190.0" y="170.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36843" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1190.0">
+            <text x="1190.0" y="220.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36846" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1190.0">
+            <text x="1190.0" y="270.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36849" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1190.0">
+            <text x="1190.0" y="320.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36852" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1190.0">
+            <text x="1190.0" y="370.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36855" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1310.0">
+            <text x="1310.0" y="180.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36858" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1310.0">
+            <text x="1310.0" y="240.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36861" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1310.0">
+            <text x="1310.0" y="300.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36864" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1310.0">
+            <text x="1310.0" y="360.0"><![CDATA[8]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id36867">
+            <rect x="1481.0" y="131.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id36868">
+            <rect x="1601.0" y="131.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="text" id="id36869" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1500.0">
+            <text x="1500.0" y="110.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36872" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1620.0">
+            <text x="1620.0" y="110.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="square" id="id36875">
+            <rect x="1501.0" y="161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36876">
+            <rect x="1501.0" y="231.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36877">
+            <rect x="1501.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36878">
+            <rect x="1621.0" y="161.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id36879">
+            <rect x="1621.0" y="221.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36880">
+            <rect x="1621.0" y="281.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id36881">
+            <rect x="1621.0" y="341.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id36882" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1510.0">
+            <text x="1510.0" y="180.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36885" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1510.0">
+            <text x="1510.0" y="250.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36888" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1510.0">
+            <text x="1510.0" y="320.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36891" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1630.0">
+            <text x="1630.0" y="360.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36894" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1630.0">
+            <text x="1630.0" y="300.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36897" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1630.0">
+            <text x="1630.0" y="240.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36900" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1630.0">
+            <text x="1630.0" y="180.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id36903">
+            <path
+                d="M 1200.0 280.0 C 1200.0 320.0 1360.9786443615105 279.84411963381217 1410.0 270.0 C 1459.0213556384892 260.15588036618783 1643.699889106263 238.08651618154545 1630.0 190.0 "
+                stroke-width="4.0" stroke="#02afbd" fill="none"
+                latexdraw:rotationAngle="0.0"
+                marker-start="url(#arrow1-36903)" marker-end="url(#arrow2-36903)"/>
+        </g>
+        <g latexdraw:type="text" id="id36906" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1340.0">
+            <text x="1340.0" y="700.0"><![CDATA[inter_comm_mpi]]></text>
+        </g>
+        <g latexdraw:type="text" id="id36909" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1360.0">
+            <text x="1360.0" y="250.0"><![CDATA[inter_comm]]></text>
+        </g>
+    </g>
+    <metadata>
+        <latexdraw:metadata>
+            <latexdraw:displayBorders>false</latexdraw:displayBorders>
+            <latexdraw:autoAdjust>true</latexdraw:autoAdjust>
+            <latexdraw:ppc>50</latexdraw:ppc>
+            <latexdraw:zoom>1.0</latexdraw:zoom>
+            <latexdraw:unit>cm</latexdraw:unit>
+            <latexdraw:classicGrid>false</latexdraw:classicGrid>
+            <latexdraw:gridGap>10</latexdraw:gridGap>
+            <latexdraw:code>0</latexdraw:code>
+            <latexdraw:displayGrid>true</latexdraw:displayGrid>
+            <latexdraw:magneticGrid>true</latexdraw:magneticGrid>
+            <latexdraw:autoUpdate>true</latexdraw:autoUpdate>
+            <latexdraw:version>2.0.8</latexdraw:version>
+            <latexdraw:size>
+                <latexdraw:width>1867</latexdraw:width>
+                <latexdraw:height>1176</latexdraw:height>
+            </latexdraw:size>
+            <latexdraw:position>
+                <latexdraw:x>53</latexdraw:x>
+                <latexdraw:y>24</latexdraw:y>
+            </latexdraw:position>
+            <latexdraw:dividerPosition>0.8489555436529191</latexdraw:dividerPosition>
+            <latexdraw:displayCodePanel>true</latexdraw:displayCodePanel>
+            <latexdraw:displayXScale>true</latexdraw:displayXScale>
+            <latexdraw:displayYScale>true</latexdraw:displayYScale>
+            <latexdraw:delimitorOpacity>138</latexdraw:delimitorOpacity>
+        </latexdraw:metadata>
+    </metadata>
+</svg>
Index: /XIOS/dev/branch_openmp/Note/merge.svg
===================================================================
--- /XIOS/dev/branch_openmp/Note/merge.svg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/merge.svg	(revision 1548)
@@ -0,0 +1,685 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+    xmlns:latexdraw="http://latexdraw.sourceforge.net/namespaces/latexdraw"
+    version="1.1" baseProfile="full">
+    <defs>
+        <marker overflow="visible" orient="auto" id="arrow2-26430">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-26435">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-26446">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+    </defs>
+    <g>
+        <g latexdraw:type="ellipse" id="id26286">
+            <ellipse cx="1255.0" cy="755.0" rx="144.0" ry="34.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="red" fill="#ebfbd8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id26288">
+            <rect x="281.0" y="231.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id26289">
+            <rect x="401.0" y="231.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id26290" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="300.0">
+            <text x="300.0" y="210.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26292" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="420.0">
+            <text x="420.0" y="210.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26294" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="260.0">
+            <text x="260.0" y="150.0"><![CDATA[commA (high=2)]]></text>
+        </g>
+        <g latexdraw:type="square" id="id26296">
+            <rect x="301.0" y="251.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26297">
+            <rect x="301.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26298">
+            <rect x="301.0" y="351.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id26299">
+            <rect x="301.0" y="401.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26300">
+            <rect x="301.0" y="451.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26301">
+            <rect x="421.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26302">
+            <rect x="421.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26303">
+            <rect x="421.0" y="381.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26304">
+            <rect x="421.0" y="441.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id26305" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="310.0">
+            <text x="310.0" y="270.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26307" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="310.0">
+            <text x="310.0" y="320.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26309" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="310.0">
+            <text x="310.0" y="370.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26311" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="310.0">
+            <text x="310.0" y="420.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26313" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="310.0">
+            <text x="310.0" y="470.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26315" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="430.0">
+            <text x="430.0" y="280.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26317" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="430.0">
+            <text x="430.0" y="340.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26319" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="430.0">
+            <text x="430.0" y="400.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26321" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="430.0">
+            <text x="430.0" y="460.0"><![CDATA[8]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id26323">
+            <rect x="601.0" y="231.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id26324">
+            <rect x="721.0" y="231.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="text" id="id26325" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="620.0">
+            <text x="620.0" y="210.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26327" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="740.0">
+            <text x="740.0" y="210.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id26329">
+            <path
+                d="M 700.0 160.0 C 650.002952726888 160.54338197440165 629.599708017029 159.70288738250906 600.0 200.0 C 570.400291982971 240.29711261749094 570.7836832056058 280.00614196831157 570.0 330.0 C 569.2163167943942 379.99385803168843 651.5948388690721 367.9836979257834 690.0 400.0 C 728.4051611309279 432.0163020742166 676.4526989305939 517.0753097216816 730.0 530.0 C 783.5473010694061 542.9246902783184 838.3066253569809 506.52813630524315 820.0 460.0 C 801.6933746430191 413.47186369475685 822.0387164453975 217.06928738669615 780.0 190.0 C 737.9612835546025 162.93071261330385 749.997047273112 159.45661802559835 700.0 160.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id26332" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="630.0">
+            <text x="630.0" y="150.0"><![CDATA[commB (high=1)]]></text>
+        </g>
+        <g latexdraw:type="square" id="id26334">
+            <rect x="621.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id26335">
+            <rect x="621.0" y="331.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26336">
+            <rect x="621.0" y="401.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26337">
+            <rect x="741.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id26338">
+            <rect x="741.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26339">
+            <rect x="741.0" y="381.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26340">
+            <rect x="741.0" y="441.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id26341" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="630.0">
+            <text x="630.0" y="280.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26343" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="630.0">
+            <text x="630.0" y="350.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26345" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="630.0">
+            <text x="630.0" y="420.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26347" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="750.0">
+            <text x="750.0" y="460.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26349" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="750.0">
+            <text x="750.0" y="400.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26351" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="750.0">
+            <text x="750.0" y="340.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26353" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="750.0">
+            <text x="750.0" y="280.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id26355">
+            <path
+                d="M 380.0 160.0 C 330.0830306671305 162.88030773032494 274.67479901485495 216.5125961504201 250.0 260.0 C 225.32520098514505 303.4874038495799 218.8539311123431 381.25817865167915 230.0 430.0 C 241.1460688876569 478.74182134832085 255.0772343076202 518.0467514352089 300.0 540.0 C 344.9227656923798 561.9532485647911 461.0813345877202 530.342348586337 510.0 520.0 C 558.9186654122798 509.65765141366296 642.1548785912422 516.7070834232263 660.0 470.0 C 677.8451214087578 423.2929165767737 690.1279311817755 409.8286630453093 650.0 390.0 C 609.8720688182245 370.1713369546907 556.2539316445288 394.4333042317146 520.0 360.0 C 483.74606835547115 325.5666957682854 510.4317152390538 259.67254349810776 480.0 220.0 C 449.5682847609462 180.32745650189224 429.9169693328695 157.11969226967506 380.0 160.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id26358" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="120.0">
+            <text x="120.0" y="340.0"><![CDATA[Case 2]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id26360">
+            <rect x="1001.0" y="231.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id26361">
+            <rect x="1121.0" y="231.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id26362" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1020.0">
+            <text x="1020.0" y="210.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26364" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1140.0">
+            <text x="1140.0" y="210.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26366" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1000.0">
+            <text x="1000.0" y="150.0"><![CDATA[commA' (high=2)]]></text>
+        </g>
+        <g latexdraw:type="square" id="id26368">
+            <rect x="1021.0" y="251.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26369">
+            <rect x="1021.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26370">
+            <rect x="1021.0" y="351.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id26371">
+            <rect x="1021.0" y="401.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26372">
+            <rect x="1021.0" y="451.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26373">
+            <rect x="1141.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26374">
+            <rect x="1141.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26375">
+            <rect x="1141.0" y="381.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26376">
+            <rect x="1141.0" y="441.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id26377" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1030.0">
+            <text x="1030.0" y="270.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26379" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1030.0">
+            <text x="1030.0" y="320.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26381" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1030.0">
+            <text x="1030.0" y="370.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26383" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1030.0">
+            <text x="1030.0" y="420.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26385" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1030.0">
+            <text x="1030.0" y="470.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26387" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1150.0">
+            <text x="1150.0" y="280.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26389" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1150.0">
+            <text x="1150.0" y="340.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26391" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1150.0">
+            <text x="1150.0" y="400.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26393" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1150.0">
+            <text x="1150.0" y="460.0"><![CDATA[8]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id26395">
+            <rect x="1321.0" y="231.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id26396">
+            <rect x="1441.0" y="231.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="text" id="id26397" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1340.0">
+            <text x="1340.0" y="210.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26399" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1460.0">
+            <text x="1460.0" y="210.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id26401">
+            <path
+                d="M 1420.0 160.0 C 1370.002952726888 160.54338197440165 1349.5997080170291 159.70288738250906 1320.0 200.0 C 1290.4002919829709 240.29711261749094 1290.783683205606 280.00614196831157 1290.0 330.0 C 1289.216316794394 379.99385803168843 1271.5948388690722 497.9836979257834 1310.0 530.0 C 1348.4051611309278 562.0163020742166 1396.452698930594 517.0753097216816 1450.0 530.0 C 1503.547301069406 542.9246902783184 1558.306625356981 506.52813630524315 1540.0 460.0 C 1521.693374643019 413.47186369475685 1542.0387164453975 217.06928738669615 1500.0 190.0 C 1457.9612835546025 162.93071261330385 1469.997047273112 159.45661802559835 1420.0 160.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id26404" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1360.0">
+            <text x="1360.0" y="150.0"><![CDATA[commB' (high=1)]]></text>
+        </g>
+        <g latexdraw:type="square" id="id26406">
+            <rect x="1341.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id26407">
+            <rect x="1341.0" y="331.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26408">
+            <rect x="1341.0" y="401.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26409">
+            <rect x="1461.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id26410">
+            <rect x="1461.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26411">
+            <rect x="1461.0" y="381.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26412">
+            <rect x="1461.0" y="441.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id26413" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1350.0">
+            <text x="1350.0" y="280.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26415" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1350.0">
+            <text x="1350.0" y="350.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26417" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1350.0">
+            <text x="1350.0" y="420.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26419" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1470.0">
+            <text x="1470.0" y="460.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26421" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1470.0">
+            <text x="1470.0" y="400.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26423" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1470.0">
+            <text x="1470.0" y="340.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26425" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1470.0">
+            <text x="1470.0" y="280.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id26427">
+            <path
+                d="M 1100.0 160.0 C 1050.0830306671305 162.88030773032494 994.6747990148549 216.5125961504201 970.0 260.0 C 945.3252009851451 303.4874038495799 938.8539311123432 381.25817865167915 950.0 430.0 C 961.1460688876568 478.74182134832085 975.0772343076201 518.0467514352089 1020.0 540.0 C 1064.92276569238 561.9532485647911 1111.0813345877202 550.342348586337 1160.0 540.0 C 1208.9186654122798 529.657651413663 1202.1548785912423 516.7070834232263 1230.0 490.0 C 1257.8451214087577 463.2929165767737 1260.1279311817755 439.8286630453093 1250.0 420.0 C 1239.8720688182245 400.1713369546907 1240.0 390.0 1240.0 360.0 C 1240.0 330.0 1230.4317152390538 259.67254349810776 1200.0 220.0 C 1169.5682847609462 180.32745650189224 1149.9169693328695 157.11969226967506 1100.0 160.0 z "
+                stroke-width="2.0" stroke="black" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id26430">
+            <line x1="830.0" x2="940.0" y1="370.0" y2="370.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-26430)"/>
+        </g>
+        <g latexdraw:type="text" id="id26431" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="830.0">
+            <text x="830.0" y="350.0"><![CDATA[intercomm]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26433" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="850.0">
+            <text x="850.0" y="400.0"><![CDATA[create]]></text>
+        </g>
+        <g latexdraw:type="line" id="id26435">
+            <line x1="1260.0" x2="1260.0" y1="560.0" y2="670.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-26435)"/>
+        </g>
+        <g latexdraw:type="text" id="id26436" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="620.0"><![CDATA[merge step 1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26438" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1140.0">
+            <text x="1140.0" y="760.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26440" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1210.0">
+            <text x="1210.0" y="760.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26442" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="760.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26444" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1350.0">
+            <text x="1350.0" y="760.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="line" id="id26446">
+            <line x1="1070.0" x2="880.0" y1="760.0" y2="760.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-26446)"/>
+        </g>
+        <g latexdraw:type="text" id="id26447" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="740.0"><![CDATA[merge step 2]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id26450">
+            <rect x="421.0" y="641.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id26451">
+            <rect x="541.0" y="641.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id26452" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="440.0">
+            <text x="440.0" y="620.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26454" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="560.0">
+            <text x="560.0" y="620.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="square" id="id26456">
+            <rect x="441.0" y="661.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26457">
+            <rect x="441.0" y="711.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26458">
+            <rect x="441.0" y="811.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26459">
+            <rect x="441.0" y="861.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26460">
+            <rect x="561.0" y="671.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26461">
+            <rect x="561.0" y="731.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26462">
+            <rect x="561.0" y="791.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26463">
+            <rect x="561.0" y="851.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id26464">
+            <rect x="661.0" y="641.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id26465">
+            <rect x="781.0" y="641.0" width="68.0" height="288.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="text" id="id26466" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="680.0">
+            <text x="680.0" y="620.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26468" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="620.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="square" id="id26470">
+            <rect x="681.0" y="741.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26471">
+            <rect x="681.0" y="811.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26472">
+            <rect x="801.0" y="671.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id26473">
+            <rect x="801.0" y="731.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26474">
+            <rect x="801.0" y="791.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26475">
+            <rect x="801.0" y="851.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26476">
+            <rect x="441.0" y="761.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id26477">
+            <rect x="681.0" y="671.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id26478" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="690.0">
+            <text x="690.0" y="690.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26480" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="810.0">
+            <text x="810.0" y="690.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26482" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="810.0">
+            <text x="810.0" y="750.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26484" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="810.0">
+            <text x="810.0" y="810.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26486" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="810.0">
+            <text x="810.0" y="870.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26488" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="690.0">
+            <text x="690.0" y="830.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26490" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="690.0">
+            <text x="690.0" y="760.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26492" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="560.0">
+            <text x="560.0" y="690.0"><![CDATA[12]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26494" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="560.0">
+            <text x="560.0" y="750.0"><![CDATA[13]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26496" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="560.0">
+            <text x="560.0" y="810.0"><![CDATA[14]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26498" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="560.0">
+            <text x="560.0" y="870.0"><![CDATA[15]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26500" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="440.0">
+            <text x="440.0" y="880.0"><![CDATA[11]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26502" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="440.0">
+            <text x="440.0" y="830.0"><![CDATA[10]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26504" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="450.0">
+            <text x="450.0" y="780.0"><![CDATA[9]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26506" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="450.0">
+            <text x="450.0" y="730.0"><![CDATA[8]]></text>
+        </g>
+        <g latexdraw:type="text" id="id26508" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="450.0">
+            <text x="450.0" y="680.0"><![CDATA[7]]></text>
+        </g>
+    </g>
+    <metadata>
+        <latexdraw:metadata>
+            <latexdraw:displayBorders>false</latexdraw:displayBorders>
+            <latexdraw:autoAdjust>true</latexdraw:autoAdjust>
+            <latexdraw:ppc>50</latexdraw:ppc>
+            <latexdraw:zoom>1.0</latexdraw:zoom>
+            <latexdraw:unit>cm</latexdraw:unit>
+            <latexdraw:classicGrid>false</latexdraw:classicGrid>
+            <latexdraw:gridGap>10</latexdraw:gridGap>
+            <latexdraw:code>0</latexdraw:code>
+            <latexdraw:displayGrid>true</latexdraw:displayGrid>
+            <latexdraw:magneticGrid>true</latexdraw:magneticGrid>
+            <latexdraw:autoUpdate>true</latexdraw:autoUpdate>
+            <latexdraw:version>2.0.8</latexdraw:version>
+            <latexdraw:size>
+                <latexdraw:width>1867</latexdraw:width>
+                <latexdraw:height>1176</latexdraw:height>
+            </latexdraw:size>
+            <latexdraw:position>
+                <latexdraw:x>53</latexdraw:x>
+                <latexdraw:y>24</latexdraw:y>
+            </latexdraw:position>
+            <latexdraw:dividerPosition>0.922335297268345</latexdraw:dividerPosition>
+            <latexdraw:displayCodePanel>true</latexdraw:displayCodePanel>
+            <latexdraw:displayXScale>true</latexdraw:displayXScale>
+            <latexdraw:displayYScale>true</latexdraw:displayYScale>
+            <latexdraw:delimitorOpacity>138</latexdraw:delimitorOpacity>
+        </latexdraw:metadata>
+    </metadata>
+</svg>
Index: /XIOS/dev/branch_openmp/Note/ranks.svg
===================================================================
--- /XIOS/dev/branch_openmp/Note/ranks.svg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/ranks.svg	(revision 1548)
@@ -0,0 +1,509 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+    xmlns:latexdraw="http://latexdraw.sourceforge.net/namespaces/latexdraw"
+    version="1.1" baseProfile="full">
+    <defs>
+        <marker overflow="visible" orient="auto" id="arrow2-50764">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-50862">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow1-50865">
+            <path
+                d="M 0.0 0.0 L 4.652083333333334 1.6614583333333335 L 2.79125 0.0 L 4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-50865">
+            <path
+                d="M 0.0 0.0 L 4.652083333333334 1.6614583333333335 L 2.79125 0.0 L 4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+    </defs>
+    <g>
+        <g latexdraw:type="rectangle" id="id50712">
+            <rect x="721.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id50713">
+            <rect x="601.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id50714">
+            <rect x="361.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id50715">
+            <rect x="481.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id50716" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="380.0">
+            <text x="380.0" y="210.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50718" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="500.0">
+            <text x="500.0" y="210.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="square" id="id50720">
+            <rect x="381.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id50721">
+            <rect x="381.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id50722">
+            <rect x="501.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id50723">
+            <rect x="501.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id50724" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="390.0">
+            <text x="390.0" y="280.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50726" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="390.0">
+            <text x="390.0" y="340.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50728" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="510.0">
+            <text x="510.0" y="280.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50730" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="510.0">
+            <text x="510.0" y="340.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50732" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="620.0">
+            <text x="620.0" y="210.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50734" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="740.0">
+            <text x="740.0" y="210.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="square" id="id50736">
+            <rect x="621.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id50737">
+            <rect x="621.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id50738">
+            <rect x="741.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id50739">
+            <rect x="741.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id50740" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="630.0">
+            <text x="630.0" y="280.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50742" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="630.0">
+            <text x="630.0" y="340.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50744" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="750.0">
+            <text x="750.0" y="340.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50746" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="750.0">
+            <text x="750.0" y="280.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id50748">
+            <ellipse cx="570.0" cy="270.0" rx="259.0" ry="29.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="red" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id50750" font-family="Dialog"
+            fill="red" font-size="18" latexdraw:x="280.0">
+            <text x="280.0" y="230.0"><![CDATA[\color{red}commA]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50752" font-family="Dialog"
+            fill="red" font-size="18" latexdraw:x="250.0">
+            <text x="250.0" y="250.0"><![CDATA[\color{red}color = red]]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id50754">
+            <ellipse cx="580.0" cy="340.0" rx="259.0" ry="29.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="lime" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id50756" font-family="Dialog"
+            fill="lime" font-size="18" latexdraw:x="280.0">
+            <text x="280.0" y="380.0"><![CDATA[\color{green}commB]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50758" font-family="Dialog"
+            fill="lime" font-size="18" latexdraw:x="250.0">
+            <text x="250.0" y="400.0"><![CDATA[\color{green}color = green]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50760" font-family="Dialog"
+            fill="black" font-size="11" latexdraw:x="410.0">
+            <text x="410.0" y="280.0"><![CDATA[peer_rank=0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50762" font-family="Dialog"
+            fill="black" font-size="11" latexdraw:x="410.0">
+            <text x="410.0" y="340.0"><![CDATA[peer_rank=1]]></text>
+        </g>
+        <g latexdraw:type="line" id="id50764">
+            <line x1="840.0" x2="950.0" y1="310.0" y2="310.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-50764)"/>
+        </g>
+        <g latexdraw:type="text" id="id50765" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="840.0">
+            <text x="840.0" y="290.0"><![CDATA[leader change]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id50767">
+            <rect x="1421.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id50768">
+            <rect x="1301.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id50769">
+            <rect x="1061.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id50770">
+            <rect x="1181.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id50771" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1080.0">
+            <text x="1080.0" y="210.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50773" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1200.0">
+            <text x="1200.0" y="210.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="square" id="id50775">
+            <rect x="1201.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id50776">
+            <rect x="1081.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id50777">
+            <rect x="1081.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id50778">
+            <rect x="1201.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id50779" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1090.0">
+            <text x="1090.0" y="280.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50781" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1090.0">
+            <text x="1090.0" y="340.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50783" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1210.0">
+            <text x="1210.0" y="280.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50785" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1210.0">
+            <text x="1210.0" y="340.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50787" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1320.0">
+            <text x="1320.0" y="210.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50789" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1440.0">
+            <text x="1440.0" y="210.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="square" id="id50791">
+            <rect x="1321.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id50792">
+            <rect x="1321.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id50793">
+            <rect x="1441.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id50794">
+            <rect x="1441.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id50795" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1330.0">
+            <text x="1330.0" y="280.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50797" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1330.0">
+            <text x="1330.0" y="340.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50799" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1450.0">
+            <text x="1450.0" y="340.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50801" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1450.0">
+            <text x="1450.0" y="280.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id50803">
+            <ellipse cx="1270.0" cy="270.0" rx="259.0" ry="29.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="red" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id50805" font-family="Dialog"
+            fill="red" font-size="18" latexdraw:x="980.0">
+            <text x="980.0" y="230.0"><![CDATA[\color{red}commA]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50807" font-family="Dialog"
+            fill="red" font-size="18" latexdraw:x="950.0">
+            <text x="950.0" y="250.0"><![CDATA[\color{red}color = red]]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id50809">
+            <ellipse cx="1280.0" cy="340.0" rx="259.0" ry="29.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="lime" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id50811" font-family="Dialog"
+            fill="lime" font-size="18" latexdraw:x="990.0">
+            <text x="990.0" y="380.0"><![CDATA[\color{green}commB]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50813" font-family="Dialog"
+            fill="lime" font-size="18" latexdraw:x="960.0">
+            <text x="960.0" y="400.0"><![CDATA[\color{green}color = green]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id50815">
+            <rect x="1421.0" y="521.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id50816">
+            <rect x="1301.0" y="521.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id50817">
+            <rect x="1061.0" y="521.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id50818">
+            <rect x="1181.0" y="521.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id50819" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1080.0">
+            <text x="1080.0" y="500.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50821" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1320.0">
+            <text x="1320.0" y="500.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="square" id="id50823">
+            <rect x="1201.0" y="551.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id50824">
+            <rect x="1081.0" y="611.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id50825">
+            <rect x="1081.0" y="551.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id50826">
+            <rect x="1201.0" y="611.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id50827" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1090.0">
+            <text x="1090.0" y="570.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50829" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1090.0">
+            <text x="1090.0" y="630.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50831" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1210.0">
+            <text x="1210.0" y="570.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50833" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1210.0">
+            <text x="1210.0" y="630.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50835" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1440.0">
+            <text x="1440.0" y="500.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50837" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1200.0">
+            <text x="1200.0" y="500.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="square" id="id50840">
+            <rect x="1321.0" y="551.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id50841">
+            <rect x="1321.0" y="611.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id50842">
+            <rect x="1441.0" y="551.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id50843">
+            <rect x="1441.0" y="611.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id50844" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1330.0">
+            <text x="1330.0" y="570.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50846" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1330.0">
+            <text x="1330.0" y="630.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50848" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1450.0">
+            <text x="1450.0" y="630.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50850" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1450.0">
+            <text x="1450.0" y="570.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id50852">
+            <ellipse cx="1340.0" cy="600.0" rx="179.0" ry="79.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="red" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id50854" font-family="Dialog"
+            fill="red" font-size="18" latexdraw:x="1390.0">
+            <text x="1390.0" y="690.0"><![CDATA[\color{red}commA']]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id50856">
+            <ellipse cx="1090.0" cy="595.0" rx="39.0" ry="64.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="lime" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id50858" font-family="Dialog"
+            fill="lime" font-size="18" latexdraw:x="1060.0">
+            <text x="1060.0" y="690.0"><![CDATA[\color{green}commB']]></text>
+        </g>
+        <g latexdraw:type="text" id="id50860" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1260.0">
+            <text x="1260.0" y="420.0"><![CDATA[process regroup]]></text>
+        </g>
+        <g latexdraw:type="line" id="id50862">
+            <line x1="1240.0" x2="1240.0" y1="400.0" y2="480.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-50862)"/>
+        </g>
+        <g latexdraw:type="text" id="id50863" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1260.0">
+            <text x="1260.0" y="450.0"><![CDATA[intercomm create]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id50865">
+            <path
+                d="M 1220.0 550.0 C 1220.0 510.0 1100.0 570.0 1100.0 610.0 "
+                stroke-width="2.0" stroke="#010101" fill="none"
+                latexdraw:rotationAngle="0.0"
+                marker-start="url(#arrow1-50865)" marker-end="url(#arrow2-50865)"/>
+        </g>
+        <g latexdraw:type="text" id="id50868" font-family="Dialog"
+            fill="black" font-size="11" latexdraw:x="1110.0">
+            <text x="1110.0" y="350.0"><![CDATA[world_rank=0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50870" font-family="Dialog"
+            fill="black" font-size="11" latexdraw:x="1230.0">
+            <text x="1230.0" y="290.0"><![CDATA[world_rank=1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50872" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="660.0">
+            <text x="660.0" y="550.0"><![CDATA[commA'_mpi = {P0, P1, P2}]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50875" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="660.0">
+            <text x="660.0" y="590.0"><![CDATA[commB'_mpi = {P0}]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50878" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="660.0">
+            <text x="660.0" y="630.0"><![CDATA[inter_comm_mpi = {(P0), (P0, P1, P2)}]]></text>
+        </g>
+    </g>
+    <metadata>
+        <latexdraw:metadata>
+            <latexdraw:displayBorders>false</latexdraw:displayBorders>
+            <latexdraw:autoAdjust>true</latexdraw:autoAdjust>
+            <latexdraw:ppc>50</latexdraw:ppc>
+            <latexdraw:zoom>1.0</latexdraw:zoom>
+            <latexdraw:unit>cm</latexdraw:unit>
+            <latexdraw:classicGrid>false</latexdraw:classicGrid>
+            <latexdraw:gridGap>10</latexdraw:gridGap>
+            <latexdraw:code>0</latexdraw:code>
+            <latexdraw:displayGrid>true</latexdraw:displayGrid>
+            <latexdraw:magneticGrid>true</latexdraw:magneticGrid>
+            <latexdraw:autoUpdate>true</latexdraw:autoUpdate>
+            <latexdraw:version>2.0.8</latexdraw:version>
+            <latexdraw:size>
+                <latexdraw:width>1867</latexdraw:width>
+                <latexdraw:height>1176</latexdraw:height>
+            </latexdraw:size>
+            <latexdraw:position>
+                <latexdraw:x>53</latexdraw:x>
+                <latexdraw:y>24</latexdraw:y>
+            </latexdraw:position>
+            <latexdraw:dividerPosition>0.9748259239421532</latexdraw:dividerPosition>
+            <latexdraw:displayCodePanel>true</latexdraw:displayCodePanel>
+            <latexdraw:displayXScale>true</latexdraw:displayXScale>
+            <latexdraw:displayYScale>true</latexdraw:displayYScale>
+            <latexdraw:delimitorOpacity>138</latexdraw:delimitorOpacity>
+        </latexdraw:metadata>
+    </metadata>
+</svg>
Index: /XIOS/dev/branch_openmp/Note/rapport ESIWACE.aux
===================================================================
--- /XIOS/dev/branch_openmp/Note/rapport ESIWACE.aux	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/rapport ESIWACE.aux	(revision 1548)
@@ -0,0 +1,7 @@
+\relax 
+\@writefile{toc}{\contentsline {section}{\numberline {1}Context}{1}}
+\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces On the left, each peak of computing power corresponds to the vallay of memory bandwidth which shows that the computing resources are alternating between calculates and IO. ON the right, both curves are smooth which means that the computing resources have a stable charge of work, either calculates or IO.}}{1}}
+\@writefile{toc}{\contentsline {section}{\numberline {2}Developpement of a thread-friendly MPI for XIOS}{2}}
+\@writefile{toc}{\contentsline {section}{\numberline {3}Performance of LMDZ using EP\_XIOS}{3}}
+\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Speedup obtained by using EP in LMDZ simulations.}}{4}}
+\@writefile{toc}{\contentsline {section}{\numberline {4}Perspectives of EP\_XIOS}{4}}
Index: /XIOS/dev/branch_openmp/Note/rapport ESIWACE.blg
===================================================================
--- /XIOS/dev/branch_openmp/Note/rapport ESIWACE.blg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/rapport ESIWACE.blg	(revision 1548)
@@ -0,0 +1,48 @@
+This is BibTeX, Version 0.99d (TeX Live 2015/Debian)
+Capacity: max_strings=35307, hash_size=35307, hash_prime=30011
+The top-level auxiliary file: rapport ESIWACE.aux
+I found no \citation commands---while reading file rapport ESIWACE.aux
+I found no \bibdata command---while reading file rapport ESIWACE.aux
+I found no \bibstyle command---while reading file rapport ESIWACE.aux
+You've used 0 entries,
+            0 wiz_defined-function locations,
+            83 strings with 504 characters,
+and the built_in function-call counts, 0 in all, are:
+= -- 0
+> -- 0
+< -- 0
++ -- 0
+- -- 0
+* -- 0
+:= -- 0
+add.period$ -- 0
+call.type$ -- 0
+change.case$ -- 0
+chr.to.int$ -- 0
+cite$ -- 0
+duplicate$ -- 0
+empty$ -- 0
+format.name$ -- 0
+if$ -- 0
+int.to.chr$ -- 0
+int.to.str$ -- 0
+missing$ -- 0
+newline$ -- 0
+num.names$ -- 0
+pop$ -- 0
+preamble$ -- 0
+purify$ -- 0
+quote$ -- 0
+skip$ -- 0
+stack$ -- 0
+substring$ -- 0
+swap$ -- 0
+text.length$ -- 0
+text.prefix$ -- 0
+top$ -- 0
+type$ -- 0
+warning$ -- 0
+while$ -- 0
+width$ -- 0
+write$ -- 0
+(There were 3 error messages)
Index: /XIOS/dev/branch_openmp/Note/rapport ESIWACE.log
===================================================================
--- /XIOS/dev/branch_openmp/Note/rapport ESIWACE.log	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/rapport ESIWACE.log	(revision 1548)
@@ -0,0 +1,622 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=pdflatex 2017.8.24)  22 JUN 2018 17:31
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**"rapport ESIWACE.tex"
+(./rapport ESIWACE.tex
+LaTeX2e <2016/02/01>
+Babel <3.9q> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
+Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo
+File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@section=\count80
+\c@subsection=\count81
+\c@subsubsection=\count82
+\c@paragraph=\count83
+\c@subparagraph=\count84
+\c@figure=\count85
+\c@table=\count86
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty
+Package: inputenc 2015/03/17 v1.2c Input encoding file
+\inpenc@prehook=\toks14
+\inpenc@posthook=\toks15
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/utf8.def
+File: utf8.def 2015/12/03 v1.1r UTF-8 support for inputenc
+Now handling font encoding OML ...
+... no UTF-8 mapping file for font encoding OML
+Now handling font encoding T1 ...
+... processing UTF-8 mapping file for font encoding T1
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.dfu
+File: t1enc.dfu 2015/12/03 v1.1r UTF-8 support for inputenc
+   defining Unicode char U+00A0 (decimal 160)
+   defining Unicode char U+00A1 (decimal 161)
+   defining Unicode char U+00A3 (decimal 163)
+   defining Unicode char U+00AB (decimal 171)
+   defining Unicode char U+00AD (decimal 173)
+   defining Unicode char U+00BB (decimal 187)
+   defining Unicode char U+00BF (decimal 191)
+   defining Unicode char U+00C0 (decimal 192)
+   defining Unicode char U+00C1 (decimal 193)
+   defining Unicode char U+00C2 (decimal 194)
+   defining Unicode char U+00C3 (decimal 195)
+   defining Unicode char U+00C4 (decimal 196)
+   defining Unicode char U+00C5 (decimal 197)
+   defining Unicode char U+00C6 (decimal 198)
+   defining Unicode char U+00C7 (decimal 199)
+   defining Unicode char U+00C8 (decimal 200)
+   defining Unicode char U+00C9 (decimal 201)
+   defining Unicode char U+00CA (decimal 202)
+   defining Unicode char U+00CB (decimal 203)
+   defining Unicode char U+00CC (decimal 204)
+   defining Unicode char U+00CD (decimal 205)
+   defining Unicode char U+00CE (decimal 206)
+   defining Unicode char U+00CF (decimal 207)
+   defining Unicode char U+00D0 (decimal 208)
+   defining Unicode char U+00D1 (decimal 209)
+   defining Unicode char U+00D2 (decimal 210)
+   defining Unicode char U+00D3 (decimal 211)
+   defining Unicode char U+00D4 (decimal 212)
+   defining Unicode char U+00D5 (decimal 213)
+   defining Unicode char U+00D6 (decimal 214)
+   defining Unicode char U+00D8 (decimal 216)
+   defining Unicode char U+00D9 (decimal 217)
+   defining Unicode char U+00DA (decimal 218)
+   defining Unicode char U+00DB (decimal 219)
+   defining Unicode char U+00DC (decimal 220)
+   defining Unicode char U+00DD (decimal 221)
+   defining Unicode char U+00DE (decimal 222)
+   defining Unicode char U+00DF (decimal 223)
+   defining Unicode char U+00E0 (decimal 224)
+   defining Unicode char U+00E1 (decimal 225)
+   defining Unicode char U+00E2 (decimal 226)
+   defining Unicode char U+00E3 (decimal 227)
+   defining Unicode char U+00E4 (decimal 228)
+   defining Unicode char U+00E5 (decimal 229)
+   defining Unicode char U+00E6 (decimal 230)
+   defining Unicode char U+00E7 (decimal 231)
+   defining Unicode char U+00E8 (decimal 232)
+   defining Unicode char U+00E9 (decimal 233)
+   defining Unicode char U+00EA (decimal 234)
+   defining Unicode char U+00EB (decimal 235)
+   defining Unicode char U+00EC (decimal 236)
+   defining Unicode char U+00ED (decimal 237)
+   defining Unicode char U+00EE (decimal 238)
+   defining Unicode char U+00EF (decimal 239)
+   defining Unicode char U+00F0 (decimal 240)
+   defining Unicode char U+00F1 (decimal 241)
+   defining Unicode char U+00F2 (decimal 242)
+   defining Unicode char U+00F3 (decimal 243)
+   defining Unicode char U+00F4 (decimal 244)
+   defining Unicode char U+00F5 (decimal 245)
+   defining Unicode char U+00F6 (decimal 246)
+   defining Unicode char U+00F8 (decimal 248)
+   defining Unicode char U+00F9 (decimal 249)
+   defining Unicode char U+00FA (decimal 250)
+   defining Unicode char U+00FB (decimal 251)
+   defining Unicode char U+00FC (decimal 252)
+   defining Unicode char U+00FD (decimal 253)
+   defining Unicode char U+00FE (decimal 254)
+   defining Unicode char U+00FF (decimal 255)
+   defining Unicode char U+0100 (decimal 256)
+   defining Unicode char U+0101 (decimal 257)
+   defining Unicode char U+0102 (decimal 258)
+   defining Unicode char U+0103 (decimal 259)
+   defining Unicode char U+0104 (decimal 260)
+   defining Unicode char U+0105 (decimal 261)
+   defining Unicode char U+0106 (decimal 262)
+   defining Unicode char U+0107 (decimal 263)
+   defining Unicode char U+0108 (decimal 264)
+   defining Unicode char U+0109 (decimal 265)
+   defining Unicode char U+010A (decimal 266)
+   defining Unicode char U+010B (decimal 267)
+   defining Unicode char U+010C (decimal 268)
+   defining Unicode char U+010D (decimal 269)
+   defining Unicode char U+010E (decimal 270)
+   defining Unicode char U+010F (decimal 271)
+   defining Unicode char U+0110 (decimal 272)
+   defining Unicode char U+0111 (decimal 273)
+   defining Unicode char U+0112 (decimal 274)
+   defining Unicode char U+0113 (decimal 275)
+   defining Unicode char U+0114 (decimal 276)
+   defining Unicode char U+0115 (decimal 277)
+   defining Unicode char U+0116 (decimal 278)
+   defining Unicode char U+0117 (decimal 279)
+   defining Unicode char U+0118 (decimal 280)
+   defining Unicode char U+0119 (decimal 281)
+   defining Unicode char U+011A (decimal 282)
+   defining Unicode char U+011B (decimal 283)
+   defining Unicode char U+011C (decimal 284)
+   defining Unicode char U+011D (decimal 285)
+   defining Unicode char U+011E (decimal 286)
+   defining Unicode char U+011F (decimal 287)
+   defining Unicode char U+0120 (decimal 288)
+   defining Unicode char U+0121 (decimal 289)
+   defining Unicode char U+0122 (decimal 290)
+   defining Unicode char U+0123 (decimal 291)
+   defining Unicode char U+0124 (decimal 292)
+   defining Unicode char U+0125 (decimal 293)
+   defining Unicode char U+0128 (decimal 296)
+   defining Unicode char U+0129 (decimal 297)
+   defining Unicode char U+012A (decimal 298)
+   defining Unicode char U+012B (decimal 299)
+   defining Unicode char U+012C (decimal 300)
+   defining Unicode char U+012D (decimal 301)
+   defining Unicode char U+012E (decimal 302)
+   defining Unicode char U+012F (decimal 303)
+   defining Unicode char U+0130 (decimal 304)
+   defining Unicode char U+0131 (decimal 305)
+   defining Unicode char U+0132 (decimal 306)
+   defining Unicode char U+0133 (decimal 307)
+   defining Unicode char U+0134 (decimal 308)
+   defining Unicode char U+0135 (decimal 309)
+   defining Unicode char U+0136 (decimal 310)
+   defining Unicode char U+0137 (decimal 311)
+   defining Unicode char U+0139 (decimal 313)
+   defining Unicode char U+013A (decimal 314)
+   defining Unicode char U+013B (decimal 315)
+   defining Unicode char U+013C (decimal 316)
+   defining Unicode char U+013D (decimal 317)
+   defining Unicode char U+013E (decimal 318)
+   defining Unicode char U+0141 (decimal 321)
+   defining Unicode char U+0142 (decimal 322)
+   defining Unicode char U+0143 (decimal 323)
+   defining Unicode char U+0144 (decimal 324)
+   defining Unicode char U+0145 (decimal 325)
+   defining Unicode char U+0146 (decimal 326)
+   defining Unicode char U+0147 (decimal 327)
+   defining Unicode char U+0148 (decimal 328)
+   defining Unicode char U+014A (decimal 330)
+   defining Unicode char U+014B (decimal 331)
+   defining Unicode char U+014C (decimal 332)
+   defining Unicode char U+014D (decimal 333)
+   defining Unicode char U+014E (decimal 334)
+   defining Unicode char U+014F (decimal 335)
+   defining Unicode char U+0150 (decimal 336)
+   defining Unicode char U+0151 (decimal 337)
+   defining Unicode char U+0152 (decimal 338)
+   defining Unicode char U+0153 (decimal 339)
+   defining Unicode char U+0154 (decimal 340)
+   defining Unicode char U+0155 (decimal 341)
+   defining Unicode char U+0156 (decimal 342)
+   defining Unicode char U+0157 (decimal 343)
+   defining Unicode char U+0158 (decimal 344)
+   defining Unicode char U+0159 (decimal 345)
+   defining Unicode char U+015A (decimal 346)
+   defining Unicode char U+015B (decimal 347)
+   defining Unicode char U+015C (decimal 348)
+   defining Unicode char U+015D (decimal 349)
+   defining Unicode char U+015E (decimal 350)
+   defining Unicode char U+015F (decimal 351)
+   defining Unicode char U+0160 (decimal 352)
+   defining Unicode char U+0161 (decimal 353)
+   defining Unicode char U+0162 (decimal 354)
+   defining Unicode char U+0163 (decimal 355)
+   defining Unicode char U+0164 (decimal 356)
+   defining Unicode char U+0165 (decimal 357)
+   defining Unicode char U+0168 (decimal 360)
+   defining Unicode char U+0169 (decimal 361)
+   defining Unicode char U+016A (decimal 362)
+   defining Unicode char U+016B (decimal 363)
+   defining Unicode char U+016C (decimal 364)
+   defining Unicode char U+016D (decimal 365)
+   defining Unicode char U+016E (decimal 366)
+   defining Unicode char U+016F (decimal 367)
+   defining Unicode char U+0170 (decimal 368)
+   defining Unicode char U+0171 (decimal 369)
+   defining Unicode char U+0172 (decimal 370)
+   defining Unicode char U+0173 (decimal 371)
+   defining Unicode char U+0174 (decimal 372)
+   defining Unicode char U+0175 (decimal 373)
+   defining Unicode char U+0176 (decimal 374)
+   defining Unicode char U+0177 (decimal 375)
+   defining Unicode char U+0178 (decimal 376)
+   defining Unicode char U+0179 (decimal 377)
+   defining Unicode char U+017A (decimal 378)
+   defining Unicode char U+017B (decimal 379)
+   defining Unicode char U+017C (decimal 380)
+   defining Unicode char U+017D (decimal 381)
+   defining Unicode char U+017E (decimal 382)
+   defining Unicode char U+01CD (decimal 461)
+   defining Unicode char U+01CE (decimal 462)
+   defining Unicode char U+01CF (decimal 463)
+   defining Unicode char U+01D0 (decimal 464)
+   defining Unicode char U+01D1 (decimal 465)
+   defining Unicode char U+01D2 (decimal 466)
+   defining Unicode char U+01D3 (decimal 467)
+   defining Unicode char U+01D4 (decimal 468)
+   defining Unicode char U+01E2 (decimal 482)
+   defining Unicode char U+01E3 (decimal 483)
+   defining Unicode char U+01E6 (decimal 486)
+   defining Unicode char U+01E7 (decimal 487)
+   defining Unicode char U+01E8 (decimal 488)
+   defining Unicode char U+01E9 (decimal 489)
+   defining Unicode char U+01EA (decimal 490)
+   defining Unicode char U+01EB (decimal 491)
+   defining Unicode char U+01F0 (decimal 496)
+   defining Unicode char U+01F4 (decimal 500)
+   defining Unicode char U+01F5 (decimal 501)
+   defining Unicode char U+0218 (decimal 536)
+   defining Unicode char U+0219 (decimal 537)
+   defining Unicode char U+021A (decimal 538)
+   defining Unicode char U+021B (decimal 539)
+   defining Unicode char U+01E02 (decimal 7682)
+   defining Unicode char U+01E03 (decimal 7683)
+   defining Unicode char U+200C (decimal 8204)
+   defining Unicode char U+2013 (decimal 8211)
+   defining Unicode char U+2014 (decimal 8212)
+   defining Unicode char U+2018 (decimal 8216)
+   defining Unicode char U+2019 (decimal 8217)
+   defining Unicode char U+201A (decimal 8218)
+   defining Unicode char U+201C (decimal 8220)
+   defining Unicode char U+201D (decimal 8221)
+   defining Unicode char U+201E (decimal 8222)
+   defining Unicode char U+2030 (decimal 8240)
+   defining Unicode char U+2031 (decimal 8241)
+   defining Unicode char U+2039 (decimal 8249)
+   defining Unicode char U+203A (decimal 8250)
+   defining Unicode char U+2423 (decimal 9251)
+)
+Now handling font encoding OT1 ...
+... processing UTF-8 mapping file for font encoding OT1
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/ot1enc.dfu
+File: ot1enc.dfu 2015/12/03 v1.1r UTF-8 support for inputenc
+   defining Unicode char U+00A0 (decimal 160)
+   defining Unicode char U+00A1 (decimal 161)
+   defining Unicode char U+00A3 (decimal 163)
+   defining Unicode char U+00AD (decimal 173)
+   defining Unicode char U+00B8 (decimal 184)
+   defining Unicode char U+00BF (decimal 191)
+   defining Unicode char U+00C5 (decimal 197)
+   defining Unicode char U+00C6 (decimal 198)
+   defining Unicode char U+00D8 (decimal 216)
+   defining Unicode char U+00DF (decimal 223)
+   defining Unicode char U+00E6 (decimal 230)
+   defining Unicode char U+00EC (decimal 236)
+   defining Unicode char U+00ED (decimal 237)
+   defining Unicode char U+00EE (decimal 238)
+   defining Unicode char U+00EF (decimal 239)
+   defining Unicode char U+00F8 (decimal 248)
+   defining Unicode char U+0131 (decimal 305)
+   defining Unicode char U+0141 (decimal 321)
+   defining Unicode char U+0142 (decimal 322)
+   defining Unicode char U+0152 (decimal 338)
+   defining Unicode char U+0153 (decimal 339)
+   defining Unicode char U+0174 (decimal 372)
+   defining Unicode char U+0175 (decimal 373)
+   defining Unicode char U+0176 (decimal 374)
+   defining Unicode char U+0177 (decimal 375)
+   defining Unicode char U+0218 (decimal 536)
+   defining Unicode char U+0219 (decimal 537)
+   defining Unicode char U+021A (decimal 538)
+   defining Unicode char U+021B (decimal 539)
+   defining Unicode char U+2013 (decimal 8211)
+   defining Unicode char U+2014 (decimal 8212)
+   defining Unicode char U+2018 (decimal 8216)
+   defining Unicode char U+2019 (decimal 8217)
+   defining Unicode char U+201C (decimal 8220)
+   defining Unicode char U+201D (decimal 8221)
+)
+Now handling font encoding OMS ...
+... processing UTF-8 mapping file for font encoding OMS
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/omsenc.dfu
+File: omsenc.dfu 2015/12/03 v1.1r UTF-8 support for inputenc
+   defining Unicode char U+00A7 (decimal 167)
+   defining Unicode char U+00B6 (decimal 182)
+   defining Unicode char U+00B7 (decimal 183)
+   defining Unicode char U+2020 (decimal 8224)
+   defining Unicode char U+2021 (decimal 8225)
+   defining Unicode char U+2022 (decimal 8226)
+)
+Now handling font encoding OMX ...
+... no UTF-8 mapping file for font encoding OMX
+Now handling font encoding U ...
+... no UTF-8 mapping file for font encoding U
+   defining Unicode char U+00A9 (decimal 169)
+   defining Unicode char U+00AA (decimal 170)
+   defining Unicode char U+00AE (decimal 174)
+   defining Unicode char U+00BA (decimal 186)
+   defining Unicode char U+02C6 (decimal 710)
+   defining Unicode char U+02DC (decimal 732)
+   defining Unicode char U+200C (decimal 8204)
+   defining Unicode char U+2026 (decimal 8230)
+   defining Unicode char U+2122 (decimal 8482)
+   defining Unicode char U+2423 (decimal 9251)
+))
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
+Package: graphicx 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
+Package: graphics 2016/01/03 v1.0q Standard LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
+Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg
+File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
+)
+Package graphics Info: Driver file: pdftex.def on input line 95.
+
+(/usr/share/texlive/texmf-dist/tex/latex/pdftex-def/pdftex.def
+File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count87
+))
+\Gin@req@height=\dimen103
+\Gin@req@width=\dimen104
+)
+(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty
+\lst@mode=\count88
+\lst@gtempboxa=\box26
+\lst@token=\toks17
+\lst@length=\count89
+\lst@currlwidth=\dimen105
+\lst@column=\count90
+\lst@pos=\count91
+\lst@lostspace=\dimen106
+\lst@width=\dimen107
+\lst@newlines=\count92
+\lst@lineno=\count93
+\lst@maxwidth=\dimen108
+
+(/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty
+File: lstmisc.sty 2015/06/04 1.6 (Carsten Heinz)
+\c@lstnumber=\count94
+\lst@skipnumbers=\count95
+\lst@framebox=\box27
+)
+(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg
+File: listings.cfg 2015/06/04 1.6 listings configuration
+))
+Package: listings 2015/06/04 1.6 (Carsten Heinz)
+
+(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg
+File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
+)
+Package xcolor Info: Package option `usenames' ignored on input line 216.
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty
+Package: colortbl 2012/02/13 v1.0a Color table columns (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2014/10/28 v2.4c Tabular extension package (FMi)
+\col@sep=\dimen109
+\extrarowheight=\dimen110
+\NC@list=\toks18
+\extratabsurround=\skip43
+\backup@length=\skip44
+)
+\everycr=\toks19
+\minrowclearance=\skip45
+)
+\rownum=\count96
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341.
+Package xcolor Info: Model `RGB' extended on input line 1353.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def
+File: dvipsnam.def 2015/12/30 v3.0k Driver-dependent file (DPC,SPQR)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/xcolor/svgnam.def
+File: svgnam.def 2007/01/21 v2.11 Predefined colors according to SVG 1.1 (UK)
+))
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty
+Package: amsmath 2016/03/03 v2.15a AMS math features
+\@mathmargin=\skip46
+
+For additional information on amsmath, use the `?' option.
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty
+Package: amstext 2000/06/29 v2.01 AMS text
+
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty
+File: amsgen.sty 1999/11/30 v2.0 generic functions
+\@emptytoks=\toks20
+\ex@=\dimen111
+))
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty
+Package: amsbsy 1999/11/29 v1.2d Bold Symbols
+\pmbraise@=\dimen112
+)
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty
+Package: amsopn 1999/12/14 v2.01 operator names
+)
+\inf@bad=\count97
+LaTeX Info: Redefining \frac on input line 199.
+\uproot@=\count98
+\leftroot@=\count99
+LaTeX Info: Redefining \overline on input line 297.
+\classnum@=\count100
+\DOTSCASE@=\count101
+LaTeX Info: Redefining \ldots on input line 394.
+LaTeX Info: Redefining \dots on input line 397.
+LaTeX Info: Redefining \cdots on input line 518.
+\Mathstrutbox@=\box28
+\strutbox@=\box29
+\big@size=\dimen113
+LaTeX Font Info:    Redeclaring font encoding OML on input line 630.
+LaTeX Font Info:    Redeclaring font encoding OMS on input line 631.
+\macc@depth=\count102
+\c@MaxMatrixCols=\count103
+\dotsspace@=\muskip10
+\c@parentequation=\count104
+\dspbrk@lvl=\count105
+\tag@help=\toks21
+\row@=\count106
+\column@=\count107
+\maxfields@=\count108
+\andhelp@=\toks22
+\eqnshift@=\dimen114
+\alignsep@=\dimen115
+\tagshift@=\dimen116
+\tagwidth@=\dimen117
+\totwidth@=\dimen118
+\lineht@=\dimen119
+\@envbody=\toks23
+\multlinegap=\skip47
+\multlinetaggap=\skip48
+\mathdisplay@stack=\toks24
+LaTeX Info: Redefining \[ on input line 2735.
+LaTeX Info: Redefining \] on input line 2736.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip11
+Package: url 2013/09/16  ver 3.4  Verb mode for urls, etc.
+) (./rapport ESIWACE.aux)
+\openout1 = `"rapport ESIWACE.aux"'.
+
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 16.
+LaTeX Font Info:    ... okay on input line 16.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 16.
+LaTeX Font Info:    ... okay on input line 16.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 16.
+LaTeX Font Info:    ... okay on input line 16.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 16.
+LaTeX Font Info:    ... okay on input line 16.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 16.
+LaTeX Font Info:    ... okay on input line 16.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 16.
+LaTeX Font Info:    ... okay on input line 16.
+
+(/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count109
+\scratchdimen=\dimen120
+\scratchbox=\box30
+\nofMPsegments=\count110
+\nofMParguments=\count111
+\everyMPshowfont=\toks25
+\MPscratchCnt=\count112
+\MPscratchDim=\dimen121
+\MPnumerator=\count113
+\makeMPintoPDFobject=\count114
+\everyMPtoPDFconversion=\toks26
+) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
+Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO
+)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty
+Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO)
+Package ifpdf Info: pdfTeX in PDF mode is detected.
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
+Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty
+Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty
+Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO)
+))
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
+Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty
+Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds)             That can mean that you are not using pdfTeX 1.50 or
+(etexcmds)             that some package has redefined \expanded.
+(etexcmds)             In the latter case, load this package earlier.
+)))
+Package grfext Info: Graphics extension search list:
+(grfext)             [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE
+G,.JBIG2,.JB2,.eps]
+(grfext)             \AppendGraphicsExtensions on input line 452.
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
+File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
+e
+))
+\c@lstlisting=\count115
+
+<Charge1.png, id=1, 412.54124pt x 228.10219pt>
+File: Charge1.png Graphic file (type png)
+ <use Charge1.png>
+Package pdftex.def Info: Charge1.png used on input line 32.
+(pdftex.def)             Requested size: 165.01357pt x 91.23924pt.
+
+<Charge2.png, id=2, 413.1435pt x 227.6505pt>
+File: Charge2.png Graphic file (type png)
+ <use Charge2.png>
+Package pdftex.def Info: Charge2.png used on input line 33.
+(pdftex.def)             Requested size: 165.25446pt x 91.05858pt.
+ [1
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./Charge1.png> <./Charge2.
+png>] [2]
+[3] <LMDZ_perf.png, id=24, 530.73282pt x 255.95625pt>
+File: LMDZ_perf.png Graphic file (type png)
+ <use LMDZ_perf.png>
+Package pdftex.def Info: LMDZ_perf.png used on input line 122.
+(pdftex.def)             Requested size: 318.44214pt x 153.57492pt.
+
+[4 <./LMDZ_perf.png (PNG copy)>] (./rapport ESIWACE.aux) ) 
+Here is how much of TeX's memory you used:
+ 4569 strings out of 494953
+ 60237 string characters out of 6180977
+ 137800 words of memory out of 5000000
+ 7791 multiletter control sequences out of 15000+600000
+ 9090 words of font info for 34 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 41i,8n,35p,426b,262s stack positions out of 5000i,500n,10000p,200000b,80000s
+</usr/share/texlive/t
+exmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/share/texlive/texmf-d
+ist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texlive/texmf-dist/fo
+nts/type1/public/amsfonts/cm/cmmi7.pfb></usr/share/texlive/texmf-dist/fonts/typ
+e1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-dist/fonts/type1/publ
+ic/amsfonts/cm/cmr12.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsf
+onts/cm/cmr17.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm
+/cmr6.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pf
+b></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/
+share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/
+texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb></usr/share/texliv
+e/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb></usr/share/texlive/texm
+f-dist/fonts/type1/public/amsfonts/cm/cmtt8.pfb>
+Output written on "rapport ESIWACE.pdf" (4 pages, 178489 bytes).
+PDF statistics:
+ 72 PDF objects out of 1000 (max. 8388607)
+ 49 compressed objects within 1 object stream
+ 0 named destinations out of 1000 (max. 500000)
+ 16 words of extra memory for PDF output out of 10000 (max. 10000000)
+
Index: /XIOS/dev/branch_openmp/Note/rapport ESIWACE.tex
===================================================================
--- /XIOS/dev/branch_openmp/Note/rapport ESIWACE.tex	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/rapport ESIWACE.tex	(revision 1548)
@@ -0,0 +1,139 @@
+\documentclass[a4paper,10pt]{article}
+\usepackage[utf8]{inputenc}
+\usepackage{graphicx}
+\usepackage{listings}
+\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
+\usepackage{amsmath}
+\usepackage{url}
+
+% Title Page
+
+\title{Developping XIOS with multithread : to accelerate the IO of climate models}
+
+\author{}
+
+
+\begin{document}
+\maketitle
+
+\section{Context}
+
+The simulation models of climate systems, running on a large number of computing resources can produce an important volume of data. At this 
+scale, the IO and the post-treatement of data becomes a bottle-neck for the performance. In order to manage efficiently the data flux 
+generated by the simulations, we use XIOS developped by the Institut Pierre Simon Laplace and Maison de la simulation.
+
+XIOS, a libarary dedicated to intense calculates, allows us to easily and efficiently manage the parallel IO on the storage systems. XIOS 
+uses the client/server scheme in which computing resources (server) are reserved exclusively for IO in order to minimize their impact on 
+the performance of the climate models (client). The clients and servers are executed in parallel and communicate asynchronuously. In this 
+way, the IO peaks can be smoothed out as data fluxes are send to server constantly throughout the simulation and the time spent on data 
+writing on the server side can be overlapped completely by calculates on the client side. 
+
+\begin{figure}[h]
+\includegraphics[scale=0.4]{Charge1.png}
+\includegraphics[scale=0.4]{Charge2.png}
+\caption{On the left, each peak of computing power corresponds to the vallay of memory bandwidth which shows that the computing resources 
+are alternating between calculates and IO. ON the right, both curves are smooth which means that the computing resources have a stable 
+charge of work, either calculates or IO.}
+\end{figure}
+
+
+XIOS works well with many climate simulation codes. For example, LMDZ\footnote{LMDZ is a general circulation model (or global climate model) 
+developped since the 70s at the "Laboratoire de MÃ©tÃ©orologie Dynamique", which includes various variants for the Earth and other planets 
+(Mars, Titan, Venus, Exoplanets). The 'Z' in LMDZ stands for "zoom" (and the 'LMD' is for  'Laboratoire de MÃ©tÃ©orologie Dynamique"). 
+\url{http://lmdz.lmd.jussieu.fr}}, NENO\footnote{Nucleus for European Modelling of the Ocean alias NEMO is a 
+state-of-the-art modelling framework of ocean related engines. \url{https://www.nemo-ocean.eu}}, ORCHIDEE\footnote{the land surface 
+model of the IPSL (Institut Pierre Simon Laplace) Earth System Model. \url{https://orchidee.ipsl.fr}}, and DYNAMICO\footnote{The DYNAMICO 
+project develops a new dynamical core for LMD-Z, the atmospheric general circulation model (GCM) part of IPSL-CM Earth System Model. 
+\url{http://www.lmd.polytechnique.fr/~dubos/DYNAMICO/}} all use XIOS as the output backend. M\'et\'eoFrance and MetOffice also choose XIOS 
+to manege the IO for their models.
+
+
+\section{Developpement of thread-friendly XIOS}
+
+
+XIOS is a library dedicated to IO management of climate code. It has a client-server pattern in which clients are in charge of computations 
+and servers manage the reading and writing of files. The communication between clients and servers are handled by MPI.
+However, some of the climate models (\textit{e.g.} LMDZ) nowadays use an hybrid programming policy. Within a shared memory node, OpenMP 
+directives are used to manage message exchanges. In such configuration, XIOS can not take full advantages of the computing resources to 
+maximize the performance. This is because XIOS can only work with MPI processes. Before each call of XIOS routines, threads of one MPI 
+process must gather their information to the master thread who works as an MPI process. After the call, the master thread distributes the 
+updated information among its slave threads. As result, all slave threads have to wait while the master thread calls the XIOS routines. 
+This introduce extra synchronization into the model and leads to not optimized performance. Aware of this situation, we need to develop a 
+new version of XIOS (EP\_XIOS) which can work with threads, or in other words, can consider threads as they were processes. To do so, we 
+introduce the MPI endpoints.  
+
+
+The MPI endpoints (EP) is a layer on top of an existing MPI Implementation. All MPI function, or in our work the functions used in XIOS, 
+will be reimplemented in order to cope with OpenMP threads. The idea is that, in the MPI endpoints environment, each OpenMP thread will be 
+associated with a unique rank and with an endpoint communicator. This rank (EP rank) will replace the role of the classic MPI rank and will 
+be used in MPI communications. In order to successfully execute an MPI communication, for example \verb|MPI_Send|, we know already which 
+endpoints to be the receiver but not sufficient. We also need to know which MPI process should be involved in such communication. To 
+identify the MPI rank, we added a ``map'' in the EP communicator in which the relation of all EP and MPI ranks can be easily obtained.
+
+
+In XIOS, we used the ``probe'' technique to search for arrived messages and then performing the receive action. The principle is 
+that sender processes execute the send operations as usual. However, to minimise the time spent on waiting incoming messages, the receiver 
+processe performs in the first place the \verb|MPI_Probe| function to check if a message destinated to it has been published. If yes, the 
+process execute in the second place the \verb|MPI_Recv| to receive the message. In this situation, if we introduce the threads, problems 
+occur. The reason why the ``probe'' method is not suitable is that messages destinated to one certain process can be probed by any of 
+its threads. Thus the message can be received by the wrong thread which gives errors.
+
+To solve this problem, we introduce the ``matching-probe'' technique. The idea of the method is that each process is equiped with a local 
+incoming message queue. All incoming message will be probed, sorted, and then stored in this queue according to their destination rank. 
+Every time we call an MPI function, we firstly call the \verb|MPI_Mprobe| function to get the handle to 
+the incoming message. Then, we identify the destination thread rank and store the message handle inside the local queue of the target 
+thread. After this, we perform the usual ``probe'' technique upon the local incoming message queue. In this way, we can assure the messages 
+to be received by the right thread.
+
+Another issue remains in this technique: how to identify the receiver's rank? The solution is to use the tag argument. In the MPI 
+environment, a tag is an integer ranging from 0 to $2^{31}$. We can explore the large range of the tag to store in it information about the 
+source and destination thread ranks. We choose to limite the first 15 bits for the tag used in the classic MPI communication, the next 8 
+bits to the sender's thread rank, and the last 8 bits to the receiver's thread rank. In such way, with an extra analysis of the EP tag, we 
+can identify the ranks of the sender and the receiver in any P2P communication. As results, we a thread probes a message, it knows 
+exactly in which local queue should store the probed message. 
+
+
+With the global rank map, tag extension, and the matching-probe techniques, we are able to use any P2P communication in the endpoint 
+environment. For the collective communications, we perform a step-by-step execution and no special technique is required. The most 
+representative functions is the collective communications are \verb|MPI_Gather| and \verb|MPI_Bcast|. A step-by-step execution consists of 
+3 steps (not necessarily in this order): arrangement of the source data, execution of the MPI function by all 
+master/root threads, distribution or arrangement of the data among threads. 
+
+For example, if we want to perform a broadcast operation, 2 steps are needed. Firstly, the root thread, along with the master threads of 
+other processes, perform the classic \verb|MPI_Bcast| operation. Secondly, the root thread, and the master threads send data to threads 
+sharing the same process via local memory transfer. In another example for illustrating the \verb|MPI_Gather| function, we also need 2 
+steps. First of all, data is gathered from slave threads to the master thread or the root thread. Next, the master thread and the root 
+thread execute the \verb|MPI_Gather| operation of complete the communication. Other collective calls such as \verb|MPI_Scan|, 
+\verb|MPI_Reduce|, \verb|MPI_Scatter| \textit{etc} follow the same principle of step-by-step execution.
+
+
+\section{Performance of LMDZ using EP\_XIOS}
+
+With the new version of XIOS, we are now capable of taking full advantages of the computing resources allocated by a simulation model when 
+calling XIOS functions. All threads, can participate in XIOS as if they are MPI processes. We have tested the EP\_XIOS in LMDZ and the 
+performance results are very encouraging.
+
+In our tests, we used 12 client processor with 8 threads each (96 XIOS clients in total), and one single-thread server processor. We have 2 
+output densities. The light output gives mainly 2 dimensional fields while the heavy output records more 3D fields. We also have differente 
+simulation duration settings: 1 day, 5 days, 15 days, and 31 days. 
+
+\begin{figure}[h]
+ \centering
+ \includegraphics[scale = 0.6]{LMDZ_perf.png}
+ \caption{Speedup obtained by using EP in LMDZ simulations.}
+\end{figure}
+
+In this figure, we show the speedup which is computed by $\displaystyle{\frac{time_{XIOS}}{time_{EP\_XIOS}}}$. The blue bars 
+represent speedup of the XIOS file output and the red bars the speedup of LMDZ: calculates + XIOS file output. In all experimens, 
+we can observe a speedup which represents a gain in performance. One important conclusion we can get from this result is that, more dense 
+the output is, more efficient is the EP\_XIOS. With 8 threads per process, we can reach a speedup in XIOS upto 6, and a speedup of 1.5 in 
+LMDZ which represents a decrease of the total execution time to 68\% ($\approx 1/1.5$). This observation confirmes steadily the importance 
+of using EP in XIOS.  
+
+The reason why LMDZ does not show much speedup, is because the model is calcutation dominant: time spent on calculation is much longer than 
+that on the file output. For example, if 30\% of the execution time is spent on the output, then with a speepup of 6, we can obtain a 
+decrease in time of 25\%. Even the 25\% may seems to be small, it is still a gain in performance with existing computing resources.
+
+\section{Perspectives of EP\_XIOS}
+
+\end{document}          
Index: /XIOS/dev/branch_openmp/Note/rapport ESIWACE.tex.backup
===================================================================
--- /XIOS/dev/branch_openmp/Note/rapport ESIWACE.tex.backup	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/rapport ESIWACE.tex.backup	(revision 1548)
@@ -0,0 +1,135 @@
+\documentclass[a4paper,10pt]{article}
+\usepackage[utf8]{inputenc}
+\usepackage{graphicx}
+\usepackage{listings}
+\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
+\usepackage{amsmath}
+
+% Title Page
+
+\title{Developping XIOS with multithread : to accelerate the IO of climate models}
+
+\author{}
+
+
+\begin{document}
+\maketitle
+
+\section{background}
+
+The simulation models of climate systems, running on a large number of computing resources can produce an important volume of data. At this 
+scale, the IO and the post-treatement of data becomes a bottle-neck for the performance. In order to manage efficiently the data flux 
+generated by the simulations, we use XIOS developped by the Institut Pierre Simon Laplace and Maison de la simulation.
+
+XIOS, a libarary dedicated to intense calculates, allows us to easily and efficiently manage the parallel IO on the storage systems. XIOS 
+uses the client/server scheme in which computing resources (server) are reserved exclusively for IO in order to minimize their impact on 
+the performance of the climate models (client).
+
+Cette bibliothÃšque, dÃ©diÃ©e au calcul intensif, permet de gÃ©rer efficacement et simplement les
+entrÃ©e/sortie parallÃšles des donnÃ©es sur les systÃšmes de stockage. Dans cette nouvelle
+approche, orientÃ©e client/serveur, des cÅurs de calcul sont exclusivement dÃ©diÃ©s aux I/O de
+faÃ§on Ã  minimiser leur impact sur le temps de calcul des modÃšles. Lâutilisation des
+communications asynchrones entre les modÃšles (clients) et les serveurs I/O permet de lisser
+les pics I/O en envoyant un flux de donnÃ©es constant au systÃšme de fichiers tout au long de la
+simulation, recouvrant ainsi totalement les Ã©critures par du calcul.
+
+
+The aim of this project ESIWACE is to develop a multithreaded version of XIOS, a library dedicated to IO manegement of climate code.
+The current XIOS code lies on a single level of parallelization using MPI. However, many climate models are now disigned with two-level 
+parallelization through MPI and OpenMP. The difference of parallelization between the climate models and XIOS can lead to performance lost 
+because XIOS can not cope with threads. This fact 
+
+
+The resulting multithreaded XIOS is desinged to cope with climate models which use a two-level parallelization (MPI/Openmp) scheme.
+The principle model we work with is the LMDZ code developped at Laboratoire de MÃ©tÃ©orologie Dynamique. This model has 
+
+
+
+\section{Developpement of a thread-friendly MPI for XIOS}
+
+XIOS is a library dedicated to IO management of climate code. It has a client-server pattern in which clients are in charge of computations 
+and servers manage the reading and writing of files. The communication between clients and servers are handled by MPI.
+However, some of the climate models (\textit{e.g.} LMDZ) nowadays use an hybrid programming policy. Within a shared memory node, OpenMP 
+directives are used to manage message exchanges. In such configuration, XIOS can not take full advantages of the computing resources to 
+maximize the performance. This is because XIOS can only work with MPI processes. Before each call of XIOS routines, threads of one MPI 
+process must gather their information to the master thread who works as an MPI process. After the call, the master thread distributes the 
+updated information among its slave threads. As result, all slave threads have to wait while the master thread calls the XIOS routines. 
+This introduce extra synchronization into the model and leads to not optimized performance. Aware of this situation, we need to develop a 
+new version of XIOS (EP\_XIOS) which can work with threads, or in other words, can consider threads as they were processes. To do so, we 
+introduce the MPI endpoints.  
+
+
+The MPI endpoints (EP) is a layer on top of an existing MPI Implementation. All MPI function, or in our work the functions used in XIOS, 
+will be reimplemented in order to cope with OpenMP threads. The idea is that, in the MPI endpoints environment, each OpenMP thread will be 
+associated with a unique rank and with an endpoint communicator. This rank (EP rank) will replace the role of the classic MPI rank and will 
+be used in MPI communications. In order to successfully execute an MPI communication, for example \verb|MPI_Send|, we know already which 
+endpoints to be the receiver but not sufficient. We also need to know which MPI process should be involved in such communication. To 
+identify the MPI rank, we added a ``map'' in the EP communicator in which the relation of all EP and MPI ranks can be easily obtained.
+
+
+In XIOS, we used the ``probe'' technique to search for arrived messages and then performing the receive action. The principle is 
+that sender processes execute the send operations as usual. However, to minimise the time spent on waiting incoming messages, the receiver 
+processe performs in the first place the \verb|MPI_Probe| function to check if a message destinated to it has been published. If yes, the 
+process execute in the second place the \verb|MPI_Recv| to receive the message. In this situation, if we introduce the threads, problems 
+occur. The reason why the ``probe'' method is not suitable is that messages destinated to one certain process can be probed by any of 
+its threads. Thus the message can be received by the wrong thread which gives errors.
+
+To solve this problem, we introduce the ``matching-probe'' technique. The idea of the method is that each process is equiped with a local 
+incoming message queue. All incoming message will be probed, sorted, and then stored in this queue according to their destination rank. 
+Every time we call an MPI function, we firstly call the \verb|MPI_Mprobe| function to get the handle to 
+the incoming message. Then, we identify the destination thread rank and store the message handle inside the local queue of the target 
+thread. After this, we perform the usual ``probe'' technique upon the local incoming message queue. In this way, we can assure the messages 
+to be received by the right thread.
+
+Another issue remains in this technique: how to identify the receiver's rank? The solution is to use the tag argument. In the MPI 
+environment, a tag is an integer ranging from 0 to $2^{31}$. We can explore the large range of the tag to store in it information about the 
+source and destination thread ranks. We choose to limite the first 15 bits for the tag used in the classic MPI communication, the next 8 
+bits to the sender's thread rank, and the last 8 bits to the receiver's thread rank. In such way, with an extra analysis of the EP tag, we 
+can identify the ranks of the sender and the receiver in any P2P communication. As results, we a thread probes a message, it knows 
+exactly in which local queue should store the probed message. 
+
+
+With the global rank map, tag extension, and the matching-probe techniques, we are able to use any P2P communication in the endpoint 
+environment. For the collective communications, we perform a step-by-step execution and no special technique is required. The most 
+representative functions is the collective communications are \verb|MPI_Gather| and \verb|MPI_Bcast|. A step-by-step execution consists of 
+3 steps (not necessarily in this order): arrangement of the source data, execution of the MPI function by all 
+master/root threads, distribution or arrangement of the data among threads. 
+
+For example, if we want to perform a broadcast operation, 2 steps are needed. Firstly, the root thread, along with the master threads of 
+other processes, perform the classic \verb|MPI_Bcast| operation. Secondly, the root thread, and the master threads send data to threads 
+sharing the same process via local memory transfer. In another example for illustrating the \verb|MPI_Gather| function, we also need 2 
+steps. First of all, data is gathered from slave threads to the master thread or the root thread. Next, the master thread and the root 
+thread execute the \verb|MPI_Gather| operation of complete the communication. Other collective calls such as \verb|MPI_Scan|, 
+\verb|MPI_Reduce|, \verb|MPI_Scatter| \textit{etc} follow the same principle of step-by-step execution.
+
+
+\section{Performance of LMDZ using EP\_XIOS}
+
+With the new version of XIOS, we are now capable of taking full advantages of the computing resources allocated by a simulation model when 
+calling XIOS functions. All threads, can participate in XIOS as if they are MPI processes. We have tested the EP\_XIOS in LMDZ and the 
+performance results are very encouraging.
+
+In our tests, we used 12 client processor with 8 threads each (96 XIOS clients in total), and one single-thread server processor. We have 2 
+output densities. The light output gives mainly 2 dimensional fields while the heavy output records more 3D fields. We also have differente 
+simulation duration settings: 1 day, 5 days, 15 days, and 31 days. 
+
+\begin{figure}[h]
+ \centering
+ \includegraphics[scale = 0.6]{LMDZ_perf.png}
+ \caption{Speedup obtained by using EP in LMDZ simulations.}
+\end{figure}
+
+In this figure, we show the speedup which is computed by $\displaystyle{\frac{time_{XIOS}}{time_{EP\_XIOS}}}$. The blue bars 
+represent speedup of the XIOS file output and the red bars the speedup of LMDZ: calculates + XIOS file output. In all experimens, 
+we can observe a speedup which represents a gain in performance. One important conclusion we can get from this result is that, more dense 
+the output is, more efficient is the EP\_XIOS. With 8 threads per process, we can reach a speedup in XIOS upto 6, and a speedup of 1.5 in 
+LMDZ which represents a decrease of the total execution time to 68\% ($\approx 1/1.5$). This observation confirmes steadily the importance 
+of using EP in XIOS.  
+
+The reason why LMDZ does not show much speedup, is because the model is calcutation dominant: time spent on calculation is much longer than 
+that on the file output. For example, if 30\% of the execution time is spent on the output, then with a speepup of 6, we can obtain a 
+decrease in time of 25\%. Even the 25\% may seems to be small, it is still a gain in performance with existing computing resources.
+
+\section{Perspectives of EP\_XIOS}
+
+\end{document}          
Index: /XIOS/dev/branch_openmp/Note/reference.bib
===================================================================
--- /XIOS/dev/branch_openmp/Note/reference.bib	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/reference.bib	(revision 1548)
@@ -0,0 +1,22 @@
+@book{MPI,
+ author = {Message Passing Interface Forum},
+ title = {MPI: A Message-Passing Interface Standard Version 3.1},
+ year = {2015},
+} 
+
+@conference {Dinan:2013,
+ title = {Enabling MPI Interoperability Through Flexible Communication Endpoints},
+ booktitle = {EuroMPI 2013},
+ year = {2013},
+ address = {Madrid, Spain},
+ author = {J. Dinan and Pavan Balaji and D. Goodell and D. Miller and M. Snir and Rajeev Thakur}
+}
+
+@INPROCEEDINGS{Sridharan:2014,
+ author={S. Sridharan and J. Dinan and D. D. Kalamkar},
+ booktitle={SC14: International Conference for High Performance Computing, Networking, Storage and Analysis},
+ title={Enabling Efficient Multithreaded MPI Communication through a Library-Based Implementation of MPI Endpoints},
+ year={2014},
+ pages={487-498},
+ month={Nov}
+}
Index: /XIOS/dev/branch_openmp/Note/scheme.svg
===================================================================
--- /XIOS/dev/branch_openmp/Note/scheme.svg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/scheme.svg	(revision 1548)
@@ -0,0 +1,331 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+    xmlns:latexdraw="http://latexdraw.sourceforge.net/namespaces/latexdraw"
+    version="1.1" baseProfile="full">
+    <defs>
+        <marker overflow="visible" orient="auto" id="arrow2-70">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-72">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-79">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-83">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+    </defs>
+    <g>
+        <g latexdraw:type="circle" id="id43">
+            <circle cx="415.0" cy="205.0" r="34.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#c8e6de"/>
+        </g>
+        <g latexdraw:type="dot" id="id45" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="700.0 200.0">
+            <circle r="3.0" fill="black" cx="700.0" cy="200.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id46" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="720.0 200.0">
+            <circle r="3.0" fill="black" cx="720.0" cy="200.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id47" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="740.0 200.0">
+            <circle r="3.0" fill="black" cx="740.0" cy="200.0"/>
+        </g>
+        <g latexdraw:type="text" id="id48" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="530.0">
+            <text x="530.0" y="150.0"><![CDATA[MPI_COMM_WORLD]]></text>
+        </g>
+        <g latexdraw:type="circle" id="id50">
+            <circle cx="525.0" cy="205.0" r="34.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#c8e6de"/>
+        </g>
+        <g latexdraw:type="triangle" id="id52" latexdraw:points="430.0 190.0 840.0 190.0 430.0 340.0 840.0 340.0">
+            <polygon
+                points="635.0,191.2391 837.0895,339.0 432.91052,339.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="circle" id="id53">
+            <circle cx="635.0" cy="205.0" r="34.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#c8e6de"/>
+        </g>
+        <g latexdraw:type="circle" id="id55">
+            <circle cx="805.0" cy="205.0" r="34.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#c8e6de"/>
+        </g>
+        <g latexdraw:type="text" id="id57" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="400.0">
+            <text x="400.0" y="210.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id59" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="510.0">
+            <text x="510.0" y="210.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id61" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="620.0">
+            <text x="620.0" y="210.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id63" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="790.0">
+            <text x="790.0" y="210.0"><![CDATA[Pn]]></text>
+        </g>
+        <g latexdraw:type="text" id="id65" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="620.0">
+            <text x="620.0" y="370.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="square" id="id67">
+            <rect x="471.0" y="381.0" width="38.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id68" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="410.0"><![CDATA[t0]]></text>
+        </g>
+        <g latexdraw:type="line" id="id70">
+            <line x1="490.0" x2="490.0" y1="420.0" y2="460.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-70)"/>
+        </g>
+        <g latexdraw:type="square" id="id71">
+            <rect x="569.3333333333334" y="381.00000000000006"
+                width="37.999999999999886" height="37.999999999999886"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="line" id="id72">
+            <line x1="590.0" x2="590.0" y1="420.0" y2="460.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-72)"/>
+        </g>
+        <g latexdraw:type="text" id="id73" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="580.0">
+            <text x="580.0" y="410.0"><![CDATA[t1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id75" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="190.0">
+            <text x="190.0" y="210.0"><![CDATA[MPI Processes]]></text>
+        </g>
+        <g latexdraw:type="text" id="id77" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="190.0">
+            <text x="190.0" y="410.0"><![CDATA[Threads]]></text>
+        </g>
+        <g latexdraw:type="line" id="id79">
+            <line x1="690.0" x2="690.0" y1="390.0" y2="460.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-79)"/>
+        </g>
+        <g latexdraw:type="square" id="id80">
+            <rect x="669.3333333333334" y="381.00000000000006"
+                width="37.999999999999886" height="37.999999999999886"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id81" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="680.0">
+            <text x="680.0" y="410.0"><![CDATA[t2]]></text>
+        </g>
+        <g latexdraw:type="line" id="id83">
+            <line x1="790.0" x2="790.0" y1="390.0" y2="460.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-83)"/>
+        </g>
+        <g latexdraw:type="square" id="id84">
+            <rect x="769.3333333333334" y="381.00000000000006"
+                width="37.999999999999886" height="37.999999999999886"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id85" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="780.0">
+            <text x="780.0" y="410.0"><![CDATA[t3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id87" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="190.0">
+            <text x="190.0" y="580.0"><![CDATA[Global Endpoint Rank]]></text>
+        </g>
+        <g latexdraw:type="dot" id="id89" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="400.0 220.0">
+            <circle r="3.0" fill="black" cx="400.0" cy="220.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id90" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="420.0 220.0">
+            <circle r="3.0" fill="black" cx="420.0" cy="220.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id91" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="430.0 220.0">
+            <circle r="3.0" fill="black" cx="430.0" cy="220.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id92" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="410.0 220.0">
+            <circle r="3.0" fill="black" cx="410.0" cy="220.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id93" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="510.0 220.0">
+            <circle r="3.0" fill="black" cx="510.0" cy="220.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id94" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="530.0 220.0">
+            <circle r="3.0" fill="black" cx="530.0" cy="220.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id95" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="520.0 220.0">
+            <circle r="3.0" fill="black" cx="520.0" cy="220.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id96" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="620.0 220.0">
+            <circle r="3.0" fill="black" cx="620.0" cy="220.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id97" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="630.0 220.0">
+            <circle r="3.0" fill="black" cx="630.0" cy="220.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id98" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="640.0 220.0">
+            <circle r="3.0" fill="black" cx="640.0" cy="220.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id99" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="650.0 220.0">
+            <circle r="3.0" fill="black" cx="650.0" cy="220.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id100" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="790.0 220.0">
+            <circle r="3.0" fill="black" cx="790.0" cy="220.0"/>
+        </g>
+        <g latexdraw:type="dot" id="id101" latexdraw:size="6.0"
+            latexdraw:dotShape="dot" latexdraw:position="810.0 220.0">
+            <circle r="3.0" fill="black" cx="810.0" cy="220.0"/>
+        </g>
+        <g latexdraw:type="text" id="id102" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="190.0">
+            <text x="190.0" y="510.0"><![CDATA[EP_Comm]]></text>
+        </g>
+        <g latexdraw:type="circle" id="id104">
+            <circle cx="485.0" cy="505.0" r="44.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#f4d0fd"/>
+        </g>
+        <g latexdraw:type="text" id="id106" font-family="Dialog"
+            fill="black" font-size="16" latexdraw:x="450.0">
+            <text x="450.0" y="510.0"><![CDATA[comm[0]]]></text>
+        </g>
+        <g latexdraw:type="text" id="id108" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="580.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="text" id="id110" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="580.0">
+            <text x="580.0" y="580.0"><![CDATA[8]]></text>
+        </g>
+        <g latexdraw:type="text" id="id112" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="680.0">
+            <text x="680.0" y="580.0"><![CDATA[9]]></text>
+        </g>
+        <g latexdraw:type="text" id="id114" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="780.0">
+            <text x="780.0" y="580.0"><![CDATA[10]]></text>
+        </g>
+        <g latexdraw:type="line" id="id116">
+            <line x1="430.0" x2="430.0" y1="340.0" y2="640.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id117">
+            <line x1="840.0" x2="840.0" y1="340.0" y2="640.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id118">
+            <line x1="430.0" x2="840.0" y1="640.0" y2="640.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id119" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="190.0">
+            <text x="190.0" y="620.0"><![CDATA[Local Endpoint Rank]]></text>
+        </g>
+        <g latexdraw:type="text" id="id121" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="620.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id123" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="580.0">
+            <text x="580.0" y="620.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id125" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="680.0">
+            <text x="680.0" y="620.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id127" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="780.0">
+            <text x="780.0" y="620.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="circle" id="id129">
+            <circle cx="585.0" cy="505.0" r="44.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#f4d0fd"/>
+        </g>
+        <g latexdraw:type="text" id="id131" font-family="Dialog"
+            fill="black" font-size="16" latexdraw:x="550.0">
+            <text x="550.0" y="510.0"><![CDATA[comm[1]]]></text>
+        </g>
+        <g latexdraw:type="circle" id="id133">
+            <circle cx="685.0" cy="505.0" r="44.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#f4d0fd"/>
+        </g>
+        <g latexdraw:type="text" id="id135" font-family="Dialog"
+            fill="black" font-size="16" latexdraw:x="650.0">
+            <text x="650.0" y="510.0"><![CDATA[comm[2]]]></text>
+        </g>
+        <g latexdraw:type="circle" id="id137">
+            <circle cx="785.0" cy="505.0" r="44.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#f4d0fd"/>
+        </g>
+        <g latexdraw:type="text" id="id139" font-family="Dialog"
+            fill="black" font-size="16" latexdraw:x="750.0">
+            <text x="750.0" y="510.0"><![CDATA[comm[3]]]></text>
+        </g>
+    </g>
+    <metadata>
+        <latexdraw:metadata>
+            <latexdraw:displayBorders>true</latexdraw:displayBorders>
+            <latexdraw:autoAdjust>true</latexdraw:autoAdjust>
+            <latexdraw:ppc>50</latexdraw:ppc>
+            <latexdraw:zoom>1.0</latexdraw:zoom>
+            <latexdraw:unit>cm</latexdraw:unit>
+            <latexdraw:classicGrid>false</latexdraw:classicGrid>
+            <latexdraw:gridGap>10</latexdraw:gridGap>
+            <latexdraw:code>0</latexdraw:code>
+            <latexdraw:displayGrid>true</latexdraw:displayGrid>
+            <latexdraw:magneticGrid>true</latexdraw:magneticGrid>
+            <latexdraw:autoUpdate>true</latexdraw:autoUpdate>
+            <latexdraw:version>2.0.8</latexdraw:version>
+            <latexdraw:size>
+                <latexdraw:width>1867</latexdraw:width>
+                <latexdraw:height>1176</latexdraw:height>
+            </latexdraw:size>
+            <latexdraw:position>
+                <latexdraw:x>53</latexdraw:x>
+                <latexdraw:y>24</latexdraw:y>
+            </latexdraw:position>
+            <latexdraw:dividerPosition>0.8435993572576326</latexdraw:dividerPosition>
+            <latexdraw:displayCodePanel>true</latexdraw:displayCodePanel>
+            <latexdraw:displayXScale>true</latexdraw:displayXScale>
+            <latexdraw:displayYScale>true</latexdraw:displayYScale>
+            <latexdraw:delimitorOpacity>138</latexdraw:delimitorOpacity>
+        </latexdraw:metadata>
+    </metadata>
+</svg>
Index: /XIOS/dev/branch_openmp/Note/sendrecv.svg
===================================================================
--- /XIOS/dev/branch_openmp/Note/sendrecv.svg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/sendrecv.svg	(revision 1548)
@@ -0,0 +1,460 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+    xmlns:latexdraw="http://latexdraw.sourceforge.net/namespaces/latexdraw"
+    version="1.1" baseProfile="full">
+    <defs>
+        <marker overflow="visible" orient="auto" id="arrow2-7861">
+            <path
+                d="M 0.0 0.0 L -3.7260416666666667 1.3307291666666667 L -2.2356249999999998 0.0 L -3.7260416666666667 -1.3307291666666667 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7875">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7876">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7887">
+            <path
+                d="M 0.0 0.0 L 4.652083333333334 1.6614583333333335 L 2.79125 0.0 L 4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="red"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7893">
+            <path
+                d="M 0.0 0.0 L -3.7260416666666667 1.3307291666666667 L -2.2356249999999998 0.0 L -3.7260416666666667 -1.3307291666666667 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7897">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7898">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7899">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7910">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7911">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7932">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7933">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7944">
+            <path
+                d="M 0.0 0.0 L 4.652083333333334 1.6614583333333335 L 2.79125 0.0 L 4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="red"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7951">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7952">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7975">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7976">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7977">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7987">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-7991">
+            <path
+                d="M 0.0 0.0 L -4.652083333333334 1.6614583333333335 L -2.79125 0.0 L -4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+    </defs>
+    <g>
+        <g latexdraw:type="rectangle" id="id7853">
+            <rect x="281.0" y="711.0" width="58.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="red" fill="#d8fbf2"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id7854">
+            <rect x="281.0" y="361.0" width="68.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="red" fill="#d8fbf2"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id7855">
+            <rect x="621.0" y="291.0" width="88.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fdfbfb" fill="#fcddff"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id7856">
+            <rect x="521.0" y="291.0" width="98.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fdfbfb" fill="#f3ffdd"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id7857">
+            <rect x="351.0" y="291.0" width="168.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#deddff"/>
+        </g>
+        <g latexdraw:type="text" id="id7858" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="200.0">
+            <text x="200.0" y="270.0"><![CDATA[EP_Send(dest=3, tag=1, comm)]]></text>
+        </g>
+        <g latexdraw:type="line" id="id7861">
+            <line x1="250.0" x2="250.0" y1="290.0" y2="360.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7861)"/>
+        </g>
+        <g latexdraw:type="text" id="id7862" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="270.0">
+            <text x="270.0" y="310.0"><![CDATA[mpi_tag=000000000000001 00000000 00000001 (binary)]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7865" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="270.0">
+            <text x="270.0" y="340.0"><![CDATA[mpi_tag=65537 (decimal)]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7868" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="190.0">
+            <text x="190.0" y="380.0"><![CDATA[MPI_Send(dest=1, tag=65537, mpi_comm)]]></text>
+        </g>
+        <g latexdraw:type="square" id="id7871">
+            <rect x="121.0" y="91.0" width="38.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id7872" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="130.0">
+            <text x="130.0" y="120.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="line" id="id7875">
+            <line x1="130.0" x2="100.0" y1="130.0" y2="170.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7875)"/>
+        </g>
+        <g latexdraw:type="line" id="id7876">
+            <line x1="150.0" x2="180.0" y1="130.0" y2="170.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7876)"/>
+        </g>
+        <g latexdraw:type="circle" id="id7877">
+            <circle cx="105.0" cy="195.0" r="24.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id7879" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="90.0">
+            <text x="90.0" y="200.0"><![CDATA[0/0]]></text>
+        </g>
+        <g latexdraw:type="circle" id="id7882">
+            <circle cx="185.0" cy="195.0" r="24.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id7884" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="170.0">
+            <text x="170.0" y="200.0"><![CDATA[1/1]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id7887">
+            <path
+                d="M 100.0 220.0 C 100.0 260.0 350.0 260.0 350.0 220.0 "
+                stroke-width="2.0" stroke="red" fill="none"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7887)"/>
+        </g>
+        <g latexdraw:type="text" id="id7890" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="200.0">
+            <text x="200.0" y="610.0"><![CDATA[EP_Recv(src=0, tag=1, comm)]]></text>
+        </g>
+        <g latexdraw:type="line" id="id7893">
+            <line x1="260.0" x2="260.0" y1="630.0" y2="700.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7893)"/>
+        </g>
+        <g latexdraw:type="text" id="id7894" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="190.0">
+            <text x="190.0" y="730.0"><![CDATA[MPI_Recv(src=0, tag=65537, mpi_comm)]]></text>
+        </g>
+        <g latexdraw:type="line" id="id7897">
+            <line x1="470.0" x2="510.0" y1="290.0" y2="270.0"
+                stroke-width="2.0" stroke="#010101"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7897)"/>
+        </g>
+        <g latexdraw:type="line" id="id7898">
+            <line x1="570.0" x2="610.0" y1="290.0" y2="270.0"
+                stroke-width="2.0" stroke="#010101"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7898)"/>
+        </g>
+        <g latexdraw:type="line" id="id7899">
+            <line x1="350.0" x2="390.0" y1="390.0" y2="410.0"
+                stroke-width="2.0" stroke="#010101"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7899)"/>
+        </g>
+        <g latexdraw:type="text" id="id7900" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="510.0">
+            <text x="510.0" y="270.0"><![CDATA[tag=1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7903" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="610.0">
+            <text x="610.0" y="270.0"><![CDATA[src local rank=0]]></text>
+        </g>
+        <g latexdraw:type="square" id="id7906">
+            <rect x="291.0" y="91.0" width="38.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id7907" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="300.0">
+            <text x="300.0" y="120.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="line" id="id7910">
+            <line x1="300.0" x2="270.0" y1="130.0" y2="170.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7910)"/>
+        </g>
+        <g latexdraw:type="line" id="id7911">
+            <line x1="320.0" x2="350.0" y1="130.0" y2="170.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7911)"/>
+        </g>
+        <g latexdraw:type="circle" id="id7912">
+            <circle cx="275.0" cy="195.0" r="24.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id7914" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="260.0">
+            <text x="260.0" y="200.0"><![CDATA[0/2]]></text>
+        </g>
+        <g latexdraw:type="circle" id="id7917">
+            <circle cx="355.0" cy="195.0" r="24.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id7919" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="340.0">
+            <text x="340.0" y="200.0"><![CDATA[1/3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7922" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="410.0">
+            <text x="410.0" y="200.0"><![CDATA[local rank / rank]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7925" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="390.0">
+            <text x="390.0" y="420.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="square" id="id7928">
+            <rect x="121.0" y="421.0" width="38.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id7929" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="130.0">
+            <text x="130.0" y="450.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="line" id="id7932">
+            <line x1="130.0" x2="100.0" y1="460.0" y2="500.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7932)"/>
+        </g>
+        <g latexdraw:type="line" id="id7933">
+            <line x1="150.0" x2="180.0" y1="460.0" y2="500.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7933)"/>
+        </g>
+        <g latexdraw:type="circle" id="id7934">
+            <circle cx="105.0" cy="525.0" r="24.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id7936" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="90.0">
+            <text x="90.0" y="530.0"><![CDATA[0/0]]></text>
+        </g>
+        <g latexdraw:type="circle" id="id7939">
+            <circle cx="185.0" cy="525.0" r="24.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id7941" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="170.0">
+            <text x="170.0" y="530.0"><![CDATA[1/1]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id7944">
+            <path
+                d="M 350.0 550.0 C 350.0 590.0 100.0 590.0 100.0 550.0 "
+                stroke-width="2.0" stroke="red" fill="none"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7944)"/>
+        </g>
+        <g latexdraw:type="square" id="id7947">
+            <rect x="291.0" y="421.0" width="38.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id7948" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="300.0">
+            <text x="300.0" y="450.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="line" id="id7951">
+            <line x1="300.0" x2="270.0" y1="460.0" y2="500.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7951)"/>
+        </g>
+        <g latexdraw:type="line" id="id7952">
+            <line x1="320.0" x2="350.0" y1="460.0" y2="500.0"
+                stroke-width="2.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7952)"/>
+        </g>
+        <g latexdraw:type="circle" id="id7953">
+            <circle cx="275.0" cy="525.0" r="24.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id7955" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="260.0">
+            <text x="260.0" y="530.0"><![CDATA[0/2]]></text>
+        </g>
+        <g latexdraw:type="circle" id="id7958">
+            <circle cx="355.0" cy="525.0" r="24.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id7960" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="340.0">
+            <text x="340.0" y="530.0"><![CDATA[1/3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7963" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="410.0">
+            <text x="410.0" y="530.0"><![CDATA[local rank / rank]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id7966">
+            <rect x="631.0" y="631.0" width="88.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fdfbfb" fill="#fcddff"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id7967">
+            <rect x="531.0" y="631.0" width="98.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fdfbfb" fill="#f3ffdd"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id7968">
+            <rect x="361.0" y="631.0" width="168.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#deddff"/>
+        </g>
+        <g latexdraw:type="text" id="id7969" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="280.0">
+            <text x="280.0" y="650.0"><![CDATA[mpi_tag=000000000000001 00000000 00000001 (binary)]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7972" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="280.0">
+            <text x="280.0" y="680.0"><![CDATA[mpi_tag=65537 (decimal)]]></text>
+        </g>
+        <g latexdraw:type="line" id="id7975">
+            <line x1="480.0" x2="520.0" y1="630.0" y2="610.0"
+                stroke-width="2.0" stroke="#010101"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7975)"/>
+        </g>
+        <g latexdraw:type="line" id="id7976">
+            <line x1="580.0" x2="620.0" y1="630.0" y2="610.0"
+                stroke-width="2.0" stroke="#010101"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7976)"/>
+        </g>
+        <g latexdraw:type="line" id="id7977">
+            <line x1="680.0" x2="720.0" y1="660.0" y2="680.0"
+                stroke-width="2.0" stroke="#010101"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7977)"/>
+        </g>
+        <g latexdraw:type="text" id="id7978" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="520.0">
+            <text x="520.0" y="610.0"><![CDATA[tag=1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7981" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="620.0">
+            <text x="620.0" y="610.0"><![CDATA[src local rank=0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id7984" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="730.0">
+            <text x="730.0" y="680.0"><![CDATA[dest local rank = 1]]></text>
+        </g>
+        <g latexdraw:type="line" id="id7987">
+            <line x1="340.0" x2="380.0" y1="740.0" y2="760.0"
+                stroke-width="2.0" stroke="#010101"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7987)"/>
+        </g>
+        <g latexdraw:type="text" id="id7988" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="380.0">
+            <text x="380.0" y="770.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="line" id="id7991">
+            <line x1="670.0" x2="710.0" y1="320.0" y2="340.0"
+                stroke-width="2.0" stroke="#010101"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-7991)"/>
+        </g>
+        <g latexdraw:type="text" id="id7992" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="720.0">
+            <text x="720.0" y="340.0"><![CDATA[dest local rank = 1]]></text>
+        </g>
+    </g>
+    <metadata>
+        <latexdraw:metadata>
+            <latexdraw:displayBorders>false</latexdraw:displayBorders>
+            <latexdraw:autoAdjust>true</latexdraw:autoAdjust>
+            <latexdraw:ppc>50</latexdraw:ppc>
+            <latexdraw:zoom>1.0</latexdraw:zoom>
+            <latexdraw:unit>cm</latexdraw:unit>
+            <latexdraw:classicGrid>false</latexdraw:classicGrid>
+            <latexdraw:gridGap>10</latexdraw:gridGap>
+            <latexdraw:code>0</latexdraw:code>
+            <latexdraw:displayGrid>true</latexdraw:displayGrid>
+            <latexdraw:magneticGrid>true</latexdraw:magneticGrid>
+            <latexdraw:autoUpdate>true</latexdraw:autoUpdate>
+            <latexdraw:version>2.0.8</latexdraw:version>
+            <latexdraw:size>
+                <latexdraw:width>1867</latexdraw:width>
+                <latexdraw:height>1176</latexdraw:height>
+            </latexdraw:size>
+            <latexdraw:position>
+                <latexdraw:x>53</latexdraw:x>
+                <latexdraw:y>24</latexdraw:y>
+            </latexdraw:position>
+            <latexdraw:dividerPosition>0.8489555436529191</latexdraw:dividerPosition>
+            <latexdraw:displayCodePanel>true</latexdraw:displayCodePanel>
+            <latexdraw:displayXScale>true</latexdraw:displayXScale>
+            <latexdraw:displayYScale>true</latexdraw:displayYScale>
+            <latexdraw:delimitorOpacity>138</latexdraw:delimitorOpacity>
+        </latexdraw:metadata>
+    </metadata>
+</svg>
Index: /XIOS/dev/branch_openmp/Note/sendrecv2.svg
===================================================================
--- /XIOS/dev/branch_openmp/Note/sendrecv2.svg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/sendrecv2.svg	(revision 1548)
@@ -0,0 +1,764 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+    xmlns:latexdraw="http://latexdraw.sourceforge.net/namespaces/latexdraw"
+    version="1.1" baseProfile="full">
+    <defs>
+        <marker overflow="visible" orient="auto" id="arrow2-49954">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-50003">
+            <path
+                d="M 0.0 0.0 L 4.652083333333334 1.6614583333333335 L 2.79125 0.0 L 4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-50024">
+            <path
+                d="M 0.0 0.0 L 4.652083333333334 1.6614583333333335 L 2.79125 0.0 L 4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-50027">
+            <path
+                d="M 0.0 0.0 L 3.7260416666666667 1.3307291666666667 L 2.2356249999999998 0.0 L 3.7260416666666667 -1.3307291666666667 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-50084">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-50126">
+            <path
+                d="M 0.0 0.0 L 4.652083333333334 1.6614583333333335 L 2.79125 0.0 L 4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-50147">
+            <path
+                d="M 0.0 0.0 L 3.7260416666666667 1.3307291666666667 L 2.2356249999999998 0.0 L 3.7260416666666667 -1.3307291666666667 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-50156">
+            <path
+                d="M 0.0 0.0 L 4.652083333333334 1.6614583333333335 L 2.79125 0.0 L 4.652083333333334 -1.6614583333333335 z "
+                latexdraw:arrSizeNum="2.0" fill="#010101"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow1-50159">
+            <path
+                d="M 0.0 0.0 L 3.7260416666666667 1.3307291666666667 L 2.2356249999999998 0.0 L 3.7260416666666667 -1.3307291666666667 z "
+                latexdraw:arrSizeNum="2.0" fill="#bdb8b8"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-50159">
+            <path
+                d="M 0.0 0.0 L -3.7260416666666667 1.3307291666666667 L -2.2356249999999998 0.0 L -3.7260416666666667 -1.3307291666666667 z "
+                latexdraw:arrSizeNum="2.0" fill="#bdb8b8"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow1-50160">
+            <path
+                d="M 0.0 0.0 L 3.7260416666666667 1.3307291666666667 L 2.2356249999999998 0.0 L 3.7260416666666667 -1.3307291666666667 z "
+                latexdraw:arrSizeNum="2.0" fill="#bdb8b8"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-50160">
+            <path
+                d="M 0.0 0.0 L -3.7260416666666667 1.3307291666666667 L -2.2356249999999998 0.0 L -3.7260416666666667 -1.3307291666666667 z "
+                latexdraw:arrSizeNum="2.0" fill="#bdb8b8"/>
+        </marker>
+    </defs>
+    <g>
+        <g latexdraw:type="rectangle" id="id49906">
+            <rect x="721.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id49907">
+            <rect x="601.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id49908">
+            <rect x="361.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id49909">
+            <rect x="481.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id49910" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="380.0">
+            <text x="380.0" y="210.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49912" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="500.0">
+            <text x="500.0" y="210.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="square" id="id49914">
+            <rect x="381.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id49915">
+            <rect x="381.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id49916">
+            <rect x="501.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id49917">
+            <rect x="501.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id49918" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="390.0">
+            <text x="390.0" y="280.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49920" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="390.0">
+            <text x="390.0" y="340.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49922" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="510.0">
+            <text x="510.0" y="280.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49924" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="510.0">
+            <text x="510.0" y="340.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49926" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="620.0">
+            <text x="620.0" y="210.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49928" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="740.0">
+            <text x="740.0" y="210.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="square" id="id49930">
+            <rect x="621.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id49931">
+            <rect x="621.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id49932">
+            <rect x="741.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id49933">
+            <rect x="741.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id49934" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="630.0">
+            <text x="630.0" y="280.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49936" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="630.0">
+            <text x="630.0" y="340.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49938" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="750.0">
+            <text x="750.0" y="340.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49940" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="750.0">
+            <text x="750.0" y="280.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id49942">
+            <ellipse cx="570.0" cy="270.0" rx="259.0" ry="29.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="red" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id49944" font-family="Dialog"
+            fill="red" font-size="18" latexdraw:x="280.0">
+            <text x="280.0" y="230.0"><![CDATA[\color{red}commA]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49946" font-family="Dialog"
+            fill="red" font-size="18" latexdraw:x="250.0">
+            <text x="250.0" y="250.0"><![CDATA[\color{red}color = red]]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id49948">
+            <ellipse cx="580.0" cy="340.0" rx="259.0" ry="29.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="lime" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id49950" font-family="Dialog"
+            fill="lime" font-size="18" latexdraw:x="280.0">
+            <text x="280.0" y="380.0"><![CDATA[\color{green}commB]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49952" font-family="Dialog"
+            fill="lime" font-size="18" latexdraw:x="250.0">
+            <text x="250.0" y="400.0"><![CDATA[\color{green}color = green]]></text>
+        </g>
+        <g latexdraw:type="line" id="id49954">
+            <line x1="840.0" x2="950.0" y1="310.0" y2="310.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-49954)"/>
+        </g>
+        <g latexdraw:type="text" id="id49955" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="840.0">
+            <text x="840.0" y="290.0"><![CDATA[intercomm]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id49958">
+            <rect x="1331.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id49959">
+            <rect x="1211.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id49960">
+            <rect x="971.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id49961">
+            <rect x="1091.0" y="231.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id49962" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="990.0">
+            <text x="990.0" y="210.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49964" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1230.0">
+            <text x="1230.0" y="210.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="square" id="id49966">
+            <rect x="1111.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id49967">
+            <rect x="991.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id49968">
+            <rect x="991.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id49969">
+            <rect x="1111.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id49970" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1000.0">
+            <text x="1000.0" y="280.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49972" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1000.0">
+            <text x="1000.0" y="340.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49974" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1120.0">
+            <text x="1120.0" y="280.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49976" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1120.0">
+            <text x="1120.0" y="340.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49978" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1350.0">
+            <text x="1350.0" y="210.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49980" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1110.0">
+            <text x="1110.0" y="210.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="square" id="id49983">
+            <rect x="1231.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id49984">
+            <rect x="1231.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id49985">
+            <rect x="1351.0" y="261.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id49986">
+            <rect x="1351.0" y="321.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id49987" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1240.0">
+            <text x="1240.0" y="280.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49989" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1240.0">
+            <text x="1240.0" y="340.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49991" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1360.0">
+            <text x="1360.0" y="340.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id49993" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1360.0">
+            <text x="1360.0" y="280.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id49995">
+            <ellipse cx="1250.0" cy="310.0" rx="179.0" ry="79.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="red" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id49997" font-family="Dialog"
+            fill="red" font-size="18" latexdraw:x="1300.0">
+            <text x="1300.0" y="400.0"><![CDATA[\color{red}commA']]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id49999">
+            <ellipse cx="1000.0" cy="305.0" rx="39.0" ry="64.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="lime" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id50001" font-family="Dialog"
+            fill="lime" font-size="18" latexdraw:x="970.0">
+            <text x="970.0" y="400.0"><![CDATA[\color{green}commB']]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id50003">
+            <path
+                d="M 520.0 290.0 C 540.0 330.0 570.0 370.0 590.0 400.0 C 610.0 430.0 630.0 380.0 640.0 350.0 "
+                stroke-width="2.0" stroke="#010101" fill="none"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-50003)"/>
+        </g>
+        <g latexdraw:type="text" id="id50006" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="430.0">
+            <text x="430.0" y="430.0"><![CDATA[MPI_Send(buf, dest=2, tag, intercomm)]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50009" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="470.0"><![CDATA[src = 1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50012" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="500.0"><![CDATA[src_label = local_rank_map->at(1).second = 1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50015" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="530.0"><![CDATA[dest_label = remote_rank_map->at(2).second = 1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50018" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="560.0"><![CDATA[src_rank = local_rank_map->at(1).first = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50021" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="480.0">
+            <text x="480.0" y="590.0"><![CDATA[dest_rank = remote_rank_map->at(dest).first = 3]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id50024">
+            <path
+                d="M 1130.0 290.0 C 1150.0 330.0 1180.0 370.0 1200.0 400.0 C 1220.0 430.0 1240.0 380.0 1250.0 350.0 "
+                stroke-width="2.0" stroke="#010101" fill="none"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-50024)"/>
+        </g>
+        <g latexdraw:type="joinedLines" id="id50027">
+            <polyline
+                points="460.0,450.0 460.0,620.0 1070.0,620.0 1070.0,450.0 "
+                stroke-width="4.0" stroke="#010101" fill="none"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-50027)"/>
+        </g>
+        <g latexdraw:type="text" id="id50030" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1020.0">
+            <text x="1020.0" y="440.0"><![CDATA[MPI_Send(buf, dest_rank=3, tag, commA')]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50033" font-family="Dialog"
+            fill="red" font-size="18" latexdraw:x="1090.0">
+            <text x="1090.0" y="580.0"><![CDATA[\color{red}intra-communication]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id50036">
+            <rect x="721.0" y="691.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id50037">
+            <rect x="601.0" y="691.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id50038">
+            <rect x="361.0" y="691.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id50039">
+            <rect x="481.0" y="691.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id50040" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="380.0">
+            <text x="380.0" y="670.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50042" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="500.0">
+            <text x="500.0" y="670.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="square" id="id50044">
+            <rect x="381.0" y="721.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id50045">
+            <rect x="381.0" y="781.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id50046">
+            <rect x="501.0" y="721.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id50047">
+            <rect x="501.0" y="781.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id50048" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="390.0">
+            <text x="390.0" y="740.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50050" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="390.0">
+            <text x="390.0" y="800.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50052" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="510.0">
+            <text x="510.0" y="740.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50054" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="510.0">
+            <text x="510.0" y="800.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50056" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="620.0">
+            <text x="620.0" y="670.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50058" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="740.0">
+            <text x="740.0" y="670.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="square" id="id50060">
+            <rect x="621.0" y="721.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id50061">
+            <rect x="621.0" y="781.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id50062">
+            <rect x="741.0" y="721.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id50063">
+            <rect x="741.0" y="781.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id50064" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="630.0">
+            <text x="630.0" y="740.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50066" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="630.0">
+            <text x="630.0" y="800.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50068" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="750.0">
+            <text x="750.0" y="800.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50070" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="750.0">
+            <text x="750.0" y="740.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id50072">
+            <ellipse cx="570.0" cy="730.0" rx="259.0" ry="29.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="red" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id50074" font-family="Dialog"
+            fill="red" font-size="18" latexdraw:x="280.0">
+            <text x="280.0" y="690.0"><![CDATA[\color{red}commA]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50076" font-family="Dialog"
+            fill="red" font-size="18" latexdraw:x="250.0">
+            <text x="250.0" y="710.0"><![CDATA[\color{red}color = red]]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id50078">
+            <ellipse cx="580.0" cy="800.0" rx="259.0" ry="29.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="lime" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id50080" font-family="Dialog"
+            fill="lime" font-size="18" latexdraw:x="280.0">
+            <text x="280.0" y="840.0"><![CDATA[\color{green}commB]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50082" font-family="Dialog"
+            fill="lime" font-size="18" latexdraw:x="250.0">
+            <text x="250.0" y="860.0"><![CDATA[\color{green}color = green]]></text>
+        </g>
+        <g latexdraw:type="line" id="id50084">
+            <line x1="840.0" x2="950.0" y1="770.0" y2="770.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-50084)"/>
+        </g>
+        <g latexdraw:type="text" id="id50085" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="840.0">
+            <text x="840.0" y="750.0"><![CDATA[intercomm]]></text>
+        </g>
+        <g latexdraw:type="rectangle" id="id50088">
+            <rect x="1331.0" y="691.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#daf1fd"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id50089">
+            <rect x="1211.0" y="691.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#fce0f8"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id50090">
+            <rect x="971.0" y="691.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#dafde7"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id50091">
+            <rect x="1091.0" y="691.0" width="68.0" height="148.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#fefefe" fill="#fdfbda"/>
+        </g>
+        <g latexdraw:type="text" id="id50092" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="990.0">
+            <text x="990.0" y="670.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="square" id="id50094">
+            <rect x="1111.0" y="721.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id50095">
+            <rect x="991.0" y="781.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id50096">
+            <rect x="991.0" y="721.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id50097">
+            <rect x="1111.0" y="781.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id50098" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1000.0">
+            <text x="1000.0" y="740.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50100" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1000.0">
+            <text x="1000.0" y="800.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50102" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1120.0">
+            <text x="1120.0" y="740.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50104" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1120.0">
+            <text x="1120.0" y="800.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="square" id="id50106">
+            <rect x="1231.0" y="721.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id50107">
+            <rect x="1231.0" y="781.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="square" id="id50108">
+            <rect x="1351.0" y="721.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#fefefe"/>
+        </g>
+        <g latexdraw:type="square" id="id50109">
+            <rect x="1351.0" y="781.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="white"/>
+        </g>
+        <g latexdraw:type="text" id="id50110" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1240.0">
+            <text x="1240.0" y="740.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50112" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1240.0">
+            <text x="1240.0" y="800.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50114" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1360.0">
+            <text x="1360.0" y="800.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50116" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1360.0">
+            <text x="1360.0" y="740.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id50118">
+            <ellipse cx="1250.0" cy="770.0" rx="179.0" ry="79.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="red" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id50120" font-family="Dialog"
+            fill="red" font-size="18" latexdraw:x="1370.0">
+            <text x="1370.0" y="850.0"><![CDATA[\color{red}commA']]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id50122">
+            <ellipse cx="1000.0" cy="765.0" rx="39.0" ry="64.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="lime" fill="none"/>
+        </g>
+        <g latexdraw:type="text" id="id50124" font-family="Dialog"
+            fill="lime" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="850.0"><![CDATA[\color{green}commB']]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id50126">
+            <path
+                d="M 400.0 750.0 C 420.0 790.0 460.0 820.0 480.0 850.0 C 500.0 880.0 630.0 840.0 640.0 810.0 "
+                stroke-width="2.0" stroke="#010101" fill="none"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-50126)"/>
+        </g>
+        <g latexdraw:type="text" id="id50129" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="410.0">
+            <text x="410.0" y="880.0"><![CDATA[MPI_Send(buf, dest=2, tag, intercomm)]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50132" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="460.0">
+            <text x="460.0" y="910.0"><![CDATA[src = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50135" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="460.0">
+            <text x="460.0" y="940.0"><![CDATA[src_label = local_rank_map->at(0).second = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50138" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="460.0">
+            <text x="460.0" y="970.0"><![CDATA[dest_label = remote_rank_map->at(2).second = 1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50141" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="460.0">
+            <text x="460.0" y="1000.0"><![CDATA[src_rank = local_rank_map->at(0).first = 1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50144" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="460.0">
+            <text x="460.0" y="1030.0"><![CDATA[dest_rank = remote_rank_map->at(dest).first = 3]]></text>
+        </g>
+        <g latexdraw:type="joinedLines" id="id50147">
+            <polyline
+                points="440.0,890.0 440.0,1060.0 1030.0,1060.0 1030.0,890.0 "
+                stroke-width="4.0" stroke="#010101" fill="none"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-50147)"/>
+        </g>
+        <g latexdraw:type="text" id="id50150" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="980.0">
+            <text x="980.0" y="880.0"><![CDATA[MPI_Send(buf, dest_rank=3, tag, intercomm)]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50153" font-family="Dialog"
+            fill="red" font-size="18" latexdraw:x="1060.0">
+            <text x="1060.0" y="1020.0"><![CDATA[\color{red}inter-communication]]></text>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id50156">
+            <path
+                d="M 1010.0 750.0 C 1030.0 790.0 1070.0 820.0 1090.0 850.0 C 1110.0 880.0 1240.0 840.0 1250.0 810.0 "
+                stroke-width="2.0" stroke="#010101" fill="none"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-50156)"/>
+        </g>
+        <g latexdraw:type="line" id="id50159">
+            <line x1="1020.0" x2="1110.0" y1="340.0" y2="280.0"
+                stroke-width="4.0" stroke="#bdb8b8"
+                latexdraw:rotationAngle="0.0"
+                marker-start="url(#arrow1-50159)" marker-end="url(#arrow2-50159)"/>
+        </g>
+        <g latexdraw:type="line" id="id50160">
+            <line x1="1020.0" x2="1110.0" y1="800.0" y2="740.0"
+                stroke-width="4.0" stroke="#bdb8b8"
+                latexdraw:rotationAngle="0.0"
+                marker-start="url(#arrow1-50160)" marker-end="url(#arrow2-50160)"/>
+        </g>
+        <g latexdraw:type="text" id="id50161" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1090.0">
+            <text x="1090.0" y="500.0"><![CDATA[src_rank_local = rank_map->at(0).first = 0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50164" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1090.0">
+            <text x="1090.0" y="530.0"><![CDATA[dest_rank_local = rank_map->at(3).first = 1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50167" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1060.0">
+            <text x="1060.0" y="940.0"><![CDATA[src_rank_local = _intercomm_rank_map->at(1).first = 1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50170" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1060.0">
+            <text x="1060.0" y="970.0"><![CDATA[dest_rank_local = intercomm_rank_map->at(3).first = 1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50173" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1230.0">
+            <text x="1230.0" y="670.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50175" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1350.0">
+            <text x="1350.0" y="670.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id50177" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1110.0">
+            <text x="1110.0" y="670.0"><![CDATA[P0]]></text>
+        </g>
+    </g>
+    <metadata>
+        <latexdraw:metadata>
+            <latexdraw:displayBorders>false</latexdraw:displayBorders>
+            <latexdraw:autoAdjust>true</latexdraw:autoAdjust>
+            <latexdraw:ppc>50</latexdraw:ppc>
+            <latexdraw:zoom>1.0</latexdraw:zoom>
+            <latexdraw:unit>cm</latexdraw:unit>
+            <latexdraw:classicGrid>false</latexdraw:classicGrid>
+            <latexdraw:gridGap>10</latexdraw:gridGap>
+            <latexdraw:code>0</latexdraw:code>
+            <latexdraw:displayGrid>true</latexdraw:displayGrid>
+            <latexdraw:magneticGrid>true</latexdraw:magneticGrid>
+            <latexdraw:autoUpdate>true</latexdraw:autoUpdate>
+            <latexdraw:version>2.0.8</latexdraw:version>
+            <latexdraw:size>
+                <latexdraw:width>1867</latexdraw:width>
+                <latexdraw:height>1176</latexdraw:height>
+            </latexdraw:size>
+            <latexdraw:position>
+                <latexdraw:x>53</latexdraw:x>
+                <latexdraw:y>24</latexdraw:y>
+            </latexdraw:position>
+            <latexdraw:dividerPosition>0.9748259239421532</latexdraw:dividerPosition>
+            <latexdraw:displayCodePanel>true</latexdraw:displayCodePanel>
+            <latexdraw:displayXScale>true</latexdraw:displayXScale>
+            <latexdraw:displayYScale>true</latexdraw:displayYScale>
+            <latexdraw:delimitorOpacity>138</latexdraw:delimitorOpacity>
+        </latexdraw:metadata>
+    </metadata>
+</svg>
Index: /XIOS/dev/branch_openmp/Note/split.svg
===================================================================
--- /XIOS/dev/branch_openmp/Note/split.svg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/split.svg	(revision 1548)
@@ -0,0 +1,404 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+    xmlns:latexdraw="http://latexdraw.sourceforge.net/namespaces/latexdraw"
+    version="1.1" baseProfile="full">
+    <defs>
+        <marker overflow="visible" orient="auto" id="arrow2-91038">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+    </defs>
+    <g>
+        <g latexdraw:type="square" id="id90958">
+            <rect x="731.0" y="611.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id90959">
+            <rect x="671.0" y="611.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id90960">
+            <rect x="671.0" y="661.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id90961">
+            <rect x="671.0" y="711.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id90962">
+            <rect x="641.0" y="351.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id90963">
+            <rect x="721.0" y="351.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id90964">
+            <rect x="641.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id90965">
+            <rect x="561.0" y="401.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id90966">
+            <rect x="561.0" y="251.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id90967">
+            <rect x="561.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id90968">
+            <rect x="561.0" y="351.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id90969">
+            <rect x="641.0" y="251.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id90970">
+            <rect x="641.0" y="401.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id90971">
+            <rect x="721.0" y="251.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id90972">
+            <rect x="721.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id90973">
+            <rect x="721.0" y="401.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id90974">
+            <rect x="801.0" y="251.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id90975">
+            <rect x="801.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id90976">
+            <rect x="801.0" y="351.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id90977">
+            <rect x="801.0" y="401.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="text" id="id90978" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="560.0">
+            <text x="560.0" y="220.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id90981" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="640.0">
+            <text x="640.0" y="220.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id90984" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="720.0">
+            <text x="720.0" y="220.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id90987" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="220.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id90990" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="270.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id90993" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="320.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id90996" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="370.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id90999" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="420.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91002" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="650.0">
+            <text x="650.0" y="270.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91005" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="650.0">
+            <text x="650.0" y="320.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91008" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="650.0">
+            <text x="650.0" y="370.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91011" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="650.0">
+            <text x="650.0" y="420.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91014" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="730.0">
+            <text x="730.0" y="270.0"><![CDATA[8]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91017" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="730.0">
+            <text x="730.0" y="320.0"><![CDATA[9]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91020" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="720.0">
+            <text x="720.0" y="370.0"><![CDATA[10]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91023" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="720.0">
+            <text x="720.0" y="420.0"><![CDATA[11]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91026" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="270.0"><![CDATA[12]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91029" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="320.0"><![CDATA[13]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91032" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="370.0"><![CDATA[14]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91035" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="420.0"><![CDATA[15]]></text>
+        </g>
+        <g latexdraw:type="line" id="id91038">
+            <line x1="700.0" x2="700.0" y1="450.0" y2="520.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-91038)"/>
+        </g>
+        <g latexdraw:type="text" id="id91039" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="460.0">
+            <text x="460.0" y="550.0"><![CDATA[comm_red]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91042" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="660.0">
+            <text x="660.0" y="550.0"><![CDATA[comm_blue]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91045" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="840.0">
+            <text x="840.0" y="550.0"><![CDATA[comm_green]]></text>
+        </g>
+        <g latexdraw:type="square" id="id91048">
+            <rect x="441.0" y="611.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id91049">
+            <rect x="441.0" y="661.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id91050">
+            <rect x="501.0" y="611.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id91051">
+            <rect x="561.0" y="611.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="text" id="id91052" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="440.0">
+            <text x="440.0" y="580.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91055" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="500.0">
+            <text x="500.0" y="580.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91058" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="560.0">
+            <text x="560.0" y="580.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91061" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="450.0">
+            <text x="450.0" y="630.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91064" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="450.0">
+            <text x="450.0" y="680.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91067" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="510.0">
+            <text x="510.0" y="630.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91070" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="630.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91073" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="670.0">
+            <text x="670.0" y="580.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91076" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="730.0">
+            <text x="730.0" y="580.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91079" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="680.0">
+            <text x="680.0" y="630.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91082" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="680.0">
+            <text x="680.0" y="680.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91085" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="680.0">
+            <text x="680.0" y="730.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91088" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="740.0">
+            <text x="740.0" y="630.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="square" id="id91091">
+            <rect x="831.0" y="661.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id91092">
+            <rect x="831.0" y="611.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id91093">
+            <rect x="891.0" y="611.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id91094">
+            <rect x="891.0" y="661.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id91095">
+            <rect x="951.0" y="611.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id91096">
+            <rect x="951.0" y="661.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id91097">
+            <rect x="951.0" y="711.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id91098">
+            <rect x="951.0" y="761.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="text" id="id91099" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="830.0">
+            <text x="830.0" y="580.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91102" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="890.0">
+            <text x="890.0" y="580.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91105" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="950.0">
+            <text x="950.0" y="580.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91108" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="840.0">
+            <text x="840.0" y="630.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91111" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="840.0">
+            <text x="840.0" y="680.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91114" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="900.0">
+            <text x="900.0" y="630.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91117" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="900.0">
+            <text x="900.0" y="680.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91120" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="960.0">
+            <text x="960.0" y="630.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91123" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="960.0">
+            <text x="960.0" y="680.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91126" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="960.0">
+            <text x="960.0" y="730.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91129" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="960.0">
+            <text x="960.0" y="780.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91132" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="720.0">
+            <text x="720.0" y="500.0"><![CDATA[key = rank]]></text>
+        </g>
+        <g latexdraw:type="text" id="id91135" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="720.0">
+            <text x="720.0" y="470.0"><![CDATA[MPI_Comm_split]]></text>
+        </g>
+    </g>
+    <metadata>
+        <latexdraw:metadata>
+            <latexdraw:displayBorders>false</latexdraw:displayBorders>
+            <latexdraw:autoAdjust>true</latexdraw:autoAdjust>
+            <latexdraw:ppc>50</latexdraw:ppc>
+            <latexdraw:zoom>1.0</latexdraw:zoom>
+            <latexdraw:unit>cm</latexdraw:unit>
+            <latexdraw:classicGrid>false</latexdraw:classicGrid>
+            <latexdraw:gridGap>10</latexdraw:gridGap>
+            <latexdraw:code>0</latexdraw:code>
+            <latexdraw:displayGrid>true</latexdraw:displayGrid>
+            <latexdraw:magneticGrid>true</latexdraw:magneticGrid>
+            <latexdraw:autoUpdate>true</latexdraw:autoUpdate>
+            <latexdraw:version>2.0.8</latexdraw:version>
+            <latexdraw:size>
+                <latexdraw:width>1867</latexdraw:width>
+                <latexdraw:height>1176</latexdraw:height>
+            </latexdraw:size>
+            <latexdraw:position>
+                <latexdraw:x>53</latexdraw:x>
+                <latexdraw:y>24</latexdraw:y>
+            </latexdraw:position>
+            <latexdraw:dividerPosition>0.8971612212104981</latexdraw:dividerPosition>
+            <latexdraw:displayCodePanel>true</latexdraw:displayCodePanel>
+            <latexdraw:displayXScale>true</latexdraw:displayXScale>
+            <latexdraw:displayYScale>true</latexdraw:displayYScale>
+            <latexdraw:delimitorOpacity>138</latexdraw:delimitorOpacity>
+        </latexdraw:metadata>
+    </metadata>
+</svg>
Index: /XIOS/dev/branch_openmp/Note/split2.svg
===================================================================
--- /XIOS/dev/branch_openmp/Note/split2.svg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/split2.svg	(revision 1548)
@@ -0,0 +1,575 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+    xmlns:latexdraw="http://latexdraw.sourceforge.net/namespaces/latexdraw"
+    version="1.1" baseProfile="full">
+    <defs>
+        <marker overflow="visible" orient="auto" id="arrow2-103667">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-103686">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="red"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-103706">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-103739">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="#7d85fa"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-103743">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="lime"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-103747">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+        <marker overflow="visible" orient="auto" id="arrow2-103751">
+            <path
+                d="M 0.0 0.0 L -6.526041666666666 2.3307291666666665 L -3.9156249999999995 0.0 L -6.526041666666666 -2.3307291666666665 z "
+                latexdraw:arrSizeNum="4.0" fill="black"/>
+        </marker>
+    </defs>
+    <g>
+        <g latexdraw:type="square" id="id103503">
+            <rect x="961.0" y="711.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id103504">
+            <rect x="901.0" y="711.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id103505">
+            <rect x="901.0" y="761.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id103506">
+            <rect x="901.0" y="811.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id103507">
+            <rect x="641.0" y="351.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id103508">
+            <rect x="721.0" y="351.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id103509">
+            <rect x="641.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id103510">
+            <rect x="561.0" y="401.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id103511">
+            <rect x="561.0" y="251.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id103512">
+            <rect x="561.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id103513">
+            <rect x="561.0" y="351.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id103514">
+            <rect x="641.0" y="251.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#7d85fa"/>
+        </g>
+        <g latexdraw:type="square" id="id103515">
+            <rect x="641.0" y="401.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id103516">
+            <rect x="721.0" y="251.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id103517">
+            <rect x="721.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id103518">
+            <rect x="721.0" y="401.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id103519">
+            <rect x="801.0" y="251.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id103520">
+            <rect x="801.0" y="301.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id103521">
+            <rect x="801.0" y="351.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id103522">
+            <rect x="801.0" y="401.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="text" id="id103523" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="560.0">
+            <text x="560.0" y="220.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103526" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="640.0">
+            <text x="640.0" y="220.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103529" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="720.0">
+            <text x="720.0" y="220.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103532" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="220.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103535" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="270.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103538" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="320.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103541" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="370.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103544" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="420.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103547" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="650.0">
+            <text x="650.0" y="270.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103550" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="650.0">
+            <text x="650.0" y="320.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103553" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="650.0">
+            <text x="650.0" y="370.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103556" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="650.0">
+            <text x="650.0" y="420.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103559" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="730.0">
+            <text x="730.0" y="270.0"><![CDATA[8]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103562" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="730.0">
+            <text x="730.0" y="320.0"><![CDATA[9]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103565" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="720.0">
+            <text x="720.0" y="370.0"><![CDATA[10]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103568" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="720.0">
+            <text x="720.0" y="420.0"><![CDATA[11]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103571" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="270.0"><![CDATA[12]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103574" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="320.0"><![CDATA[13]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103577" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="370.0"><![CDATA[14]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103580" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="800.0">
+            <text x="800.0" y="420.0"><![CDATA[15]]></text>
+        </g>
+        <g latexdraw:type="square" id="id103583">
+            <rect x="511.0" y="711.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id103584">
+            <rect x="511.0" y="761.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id103585">
+            <rect x="571.0" y="711.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="square" id="id103586">
+            <rect x="631.0" y="711.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="red"/>
+        </g>
+        <g latexdraw:type="text" id="id103587" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="510.0">
+            <text x="510.0" y="680.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103590" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="680.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103593" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="630.0">
+            <text x="630.0" y="680.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103596" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="520.0">
+            <text x="520.0" y="730.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103599" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="520.0">
+            <text x="520.0" y="780.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103602" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="580.0">
+            <text x="580.0" y="730.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103605" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="640.0">
+            <text x="640.0" y="730.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103608" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="900.0">
+            <text x="900.0" y="680.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103611" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="960.0">
+            <text x="960.0" y="680.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103614" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="910.0">
+            <text x="910.0" y="730.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103617" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="910.0">
+            <text x="910.0" y="780.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103620" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="910.0">
+            <text x="910.0" y="830.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103623" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="970.0">
+            <text x="970.0" y="730.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="square" id="id103626">
+            <rect x="1161.0" y="761.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id103627">
+            <rect x="1161.0" y="711.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id103628">
+            <rect x="1281.0" y="711.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id103629">
+            <rect x="1281.0" y="761.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id103630">
+            <rect x="1341.0" y="711.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id103631">
+            <rect x="1341.0" y="761.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id103632">
+            <rect x="1341.0" y="811.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="square" id="id103633">
+            <rect x="1341.0" y="861.0" width="28.0" height="28.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="lime"/>
+        </g>
+        <g latexdraw:type="text" id="id103634" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="680.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103637" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="680.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103640" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1340.0">
+            <text x="1340.0" y="680.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103643" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1170.0">
+            <text x="1170.0" y="730.0"><![CDATA[0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103646" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1170.0">
+            <text x="1170.0" y="780.0"><![CDATA[1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103649" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1290.0">
+            <text x="1290.0" y="730.0"><![CDATA[2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103652" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1290.0">
+            <text x="1290.0" y="780.0"><![CDATA[3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103655" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1350.0">
+            <text x="1350.0" y="730.0"><![CDATA[4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103658" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1350.0">
+            <text x="1350.0" y="780.0"><![CDATA[5]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103661" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1350.0">
+            <text x="1350.0" y="830.0"><![CDATA[6]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103664" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1350.0">
+            <text x="1350.0" y="880.0"><![CDATA[7]]></text>
+        </g>
+        <g latexdraw:type="line" id="id103667">
+            <line x1="860.0" x2="980.0" y1="320.0" y2="320.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-103667)"/>
+        </g>
+        <g latexdraw:type="text" id="id103668" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="860.0">
+            <text x="860.0" y="300.0"><![CDATA[step 1 & 2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103671" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1000.0">
+            <text x="1000.0" y="240.0"><![CDATA[3 colors in total : red, blue, green]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103674" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1000.0">
+            <text x="1000.0" y="290.0"><![CDATA[P0 has 2 red and 2 blue]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103677" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1000.0">
+            <text x="1000.0" y="330.0"><![CDATA[P1 has 3 blue and 1 red]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103680" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1000.0">
+            <text x="1000.0" y="370.0"><![CDATA[P2 has 1 red, 1 blue and 2 green]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103683" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1000.0">
+            <text x="1000.0" y="410.0"><![CDATA[P3 has 4 green]]></text>
+        </g>
+        <g latexdraw:type="line" id="id103686">
+            <line x1="980.0" x2="660.0" y1="430.0" y2="520.0"
+                stroke-width="4.0" stroke="red"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-103686)"/>
+        </g>
+        <g latexdraw:type="text" id="id103687" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="720.0">
+            <text x="720.0" y="490.0"><![CDATA[step 3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103690" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="510.0">
+            <text x="510.0" y="570.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103693" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="570.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103696" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="630.0">
+            <text x="630.0" y="570.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103699" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="700.0">
+            <text x="700.0" y="570.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id103702">
+            <ellipse cx="580.0" cy="565.0" rx="89.0" ry="24.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="red" fill="none"/>
+        </g>
+        <g latexdraw:type="ellipse" id="id103704">
+            <ellipse cx="710.0" cy="565.0" rx="29.0" ry="24.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#b1b1b1" fill="none"/>
+        </g>
+        <g latexdraw:type="line" id="id103706">
+            <line x1="570.0" x2="570.0" y1="600.0" y2="650.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-103706)"/>
+        </g>
+        <g latexdraw:type="text" id="id103707" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="590.0">
+            <text x="590.0" y="630.0"><![CDATA[step 4]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103710" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="840.0">
+            <text x="840.0" y="570.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103713" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="900.0">
+            <text x="900.0" y="570.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103716" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="960.0">
+            <text x="960.0" y="570.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103719" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1020.0">
+            <text x="1020.0" y="570.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103722" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1160.0">
+            <text x="1160.0" y="570.0"><![CDATA[P0]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103725" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1220.0">
+            <text x="1220.0" y="570.0"><![CDATA[P1]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103728" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1280.0">
+            <text x="1280.0" y="570.0"><![CDATA[P2]]></text>
+        </g>
+        <g latexdraw:type="text" id="id103731" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1340.0">
+            <text x="1340.0" y="570.0"><![CDATA[P3]]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id103734">
+            <ellipse cx="940.0" cy="560.0" rx="49.0" ry="19.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#7d85fa" fill="none"/>
+        </g>
+        <g latexdraw:type="bezierCurve" id="id103736">
+            <path
+                d="M 1160.0 550.0 C 1140.0 580.0 1153.7731787376692 592.7063400473012 1190.0 610.0 C 1226.2268212623308 627.2936599526988 1280.995584174816 600.0718969771376 1330.0 590.0 C 1379.004415825184 579.9281030228624 1356.664253244909 589.8886038447563 1370.0 560.0 C 1383.335746755091 530.1113961552437 1359.9033801048768 543.1068720778162 1330.0 540.0 C 1300.0966198951232 536.8931279221838 1320.0 530.0 1290.0 540.0 C 1260.0 550.0 1289.28995818284 591.6035708581626 1240.0 600.0 C 1190.71004181716 608.3964291418374 1180.0 520.0 1160.0 550.0 z "
+                stroke-width="2.0" stroke="lime" fill="none" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id103739">
+            <line x1="1030.0" x2="950.0" y1="430.0" y2="530.0"
+                stroke-width="4.0" stroke="#7d85fa"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-103739)"/>
+        </g>
+        <g latexdraw:type="text" id="id103740" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="920.0">
+            <text x="920.0" y="490.0"><![CDATA[step 3]]></text>
+        </g>
+        <g latexdraw:type="line" id="id103743">
+            <line x1="1100.0" x2="1250.0" y1="430.0" y2="530.0"
+                stroke-width="4.0" stroke="lime"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-103743)"/>
+        </g>
+        <g latexdraw:type="text" id="id103744" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1210.0">
+            <text x="1210.0" y="490.0"><![CDATA[step 3]]></text>
+        </g>
+        <g latexdraw:type="line" id="id103747">
+            <line x1="940.0" x2="940.0" y1="600.0" y2="650.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-103747)"/>
+        </g>
+        <g latexdraw:type="text" id="id103748" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="960.0">
+            <text x="960.0" y="630.0"><![CDATA[step 4]]></text>
+        </g>
+        <g latexdraw:type="line" id="id103751">
+            <line x1="1330.0" x2="1330.0" y1="600.0" y2="650.0"
+                stroke-width="4.0" stroke="black"
+                latexdraw:rotationAngle="0.0" marker-end="url(#arrow2-103751)"/>
+        </g>
+        <g latexdraw:type="text" id="id103752" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="1350.0">
+            <text x="1350.0" y="630.0"><![CDATA[step 4]]></text>
+        </g>
+        <g latexdraw:type="ellipse" id="id103755">
+            <ellipse cx="850.0" cy="565.0" rx="29.0" ry="24.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#b1b1b1" fill="none"/>
+        </g>
+        <g latexdraw:type="ellipse" id="id103757">
+            <ellipse cx="1030.0" cy="565.0" rx="29.0" ry="24.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#b1b1b1" fill="none"/>
+        </g>
+        <g latexdraw:type="ellipse" id="id103759">
+            <ellipse cx="1230.0" cy="565.0" rx="29.0" ry="24.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="#b1b1b1" fill="none"/>
+        </g>
+    </g>
+    <metadata>
+        <latexdraw:metadata>
+            <latexdraw:displayBorders>false</latexdraw:displayBorders>
+            <latexdraw:autoAdjust>true</latexdraw:autoAdjust>
+            <latexdraw:ppc>50</latexdraw:ppc>
+            <latexdraw:zoom>1.0</latexdraw:zoom>
+            <latexdraw:unit>cm</latexdraw:unit>
+            <latexdraw:classicGrid>false</latexdraw:classicGrid>
+            <latexdraw:gridGap>10</latexdraw:gridGap>
+            <latexdraw:code>0</latexdraw:code>
+            <latexdraw:displayGrid>true</latexdraw:displayGrid>
+            <latexdraw:magneticGrid>true</latexdraw:magneticGrid>
+            <latexdraw:autoUpdate>true</latexdraw:autoUpdate>
+            <latexdraw:version>2.0.8</latexdraw:version>
+            <latexdraw:size>
+                <latexdraw:width>1867</latexdraw:width>
+                <latexdraw:height>1176</latexdraw:height>
+            </latexdraw:size>
+            <latexdraw:position>
+                <latexdraw:x>53</latexdraw:x>
+                <latexdraw:y>24</latexdraw:y>
+            </latexdraw:position>
+            <latexdraw:dividerPosition>0.8971612212104981</latexdraw:dividerPosition>
+            <latexdraw:displayCodePanel>true</latexdraw:displayCodePanel>
+            <latexdraw:displayXScale>true</latexdraw:displayXScale>
+            <latexdraw:displayYScale>true</latexdraw:displayYScale>
+            <latexdraw:delimitorOpacity>138</latexdraw:delimitorOpacity>
+        </latexdraw:metadata>
+    </metadata>
+</svg>
Index: /XIOS/dev/branch_openmp/Note/tag.svg
===================================================================
--- /XIOS/dev/branch_openmp/Note/tag.svg	(revision 1548)
+++ /XIOS/dev/branch_openmp/Note/tag.svg	(revision 1548)
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+    xmlns:latexdraw="http://latexdraw.sourceforge.net/namespaces/latexdraw"
+    version="1.1" baseProfile="full">
+    <defs/>
+    <g>
+        <g latexdraw:type="rectangle" id="id480">
+            <rect x="661.0" y="201.0" width="178.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#f0d7e6"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id481">
+            <rect x="221.0" y="201.0" width="258.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#d0f7e0"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id482">
+            <rect x="481.0" y="201.0" width="178.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="#c8e7ec"/>
+        </g>
+        <g latexdraw:type="rectangle" id="id483">
+            <rect x="221.0" y="201.0" width="618.0" height="38.0"
+                latexdraw:borderPos="outer" stroke-width="2.0"
+                stroke="black" fill="none"/>
+        </g>
+        <g latexdraw:type="line" id="id484">
+            <line x1="480.0" x2="480.0" y1="200.0" y2="240.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="line" id="id485">
+            <line x1="660.0" x2="660.0" y1="200.0" y2="240.0"
+                stroke-width="2.0" stroke="black" latexdraw:rotationAngle="0.0"/>
+        </g>
+        <g latexdraw:type="text" id="id486" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="320.0">
+            <text x="320.0" y="230.0"><![CDATA[EP_tag]]></text>
+        </g>
+        <g latexdraw:type="text" id="id489" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="510.0">
+            <text x="510.0" y="230.0"><![CDATA[src local rank]]></text>
+        </g>
+        <g latexdraw:type="text" id="id492" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="690.0">
+            <text x="690.0" y="230.0"><![CDATA[dst local rank]]></text>
+        </g>
+        <g latexdraw:type="text" id="id495" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="100.0">
+            <text x="100.0" y="230.0"><![CDATA[MPI_tag =]]></text>
+        </g>
+        <g latexdraw:type="text" id="id498" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="400.0">
+            <text x="400.0" y="270.0"><![CDATA[15 bits]]></text>
+        </g>
+        <g latexdraw:type="text" id="id501" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="590.0">
+            <text x="590.0" y="270.0"><![CDATA[8 bits]]></text>
+        </g>
+        <g latexdraw:type="text" id="id504" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="770.0">
+            <text x="770.0" y="270.0"><![CDATA[8 bits]]></text>
+        </g>
+        <g latexdraw:type="text" id="id507" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="570.0">
+            <text x="570.0" y="290.0"><![CDATA[0 ~ 256]]></text>
+        </g>
+        <g latexdraw:type="text" id="id510" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="750.0">
+            <text x="750.0" y="290.0"><![CDATA[0 ~ 256]]></text>
+        </g>
+        <g latexdraw:type="text" id="id513" font-family="Dialog"
+            fill="black" font-size="18" latexdraw:x="370.0">
+            <text x="370.0" y="290.0"><![CDATA[0 ~ 32768]]></text>
+        </g>
+    </g>
+    <metadata>
+        <latexdraw:metadata>
+            <latexdraw:displayBorders>false</latexdraw:displayBorders>
+            <latexdraw:autoAdjust>true</latexdraw:autoAdjust>
+            <latexdraw:ppc>50</latexdraw:ppc>
+            <latexdraw:zoom>1.0</latexdraw:zoom>
+            <latexdraw:unit>cm</latexdraw:unit>
+            <latexdraw:classicGrid>false</latexdraw:classicGrid>
+            <latexdraw:gridGap>10</latexdraw:gridGap>
+            <latexdraw:code>0</latexdraw:code>
+            <latexdraw:displayGrid>true</latexdraw:displayGrid>
+            <latexdraw:magneticGrid>true</latexdraw:magneticGrid>
+            <latexdraw:autoUpdate>true</latexdraw:autoUpdate>
+            <latexdraw:version>2.0.8</latexdraw:version>
+            <latexdraw:size>
+                <latexdraw:width>1867</latexdraw:width>
+                <latexdraw:height>1176</latexdraw:height>
+            </latexdraw:size>
+            <latexdraw:position>
+                <latexdraw:x>53</latexdraw:x>
+                <latexdraw:y>24</latexdraw:y>
+            </latexdraw:position>
+            <latexdraw:dividerPosition>0.8489555436529191</latexdraw:dividerPosition>
+            <latexdraw:displayCodePanel>true</latexdraw:displayCodePanel>
+            <latexdraw:displayXScale>true</latexdraw:displayXScale>
+            <latexdraw:displayYScale>true</latexdraw:displayYScale>
+            <latexdraw:delimitorOpacity>138</latexdraw:delimitorOpacity>
+        </latexdraw:metadata>
+    </metadata>
+</svg>
