SLIDE 8 8
Technical Details
MPI_File_Write_all
High-level I/O lib.,
PVFS Client PVFS Server
MPI_File_Write_all PVFS_sys_write PVFS_sys_io(…, hints) io_start_flow(*smcb, …) flow_callback(*flow_d, …) trove_write_callback_fn(*user_ptr, …)
#define PVFS_sys_write(ref,req,off,buf,mem_req,creds,resp) PVFS_sys_io(ref,req,off,buf,mem_req,creds,resp, PVFS_IO_WRITE,PVFS_HINT_NULL) PVFS_sys_io(ref,req,off,buf,mem_req,creds,resp, PVFS_IO_WRITE,PVFS_hints)
MPI-IO LIbrary Original call flow Server-side Pin Process
rank, mpi_call_id, pvfs_call_id rank, mpi_call_id, pvfs_call_id
Generate trace info. for MPI_File_write_all()
Pin call flow
Pack trace info. into PVFS_hints Replace PVFS_HINT_NULL with PVFS_hints Client starting point Client ending point PVFS_hints Server starting point Server ending point Disk starting/ending point The server Pin searches hints from *smcb passed from the traced process, extracts trace info., gener- ates a log, and sends it to the server log manager. The server log manager identifies/instruments the I/O server that has a max. latency.
Client-side Pin Process
The client Pin sends a log to the client log manager. The client log manager returns a record that has a max. latency for the I/O. Pin instruments the corresponding MPI process selectively.
Client Log Manager Sever Log Manager