| | 42 | Do note that we do not have Fortran bindings for these new routines in |
| | 43 | parallel-netcdf-1.1.0, but want very much to introduce Fortran bindings for |
| | 44 | this feature in a future release. In the meantime, Fortran codes can use the |
| | 45 | implicit method (below). |
| | 46 | |
| | 47 | '''Implicit Method''' The library accesses multiple variables implicitly. Several variable accesses can be "scheduled" with the |
| | 48 | nonblocking routines. Then, when the application waits for completion of |
| | 49 | those accesses, the library will service them all in a single call. |
| | 50 | |
| | 51 | While it may not have had widespread use, parallel-netcdf has had a |
| | 52 | nonblocking interface for some time. It looks a lot like the MPI non-blocking |
| | 53 | routines: |
| | 54 | |
| | 55 | In C: |
| | 56 | |
| | 57 | {{{ |
| | 58 | ncmpi_iget_vara_all |
| | 59 | ncmpi_iput_vara_all |
| | 60 | ncmpi_wait |
| | 61 | ncmpi_waitall |
| | 62 | }}} |
| | 63 | |
| | 64 | In Fortran: |
| | 65 | {{{ |
| | 66 | nfmpi_iget_vara_all |
| | 67 | nfmpi_iput_vara_all |
| | 68 | nfmpi_wait |
| | 69 | nfmpi_waitall |
| | 70 | }}} |
| | 71 | |
| | 72 | In the 'wait' and 'waitall' methods, the library actually batches up all |
| | 73 | outstanding nonblocking operations. In this way, we can carry out this |
| | 74 | optimization without needing a thread. |
| | 75 | |