Трудно судить о лучшем для вашей ситуации.
Первая оптимизация, которую нужно сделать, - это предварительно выделить файл.Таким образом, вашей файловой системе не нужно постоянно увеличивать свой размер.Это должно оптимизировать некоторые операции с диском.Однако избегайте записи реальных нулей на диск.Просто установите длину.
Тогда у вас есть выбор между mmap и write.Это также зависит от операционной системы, которую вы используете.На Unix я бы попробовал и mmap, и pwrite.pwrite полезен, потому что каждый из ваших потоков может записывать в файл в нужной позиции файла, не борясь за смещения файла.
mmap может быть хорошо, потому что вместо копирования в файловый кеш ваши потоки будут записывать непосредственно в файловый кеш.Вероятно, 60 ГБ слишком велики для mmap всего файла, поэтому каждому потоку, вероятно, понадобится свое собственное окно mmap для файла, который он может перемещать.
В Windows вы, вероятно, захотите использовать перекрывающийся асинхронный ввод-вывод,Это можно сделать только с помощью вызовов Win32 API.