Changeset 1526
- Timestamp:
- 06/08/18 09:12:00 (5 years ago)
- Location:
- XIOS/dev/XIOS_DEV_CMIP6/doc
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/XIOS_DEV_CMIP6/doc/XIOS_user_guide.lyx
r916 r1526 1863 1863 1864 1864 \begin_layout Section 1865 UGRID 1866 \end_layout 1867 1868 \begin_layout Standard 1869 In addition to the CF conventions, it is also possible to output data using 1870 1871 \begin_inset CommandInset href 1872 LatexCommand href 1873 name "UGRID" 1874 target "https://ugrid-conventions.github.io/ugrid-conventions/" 1875 1876 \end_inset 1877 1878 metadata conventions developed for unstructured meshes. 1879 It allows users to store the topology of an underlying unstructured mesh. 1880 Currently XIOS supports 2D unstructured meshes of any shape (triangular, 1881 quadrilateral, etc) and their mixture. 1882 1883 \end_layout 1884 1885 \begin_layout Standard 1886 A 2D mesh can be described by a set of nodes, edges and/or faces. 1887 XIOS allows one to define data on any of these three types of elements. 1888 XIOS will generate a full list of connectivity attributes proposed by the 1889 UGRID conventions. 1890 For example in case of a mesh comprised of faces the following connectivity 1891 parameters will be the calculated: 1892 \end_layout 1893 1894 \begin_layout Standard 1895 1896 \family typewriter 1897 edge_node_connectivity 1898 \end_layout 1899 1900 \begin_layout Standard 1901 1902 \family typewriter 1903 face_node_connectivity 1904 \end_layout 1905 1906 \begin_layout Standard 1907 1908 \family typewriter 1909 edge_nodes_connectivity 1910 \end_layout 1911 1912 \begin_layout Standard 1913 1914 \family typewriter 1915 face_nodes_connectivity 1916 \end_layout 1917 1918 \begin_layout Standard 1919 1920 \family typewriter 1921 face_edges_connectivity 1922 \end_layout 1923 1924 \begin_layout Standard 1925 1926 \family typewriter 1927 edge_face_connectivity 1928 \end_layout 1929 1930 \begin_layout Standard 1931 1932 \family typewriter 1933 face_face_connectivity 1934 \end_layout 1935 1936 \begin_layout Standard 1937 In order to select UGRID output format, one has to set file attribute 1938 \series bold 1939 convention 1940 \series default 1941 to 1942 \series bold 1943 \shape italic 1944 "UGRID" 1945 \series default 1946 \shape default 1947 (its default value is 1948 \series bold 1949 \shape italic 1950 1951 \begin_inset Quotes eld 1952 \end_inset 1953 1954 CF 1955 \begin_inset Quotes erd 1956 \end_inset 1957 1958 1959 \series default 1960 \shape default 1961 ). 1962 Domain attribute 1963 \series bold 1964 nvertex 1965 \series default 1966 is mandatory for UGRID. 1967 It servers for identifying one of three types of mesh elements on which 1968 data can be defined: nodes (nvertex=1), edges (nvertex=2), and faces (nvertex 1969 \begin_inset Formula $\geq$ 1970 \end_inset 1971 1972 3). 1973 In order to write fields on the same mesh but on its different elements, 1974 one has to assign the same domain name to each of the domains. 1975 Example given below illustrates this point for three fields defined on 1976 the same mesh but on its different elements: nodes, edges, and faces. 1977 \end_layout 1978 1979 \begin_layout Standard 1980 \begin_inset listings 1981 lstparams "language=XML,breaklines=true,tabsize=2,frame=tb,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}}" 1982 inline false 1983 status open 1984 1985 \begin_layout Plain Layout 1986 1987 <file_definition> 1988 \end_layout 1989 1990 \begin_layout Plain Layout 1991 1992 <file id="output_UGRID" convention="UGRID"> 1993 \end_layout 1994 1995 \begin_layout Plain Layout 1996 1997 <field id="varOnNodes" ... 1998 domain_ref="node"/> 1999 \end_layout 2000 2001 \begin_layout Plain Layout 2002 2003 <field id="varOnEdges" ... 2004 domain_ref="edge"/> 2005 \end_layout 2006 2007 \begin_layout Plain Layout 2008 2009 <field id="varOnFaces" ... 2010 domain_ref="face"/> 2011 \end_layout 2012 2013 \begin_layout Plain Layout 2014 2015 </file> 2016 \end_layout 2017 2018 \begin_layout Plain Layout 2019 2020 </file_definition> 2021 \end_layout 2022 2023 \begin_layout Plain Layout 2024 2025 \end_layout 2026 2027 \begin_layout Plain Layout 2028 2029 <domain_definition> 2030 \end_layout 2031 2032 \begin_layout Plain Layout 2033 2034 <domain id="node" name="mesh2D" nvertex="1"/> 2035 \end_layout 2036 2037 \begin_layout Plain Layout 2038 2039 <domain id="edge" name="mesh2D" nvertex="2"/> 2040 \end_layout 2041 2042 \begin_layout Plain Layout 2043 2044 <domain id="face" name="mesh2D" nvertex="4"/> 2045 \end_layout 2046 2047 \begin_layout Plain Layout 2048 2049 </domain_definition> 2050 \end_layout 2051 2052 \end_inset 2053 2054 2055 \end_layout 2056 2057 \begin_layout Section 1865 2058 How to use file splitting 1866 2059 \end_layout … … 4574 4767 Since it depends directly on HDF5, this feature works only when the NetCDF-4 4575 4768 format is used. 4576 Unfortunately, HDF5 does not support compression (yet) for parallel output 4577 so you have to use only one server or to engage the 4769 Since HDF5 does not (yet) support compression for parallel output, one 4770 has to use two server-level functionality (see Sec. 4771 4772 \begin_inset CommandInset ref 4773 LatexCommand ref 4774 reference "sec:Launching-secondary-server" 4775 4776 \end_inset 4777 4778 ) or to engage the 4578 4779 \series bold 4579 4780 \emph on … … 4800 5001 4801 5002 \begin_layout Chapter 4802 XIOS options5003 XIOS parameterization 4803 5004 \end_layout 4804 5005 … … 4885 5086 4886 5087 5088 \end_layout 5089 5090 \begin_layout Section 5091 Launching secondary server 5092 \begin_inset CommandInset label 5093 LatexCommand label 5094 name "sec:Launching-secondary-server" 5095 5096 \end_inset 5097 5098 5099 \end_layout 5100 5101 \begin_layout Standard 5102 To improve I/O performance and to be able to use HDF5 compression with the 5103 5104 \series bold 5105 \emph on 5106 5107 \begin_inset Quotes eld 5108 \end_inset 5109 5110 multiple_file 5111 \begin_inset Quotes erd 5112 \end_inset 5113 5114 5115 \series default 5116 \emph default 5117 mode, it is possible to separate servers into two levels: intermediaries 5118 (level one) and writers (level two). 5119 A single MPI communicator will be created for the intermediaries, while 5120 multiple communicators will be created for the writers according to the 5121 number of 5122 \begin_inset Quotes eld 5123 \end_inset 5124 5125 pools 5126 \begin_inset Quotes erd 5127 \end_inset 5128 5129 which can be set by a user. 5130 Level-one servers will receive data from clients and will redistribute 5131 it to be sent to pools of level-two servers whilst level-two servers will 5132 do the I/O (important: for now level-two servers only do writing data). 5133 Secondary servers can be launched by means of three parameters: 5134 \end_layout 5135 5136 \begin_layout Itemize 5137 5138 \series bold 5139 using_server2 5140 \series default 5141 (type: 5142 \series bold 5143 bool 5144 \series default 5145 ) activates the secondary server 5146 \end_layout 5147 5148 \begin_layout Itemize 5149 5150 \series bold 5151 ratio_server2 5152 \series default 5153 (type: 5154 \series bold 5155 int 5156 \series default 5157 ) defines the percentage of servers that will be dedicated to level two. 5158 The parameter can take value from 0 to 100 with the default value of 50%. 5159 In case if the requested number of level-two servers is not valid (for 5160 example, zero or equal to the total number of servers), XIOS will run in 5161 its classical server mode with one server level. 5162 \end_layout 5163 5164 \begin_layout Itemize 5165 5166 \series bold 5167 number_pools_server2 5168 \series default 5169 (type: 5170 \series bold 5171 int 5172 \series default 5173 ) sets the number of server-two pools (i.e. 5174 MPI communicators on level two). 5175 By default the number of pools is equal to the number of level-two servers, 5176 thus permitting one process per communicator. 5177 \end_layout 5178 5179 \begin_layout Standard 5180 Shown in Fig. 5181 5182 \begin_inset CommandInset ref 5183 LatexCommand ref 5184 reference "Fig:server2" 5185 5186 \end_inset 5187 5188 is the two-level server structure for the following definitions: 5189 \end_layout 5190 5191 \begin_layout Standard 5192 \begin_inset listings 5193 lstparams "breaklines=true,frame=tb,language=XML,postbreak={\raisebox{0ex}[0ex][0ex]{\ensuremath{\rcurvearrowse\space}}},tabsize=2" 5194 inline false 5195 status open 5196 5197 \begin_layout Plain Layout 5198 5199 <context id="xios"> 5200 \end_layout 5201 5202 \begin_layout Plain Layout 5203 5204 ... 5205 5206 \end_layout 5207 5208 \begin_layout Plain Layout 5209 5210 <variable id="using_server2" type="bool">true</variable> 5211 \end_layout 5212 5213 \begin_layout Plain Layout 5214 5215 <variable id="ratio_server2" type="int">75</variable> 5216 \end_layout 5217 5218 \begin_layout Plain Layout 5219 5220 <variable id="number_pools_server2" type="int">3</variable> 5221 \end_layout 5222 5223 \begin_layout Plain Layout 5224 5225 ... 5226 \end_layout 5227 5228 \begin_layout Plain Layout 5229 5230 </context> 5231 \end_layout 5232 5233 \end_inset 5234 5235 5236 \end_layout 5237 5238 \begin_layout Standard 5239 \begin_inset Float figure 5240 placement H 5241 wide false 5242 sideways false 5243 status open 5244 5245 \begin_layout Plain Layout 5246 \begin_inset Graphics 5247 filename inputs/images/Server2.pdf 5248 5249 \end_inset 5250 5251 5252 \end_layout 5253 5254 \begin_layout Plain Layout 5255 \begin_inset Caption Standard 5256 5257 \begin_layout Plain Layout 5258 Two levels of servers for the total number of servers of 8 and ratio_server2=75%. 5259 The number of level-two servers is 5260 \begin_inset Formula $8\times\text{ratio\_server2}=6$ 5261 \end_inset 5262 5263 and, thus, the remaining 2 servers are of level one. 5264 5265 \end_layout 5266 5267 \end_inset 5268 5269 5270 \begin_inset CommandInset label 5271 LatexCommand label 5272 name "Fig:server2" 5273 5274 \end_inset 5275 5276 5277 \end_layout 5278 5279 \end_inset 5280 5281 5282 \end_layout 5283 5284 \begin_layout Standard 5285 Note that with one server per pool, the I/O is actually sequential and thus 5286 the use of HDF5 compression is possible. 5287 5288 \end_layout 5289 5290 \begin_layout Standard 5291 By default file distribution among server-two pools is optimized for bandwidth. 5292 An alternative way of distributing files is possible in order to minimize 5293 memory consumption by level-two servers. 5294 For this, two additional parameters should be specified: 5295 \end_layout 5296 5297 \begin_layout Itemize 5298 5299 \series bold 5300 server2_dist_file_memory 5301 \series default 5302 (type: 5303 \series bold 5304 bool 5305 \series default 5306 ) activates memory optimization. 5307 \end_layout 5308 5309 \begin_layout Itemize 5310 5311 \series bold 5312 server2_dist_file_memory_ratio 5313 \series default 5314 (type: 5315 \series bold 5316 double 5317 \series default 5318 ) (optional) takes value from 0 (memory optimization) to 1 (bandwidth optimizati 5319 on). 5320 The default value is 0.5. 4887 5321 \end_layout 4888 5322 … … 4981 5415 int 4982 5416 \series default 4983 ) defines the mi mimum buffer size in bytes (8192 by default).5417 ) defines the minimum buffer size in bytes (8192 by default). 4984 5418 This value will be used by XIOS only for buffers whose detected size is 4985 smaller than the user defined mi mimum size.5419 smaller than the user defined minimum size. 4986 5420 \end_layout 4987 5421
Note: See TracChangeset
for help on using the changeset viewer.