- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
First, is there a way to cancel asynchronous IO reads and writes? In C with Linux you have aio_cancel and in Windows, you have CancelIoEx. Is there a fortranfunction that can cancel a transfer given the unit number and ID?
Second, is there a way to open a file in direct / raw / no buffering mode? In Linux you can call open with O_DIRECT, and in Windows you pass CreateFile the flags FILE_FLAG_OVERLAPPED | FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH. This turns the kernel's file cache off for that file. I havetwo testprograms. Each issues an asynchronous read of 32 MB on an existing file and overlaps thatwith anarray operation on 3 arrays of 32 MB each. The difference between a fortran program using basic asyncrhonous IO and a C program using asynchronous IO without file cachingis that the computation takes 10% longer in the Fortran program ( which is no big deal )butthe effective hard drive bandwidth goes down to 35 MB/s from75 MB/s. The C program behaves similarly with the file cache on.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page