Hi Harald,

Yes i tried other values.

It seems that the value set in the foreseen environment variable is just

ignored.

And always a buffer size of 8kiB is used, which is the default values

for formatted I/O harcoded in libgfortran.

The only way to change this value is editing and recompiling the libgfortran.

Best.

Denis


________________________________
From: Harald Anlauf <anl...@gmx.de>
Sent: Friday, February 25, 2022 9:44:53 PM
To: Bertini, Denis Dr.
Cc: Tobias Burnus; fortran@gcc.gnu.org
Subject: Re: Problem setting buffer size for gfortran ( v 11.2)

Hi Denis,

> export GFORTRAN_UNFORMATTED_BUFFER_SIZE=10000
> export GFORTRAN_FORMATTED_BUFFER_SIZE=10000
> export GFORTRAN_UNBUFFERED_ALL=n
>
>  From the output log  indeed  i got the correct env. variable as i set:
>
>
> GFORTRAN_FORMATTED_BUFFER_SIZE=10000
>
>
> But from strace output i got always
>
>
>>>>>>>>>>>>>>>>>>>>>>>
>
> write(3, 
> "\0\0\0\0\0\0\10@\0\0\0\340\314\314\10@\0\0\0\240\231\231\t@\0\0\0`ff\n@"..., 
> 8192) = 8192
> write(3, 
> "\0\0\0@33\v@\0\0\0\0\0\0\f@\0\0\0\340\314\314\f@\0\0\0\240\231\231\r@"..., 
> 8192) = 8192
> write(3, "\0\0\0`ff\16@\0\0\0@33\17@\0\0\0\0\0\0\20@\0\0\0`ff\20@"..., 8192) 
> = 8192
> write(3, 
> "\0\0\0\340\314\314\20@\0\0\0@33\21@\0\0\0\240\231\231\21@\0\0\0\0\0\0\22@"...,
>  8192) = 8192
> write(3, 
> "\0\0\0`ff\22@\0\0\0\340\314\314\22@\0\0\0@33\23@\0\0\0\240\231\231\23@"..., 
> 8192) = 8192
> write(3, 
> "\0\0\0\0\0\0\24@\0\0\0`ff\24@\0\0\0\340\314\314\24@\0\0\0@33\25@"..., 8192) 
> = 8192
> .....
>>>>>>>>>>>>>>>>>>>
> Showing the fixed that still a  8kiB buffer size is effectively ude in I/O...

did you ever think of trying other values than 10000?

On my Linux laptop, buffering is done in multiples of 2k.
If I set GFORTRAN_UNFORMATTED_BUFFER_SIZE=14000, I get writes in
sizes of 12288.  Which is likely more efficient than asking for
exactly 14000.

Cheers,
Harald

Reply via email to