Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Comunicados
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

What is BLOCKSIZE and how does it affect performance of IO operations?

Hashemi__Ali
Principiante
1.437 Visualizações

The manual only says "The BLOCKSIZE specifier indicates the physical I/O transfer size in bytes for the file."
Does it actually have to do anything with the block size of the physical storage? 

How would BLOCKSIZE affect the buffered and non-buffered IO performance? 

I appreciate if someone can provide a few examples that changing BLOCKSIZE will affect the performance (for better or worse).

 
0 Kudos
1 Solução
Steve_Lionel
Colaborador honorário III
1.437 Visualizações

BLOCKSIZE determines how the run-time library "chunks" I/O operations. For non-buffered I/O, it primarily affects large transfers - whether it's fewer, larger transfers or more smaller ones. Generally larger transfers are more efficient. There's no relationship to the physical storage.

Buffering is where the library defers physical I/O operations, collecting more data from the I/O operation. The library tries to be "smart" about this but it can't always pick the optimal strategy.

The reason the controls are there is that applications vary, and you may need to experiment to see what works best for you.

Ver solução na publicação original

1 Responder
Steve_Lionel
Colaborador honorário III
1.438 Visualizações

BLOCKSIZE determines how the run-time library "chunks" I/O operations. For non-buffered I/O, it primarily affects large transfers - whether it's fewer, larger transfers or more smaller ones. Generally larger transfers are more efficient. There's no relationship to the physical storage.

Buffering is where the library defers physical I/O operations, collecting more data from the I/O operation. The library tries to be "smart" about this but it can't always pick the optimal strategy.

The reason the controls are there is that applications vary, and you may need to experiment to see what works best for you.

Responder