D3PLOT 22.1

Disk i/o Buffer Size Settings

Disk i/o Buffer Size Settings

D3PLOT has to read a lot of analysis data from disk, and it improves performance if this process is tuned.

It is convenient to separate disk into "local" (inside this machine) and "network" (accessed remotely), since the sizes that work best in each case vary. Therefore D3PLOT has the following size settings:

  • Fragmented local : Used to read interleaved element data from local disk into a buffer.
    On most systems this works best if it is set to "unlimited" size, denoted here by zero bytes. On 64 bit systems this is genuinely unlimited, however on 32 bit systems this implies a cap of 100MBytes to limit the amount of memory dedicated to i/o. On all systems there is also a "hard" limit of 2 GB since values greater than this can cause problems.
    It is recommended that this value is left unchanged.
  • Fragmented network : Used to read interleaved element data from networked disk into a buffer.
    This defaults to 4 MBytes, a value arrived at by trial and error on a range of networks. Tuning this value can have a significant effect on the time taken to read data, and you will need to experiment with your network to find out what works best for you.
  • Raw network : Used to read sequential nodal data directly from networked disk.
    Nodal data is stored on disk in a format that permits it to be read directly without the need for an intermediate data buffer. On most systems the optimum performance is obtained (on both local and network disks) by reading it as a single chunk of data in one operation; however we have encountered networks that place an artifical limit on the amount of data that can be read in this way. It is also possible that some networks will give better performance if the amount of data read in a single operation is limited.
    Therefore the default read size is "unlimited", denoted by a size of zero bytes, and in most cases this will give the optimum performance. Experimenting with finite sizes *may* give improved performance, but it is our experience that this value is best left as "unlimited" unless you find that you are having network problems reading nodal data.
    Note that changing any of the sizes above will only apply to models opened after the change, so to see effects it will be necessary to "reopen" models.
  • Using "stream i/o" : Which system routines are used: low level raw or higher level buffered.
    Operating systems provide both direct low-level raw access to disks and higher level buffered access, referred to as "stream i/o". Generally the unbuffered low-level method is faster, especially for local disks, but on some networks it is sometimes possible to obtain better performance with buffered i/o.
    If you have network speed problems it may be worth trying buffered stream i/o to see if you obtain better performance but this is something you will have to determine by trial and error as every network is different.
    (If you choose stream i/o then the buffer sizes set above are ignored because they are irrelevant.)
    Changes to any of the above only take effect when a file is opened. To apply them to a currently open set of files it will be necessary to close and reopen the model. This can be done via File -> Reread model. Buffer sizes and stream i/o settings can be saved in your oa_pref file using the "Save disk i/o settings" button.
  • Write i/o diagnostics to log file : This logs all disk i/o operations to file and is used for diagnosing i/o problems, Oasys Ltd Support may ask you to turn it on and to send them the resulting file. It can also be set by creating environment variable D3PLOT_DIAG_OUTPUT to TRUE .