plfs / plfs-core

LANL no longer develops PLFS. Feel free to fork and develop as you wish.
41 stars 36 forks source link

Disabling data_sieving for PLFS in ADIO #5

Closed brettkettering closed 12 years ago

brettkettering commented 12 years ago

10/27/2010: Can you pls edit the patches a bit? We need to patch adio/common ad_open.c to change line 234 to this: if (access_mode & ADIO_WRONLY && fd->file_system != ADIO_PLFS ) {

The problem is that ADIO changes WRONLY to RDWR for the write open so that it can do data sieving which is this optimization that it does if lots of people are doing small writes with holes between them. ADIO does a read of the whole region, does the overwrites in memory, and then does a large write. But we don't want that in PLFS and the RDWR open is really slow in PLFS since we create the index structure. When I did this patch, I dropped write open times on turing with 768 procs from 30 seconds to 6.

Also, we need to figure out where to patch it so that it doesn't try data sieving on PLFS.

By the way, it seems ugly putting PLFS specific code in common but we have to since they don't pass us the original open flag AND there is already filesystem specific code in there for PVFS2 and NFS and TEST.

12/16/2010: Turns out there is a way to do this purely in ad_plfs in mpich and the problem is that openmpi is using an old version of ROMIO. blech. See email from Rob Ross to John Bent on Oct 27 2010.

I think we also need to do a similar fix for the Cray MPT because mpich I guess requires that we implement ADIOI_GEN_OpenColl

brettkettering commented 12 years ago

Fixed for OpenMPI and MPT. Closing this, along with #6.