[MAINIMAGE]
 
  Welcome
  Community
  Documentation
  Download
  Machines
 
Projects 
For Developers 
Dev Plans 
Bug Tracking 
Feature Requests 
Mailing Lists 
Viz Tools 
  Showcase
  Links
 



Quick Subscription:
News Mailing List


more Mailing Lists
  Search CactusCode:


SFTPD-HDF5: Globus Striped Ftp Server with HDF5 plugin

Cactus uses the HDF5 (Hierarchical Data Format version 5) as its standard I/O library and binary file format for the output of multi-dimensional datasets. Cactus output files generated by the corresponding HDF5 I/O methods can then be imported by any standard visualization program which supports the HDF5 file format.

For the OpenDX Visualization Toolkit we provide an OpenDXutils package with various import modules to read datasets from local HDF5 files into an OpenDX network. One of these modules, ImportHDF5, is also prepared to import datasets from HDF5 datafiles which are located on certain remote FTP servers. On the client side it uses the GridFtp Virtual File Driver of the HDF5 library to transparently access HDF5 files over the network. This effectively enables you to visualize remote datasets directly, without having to stage them to a local filesystem first.

In order to serve individual requests to datasets in remote HDF5 files, the FTP daemon running on the remote FTP server has to provide commands for partial remote file access. One server which implements such extended FTP operations is the wuftpd server with GridFTP patches, as distributed with the Globus toolkit. This server offers extended get/put commands which, besides the filename, take an offset and a length as parameters to access a contiguous sequence of bytes in a remote file space. Higher-level operations such as reading an individual dataset in a remote HDF5 file are then executed as a sequence of such raw remote reads. The drawback of this simple data protocol is that hyperslab requests which access non-contiguous regions in the remote file space (eg. due to downsampling) may result in a large number of individual raw remote read transactions, increasing the overall latency of the single HDF5 read call.

SFTPD-HDF5 is another, more efficient implementation of an FTP server which can be used for remote HDF5 file access. It is based on the Globus Striped Ftp Server (SFTPD) and has been enhanced by a plugin which can execute HDF5 read requests directly (without translating them into lower-level transactions).
The following sections describe how to obtain and install the SFTPD-HDF5 server, and how to use it for remote HDF5 file access.

Downloading and Installing

The SFTPD-HDF5 server is contained in the SFTPD-HDF5 package which can be downloaded here.
It contains the required source files (with a few fixes) from the original SFTPD distribution, the HDF5 plugin source code, a makefile to build the frontend and backend executables, as well as a README file with some technical information and software licensing conditions.

Note that the original SFTPD server is distributed under the Globus license (see the file GLOBUS_LICENSE for details) whereas the enhanced SFTPD-HDF5 server itself is licensed under the GPL General Public License (see the file COPYING for details).
Please be aware of this licensing issue when using the SFTPD server. If you don't need the SFTPD-HDF5 functionality to access remote HDF5 files you should download and install the original SFTPD server instead which is available via anonymous cvs:

  setenv CVSROOT :pserver:anonymous@cvs.globus.org:/home/globdev/CVS/gsi_clients
  cvs login                      # password is 'anon'
  cvs checkout striped_server
In order to build the SFTPD-HDF5 server you should follow the steps below. As a prerequisite, you will also need to have Globus with the globus_ftp_control library installed on your machine as well as HDF5 (please refer to the Globus Toolkit installation pages and Installing and Compiling HDF5 resp. for installation details).
The environment variable GLOBUS_LOCATION must be set to point to your Globus installation directory. The environment variable GLOBUS_FLAVOR must be set to specify a valid globus build flavor which should be used to build the SFTPD-HDF5 server. The environment variable HDF5_LOCATION must be set to point to your HDF5 installation directory.
  # get the SFTPD-HDF5 package and unpack it in some scratch directory
  tar xzf SFTPD-HDF5-1.0.tar.gz

  # set the necessary environment variables
  setenv GLOBUS_LOCATION  <my_globus_location>  # eg. /usr/local/apps/globus/
  setenv GLOBUS_FLAVOR    <my_globus_flavor>    # eg. gcc32
  setenv HDF5_LOCATION    <my_hdf5_location>    # eg. /usr/local/apps/hdf5/

  # build and install frontend and backend
  cd SFTPD-HDF5
  make
The GNUMakefile which comes with the SFTPD-HDF5 package will build the SFTPD-HDF5 frontend and backend executables using the appropriate compiler and linker flags for Globus programs, and install them in the designated Globus location.

Support and Copyright

Thomas Radke is the author and maintainer of the SFTPD-HDF5 package, with acknowledgements to Andrei Hutanu and Andre Merzky from the Zuse-Institut Berlin for their valuable ideas on the design of the HDF5 plugin. The development work has been supported by the Deutsches Forschungsnetz Verein through the GriKSL project under contract TK 602 - AN 200.

Please report bugs and send any comments to the maintainer of the SFTPD-HDF5 package.

The software in the SFTPD-HDF5 package is available under the GNU General Public License. Please refer to the files README and COPYING in the SFTPD-HDF5 package for the full copyright notice and distribution conditions.
In addition to the conditions in the GNU General Public License, the author strongly suggests using this software for non-military purposes only.

Last modified: $Header: /cactus/CactusWebSite/VizTools/SFTPD-HDF5.html,v 1.2 2004/01/22 16:34:21 tradke Exp $
      

Cactus Webmaster Last Modified: Saturday, 31-Jan-2004 19:22:08 CST