std :: fstream buffering vs manual buffering (¿por qué 10 veces de ganancia con el almacenamiento manual)?

He probado dos configuraciones de escritura:

1) Fstream buffering:

// Initialization
const unsigned int length = 8192;
char buffer[length];
std::ofstream stream;
stream.rdbuf()->pubsetbuf(buffer, length);
stream.open("test.dat", std::ios::binary | std::ios::trunc)

// To write I use :
stream.write(reinterpret_cast<char*>(&x), sizeof(x));

2) Almacenamiento en búfer manual:

// Initialization
const unsigned int length = 8192;
char buffer[length];
std::ofstream stream("test.dat", std::ios::binary | std::ios::trunc);

// Then I put manually the data in the buffer

// To write I use :
stream.write(buffer, length);

Esperaba el mismo resultado ...

Pero mi almacenamiento en búfer manual mejora el rendimiento en un factor de 10 para escribir un archivo de 100 MB, y el almacenamiento en búfer de fstream no cambia nada en comparación con la situación normal (sin redefinir un búfer).

¿Alguien tiene una explicación de esta situación?

EDITAR: Aquí están las noticias: un punto de referencia que se acaba de realizar en una supercomputadora (arquitectura de Linux de 64 bits, sistema Intel Xeon de 8 núcleos, sistema de archivos Lustre y ... compiladores bien configurados con suerte) (y no explico la razón de la "resonancia" para un búfer manual de 1kB ...)

EDIT 2: Y la resonancia en 1024 B (si alguien tiene una idea al respecto, me interesa):

Respuestas a la pregunta(3)

Su respuesta a la pregunta