A Study Of Client-Based Caching For Parallel I/O