95% Faster Writing Thousands of Zones
With the introduction of .szplt (SZL) file format and the TecIO-MPI library, you were able to efficiently output partitioned zones from massively parallel computers in parallel.
The initial versions, however, were not well optimized for outputting many small zones. You might run into a problem if you were using structured-grid solvers that use hundreds, or even thousands, of individual grid zones.
TecIO-MPI includes optimizations for these cases. Recent testing with about 65,000 zones demonstrated a 95% reduction in output time as compared with the 2020 R2 version, along with linear scaling that bodes well for even larger cases.
Where can I Get TecIO?
Dynamic libraries for TecIO are shipped with Tecplot 360. You’ll find them in the bin folder of your Tecplot 360 installation. Header files are found in the include folder. Example programs are found beneath the util/tecio folder. All platforms supported by Tecplot 360 are supported by the static and dynamic TecIO libraries.
Try Tecplot 360 for free.
TecIO MPI implemented on Linux and Macintosh, uses OpenMPI in Tecplot 360. On Windows it uses Microsoft MPI. If you need TecIO-MPI for a different flavor of MPI, download the source code (obfuscated) and build it on your target machine.
You can find TecIO documentation and examples in the Data Format Guide. If you need additional assistance, please contact Technical Support by emailing firstname.lastname@example.org or by calling 425-653-9393. Plus, you can learn more about TecIO and SZL in our Blogs and Videos.
Why Write SZL Binary Files from your Code?
When you are importing and analyzing results in Tecplot 360, binary format reduces data files sizes and increases speed and efficiency, especially compared to ASCII files.
- Tecplot SZL (.szplt) – The newer SZL format is optimized for large datasets and substantially improves performance while reducing the memory footprint for common workflows. TecIO reads and writes SZL files. In particular, finite-element (unstructured-grid) data is compressed in the SZL file. Finally, SZL files may be written in parallel from the MPI ranks.
- Tecplot PLT (.plt) – The legacy format written by earlier versions of Tecplot 360 is still supported by new versions of Tecplot 360. This is a write-only format.
What is the difference between TecIO (2013) and the newest version of TecIO?
The 2013 version of TecIO outputs the older PLT version of the Tecplot binary with a designated file extension of .plt. The latest version of TecIO will
also output Tecplot’s SZL binary format with a designated file extension of .szplt. New versions of Tecplot 360 (2014 and later) can load both the PLT and SZL file formats.
What programming languages are supported by TecIO?
TecIO uses a C API, so you can easily call it from C, C++, or Fortran. You’ll find the Tecio/examples folder contains both C++ and Fortran examples.
Can TecIO write data in parallel?
There are two versions of TecIO: TecIO-MPI supports parallel writing of data and is used with MPI (message passing interface) applications like large-scale CFD codes. Standard TecIO uses threading to perform preliminary calculations in parallel but writes the data sequentially.
What data types are supported by TecIO?
TecIO can write either single or double precision floating point numbers. The API enables output of 8-, 16- and 32-bit integer variables to SZL files. Support for 64-bit zone sizes allow individual zones to exceed 2 billion points using SZL file format. Polyhedral zones are limited to 2 billion cells in PLT format. (Polyhedral zones are not supported by SZL file format.)
What zone types are supported by TecIO?
All zone types may be written in serial (from a single MPI rank) to PLT files. For SZL files, see the following table. “Yes (unpartitioned)” means that
the zone must be written in serial.
|Zone Type||PLT||SZL||Partitioned SZL|
|I-Ordered, IJ-Ordered||Yes||Yes||Yes (unpartitioned)|
|FE-LineSeg, FE-Triangle, FE-Quardrilateral||Yes||Yes||Yes (unpartitioned)|
|FE-Tetrahedras, FE Brick||Yes||Yes||Yes|
What is “Partitioned” data?
The TecIO library supports partitioning finite-element zones when writing SZL data files. That is, you do not need to write the zone all at once, but it can be written in sections. This capability is intended if you are using large-scale simulations codes (CFD, for example) that compute large solutions in parallel, with multiple solver processes running on independent nodes in a cluster, each solving a subset of the simulation. However, you can also use partitioned data with a single-process solver running on a desktop workstation if desired, for example for development purposes.
The zone partitions are written to the same SZL file and are recombined into a single zone when loaded into Tecplot 360. You will not see the partitions or even know that the zone is partitioned.
What are “Ghost Nodes” and “Ghost Cells”?
Partitioned large-scale simulations typically require that zone partitions overlap slightly. In other words, the nodes or cells on each side of the boundary between partitions will reside in more than one solver process. First in the one that “owns” it according to the partitioning rules, and second in any processes solving a partition spatially adjacent to it. In processes other than the one that “owns” them, such data are commonly referred to as “ghost cells” and “ghost nodes.”
The TecIO library needs information about these overlapping cells and nodes in order to later allow the partitioned data to be joined into a single virtual dataset suitable for visualization. For this reason, each solver process must pass a list of its ghost nodes and cells along with the zone data (which should include the ghost nodes and cells). Providing TecIO with this ghost node and ghost cell lists eliminates the writing of duplicate data to the SZL file.
Can I have separate grid and solution files?
You may write the grid and solution data to separate files. Similarly, you may share the same grid between multiple solution time steps.