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: