Hardware Reference
In-Depth Information
21.4 Successes with HDF5 as Middleware
Silo is built on top of and uses the HDF5 library. Because of this, it is
possible to alter the manner in which Silo uses HDF5 without having to alter
applications above it. We have used this to advantage on numerous occasions
to address various file system performance and reliability issues. Examples of
some of those capabilities are briefly described here.
1. Application-level checksumming: To address file system reliability issues,
a checksumming capability in HDF5 was enabled. As Silo applications
write data, the data is checksummed by HDF5 while in transit to the file.
No attempt to detect errors during write is made. However, checksums
are also computed and compared upon read. In the event of a checksum
error on read, the application may attempt to re-read the data. However,
repeated read failures generally indicate an error most likely occurred
during write and the data is corrupted.
2. Mesh-aware compression: To experiment with advanced compression
techniques that can take advantage of mesh structure to optimize data
locality during compression, we added the compression algorithms as
HDF5 filters. This enables the compression to be applied in transit as
the data is written from the Silo application. We have used these com-
pression methods to improve I/O performance and reduce file sizes for
certain cases by as much as 5.
3. Block-based Virtual File Driver (VFD): To address file system perfor-
mance issues, a custom VFD designed to optimize I/O for BG/Q class
systems. The VFD coalesces I/O requests from Silo applications and
separates I/O for small objects (Silo metadata) from larger objects (ap-
plication raw data). It breaks a file into large blocks consisting entirely
of either metadata or raw data and keeps an application-specified num-
ber of blocks cached in memory at any one time. An LRU algorithm is
used to preempt cache blocks to disk when new blocks are needed. This
VFD has demonstrated 30{50 performance improvements on BG/Q
systems. Results are illustrated in Figure 21.4.
 
Search WWH ::




Custom Search