In the serial netCDF implementation, I/O can be a performance bottleneck because all the data must be scattered or gathered by a single task and that task alone communicates with the file system. In contrast, PnetCDF enables all tasks to communicate with the file system in parallel. When possible, PnetCDF offers further efficiency by combining multiple communication requests from one or more tasks into a smaller set of data transfers.

With netCDF, all communication with the filesytem must be channeled through one process. With PnetCDF, each parallel process can communicate with the file system and the PnetCDF library can aggregate multiple small requests into large requests to maximize bandwidth.
Comparison of I/O patterns in netCDF and PnetCDF. Image Source: CUCIS
 
©  |   Cornell University    |   Center for Advanced Computing    |   Copyright Statement    |   Inclusivity Statement