Processing the high-volume datasets, particularly image data, generated by modern scientific instruments is a huge challenge. Last week, a team of researchers from the Pittsburgh Supercomputing Center reported a novel approach to coping with the data flood – the Virtual Volume File System (VVFS) – which they say significantly reduces storage capacity requirements and facilitates on-the-fly processing to minimize I/O traffic and latency limitations.
Although the researchers developed VVFS capabilities with a life sciences use case (electron microscopy datasets of mouse brains) in mind, they noted the challenge spans many domains such as astronomy, physics, materials science, geology, biology, and engineering. Data acquisition often runs at “gigabyte per second data rates, quickly generate terabyte to petabyte datasets that must be stored, shared, processed and analyzed at similar rates,” report the authors in a paper, A Virtual File System for On-Demand Processing of Multidimensional Datasets.[i]
“Let’s say you have 100 terabytes of electron microscopy data,” said Arthur Wetzel, principal computer scientist at PSC and first author of a paper on the work. Users will begin to analyze the images as soon as they become available; but as the image processing progresses, better images become available. “Yet there’s something that they want to keep before working on the new images. Pretty soon this 100 terabytes has multiplied by at least eight times. That’s not practical for long-term storage.”
‘Connectomics’ research – which attempts to determine the connectivity of neural tissue at levels ranging from functional circuits to whole brains – provided the impetus for the VVFS project.
“[It] requires full synaptic detail that can only be obtained with nanometer resolution electron microscopy. The resulting datasets have data densities exceeding one petabyte per cubic millimeter of brain tissue and thus pose many computational and big data challenges. Our experience and struggles with processing a 32 terabyte electron microscopy dataset (Figure 3, below) of mouse visual cortex in collaboration with Davi Bock, Wei Chung Allen Lee and Clay Reid[ii] motivated us to investigate more efficient and cost effective ways to process large multidimensional data volumes,” they wrote.
The greatly reduced scale of the image shown in Figure 3 (below) only hints at the size and complexity of this volume which was reconstructed from 3.2 million separate 10 megabyte images that had to be aligned both in 2D to form 100,000 by 80,000 pixel planes and in 3D to bring features through the third dimension into alignment. This process had to correct for large compression and nonlinear distortions resulting from cutting ultrathin 40 nanometer sections (just a few hundred atoms thick) and also handled a range of defects including scratches, tears, debris, folds and occasional missing sections.
In conventional data-processing pipelines, raw data are captured, stored and subsequently processed any number of times in order to, for example, apply different types of transformations or feed into different applications. A major drawback is that data transfer and data duplication may become rate-limiting as data sizes increase. With datasets in the multi-terabyte range, the need to maintain multiple intermediate file sets while accurately tracking previous transformations presents difficult storage and data management challenges. “At the petabyte scale this data duplication paradigm will not be sustainable,” contend the authors.
The VVFS file system will solve this problem by keeping the raw images unchanged, storing only the data required to reproduce a processed image rather than the entire image, according to coauthor Jennifer Bakal, PSC public health applications programmer. It does this while producing output that can be processed by any application expecting files. The software will in effect trade computational power for storage space, re-generating desired processed images on the fly instead of storing them.
The work, done with coauthor Markus Dittrich, formerly director of PSC’s Biomedical Applications Group and now at BioTeam Inc. of Middleton Mass., builds on PSC’s image processing effort in the National Library of Medicine’s Visible Human project[iii] of the 1990s. “In our VVFS concept every I/O operation is an opportunity to trade storage for on-the- fly computing while data may already be in memory,” write the researchers.
The researcher argue the VVFS approach (Figure 1, below) overcomes the most severe shortcomings of current conventional data processing pipelines: “VVFS makes processed data available to end-user applications in the form of virtual files which are accessed in the same way as pre-existing real files (e.g. via open, seek and read). Virtual files are not pre-instantiated, do not reside on disk, and their content is dynamically generated in a near-data fashion only when end-user applications access them.
“Conceptually, this is similar to virtual memory page fault handling, the /proc file system in Linux, or file systems for accessing compressed data which (de)compress data only as it is accessed. Even though we present VVFS as a client-server architecture in which final applications may be remotely mounted from distant sites, the server and client may also run on the same machine.”
They describe the VVFS guiding principles as:
- Bring near-data processing, including large scale parallelism and GPGPU computing, into data analysis and processing workflows to eliminate data duplication and redundant storage and reduce latency.
- Provide a flexible, pipelined data workflow
- Minimize data transfer by working directly from local data when possible.
- Minimize delays between data capture and end-user analyses.
- Provide user applications with the conventional (yet virtual) file interfaces they expect.
- Provide an API for specifying on-the-fly computational procedures from raw to virtual files to enable easy deployment of custom written processing routines.
The researchers note that several types of active processing with similarities to VVFS have been suggested to improve data-intensive application performance. For example, “Argonne National Laboratory has used active storage models to demonstrate the performance benefits obtained using compute power co-located with the data store rather than on separate client systems. These benefits derive largely from reduced network traffic between storage servers and compute nodes. The Active Storage work from the Pacific Northwest National Laboratory improves parallel I/O performance by leveraging idle CPU and GPU cycles within the nodes of large Lustre file servers.”
Rather than implement VVFS as a kernel space device driver, the team chose to leverage the FUSE (Filesystem in User Space) technology. FUSE is cross platform and allows fully functional file systems to be run from user space. “From our point of view, FUSE has several significant benefits. First, with FUSE the bulk of the file system can be written in user space, speeding up development and reducing maintenance cost. Typically, in-kernel file systems take many years to mature, while FUSE-based file systems can do so in much shorter time. In fact, for researchers who are often not particularly kernel savvy, FUSE is the only choice to incorporate their research ideas into a working file system.”
Other advantages include significant code reuse since FUSE-based file systems can take advantage of existing libraries and that FUSE-based file systems can be written in many languages (e.g., C, Java, and Python, to name a few). They do note concerns around FUSE-based file systems lower performance compared to in-kernel file systems due to extra memory copies and context switching, “However for our VVFS the relative ease of implementation provided by FUSE greatly outweighs any modest performance drawbacks.”
Link to paper: http://www.psc.edu/images/vvfs_rev.pdf
[ii] Bock, D., et al., Network Anatomy and In Vivo Physiology of a Group of Visual Cortical Neurons. Nature, 471, 177- 182, 2011.