CalculiX I/O unbuffered

Version's name: CalculiX I/O unbuffered ; a version of the CalculiX IO program.
Repository: [home] and version downloads: [.zip] [.tar.gz] [.tar.bz2] [.tar]
Patterns and behaviours: Inefficient file I/O due to many unbuffered write operations ·
Recommended best practices: Using buffered write operations ·

This program represents the original I/O behavior found in the CacluliX application.
It writes simulation results to a file in .frd format.

The structure of the program is given by the following (pseudo) code:

open("output.frd")

do i = 1, NUM_NODES
    write(*,*) node_properties(i)
end do

close("output.frd")

The number of nodes (NUM_NODES) is typically in the order of millions. Each node stores some kind of physical information (e.g. stress, flux, …). In order to write these information to a file the program iterates over all nodes and issues a single write operation per node. Each write operation writes data in a very small chunk (e.g. 8 byte) and there are millions of them.

In this original version of the program the I/O operations are not buffered by the operating system. Thus, this results in a performance degradation.

The following experiments have been registered: