У меня есть большой файл (больше, чем оперативная память, не могу прочитать сразу), и мне нужно обработать его по строкам (в С++). Я хочу использовать несколько ядер, желательно с Intel TBB или Microsoft PPL. Я предпочел бы избежать предварительной обработки этого файла (например, его разделение на 4 части и т.д.).
Я думал о чем-то вроде использования 4 итераторов, инициализированных позициями (0, n/4, 2 * n/4 3 * n/4) в файле и т.д.
Это хорошее решение и есть ли простой способ его достижения?
Или, может быть, вы знаете некоторые библиотеки, которые поддерживают эффективное одновременное чтение потоков?
обновление:
Я делал тесты. IO - это не узкое место, а процессор. И у меня много оперативной памяти для буферов.
Мне нужно проанализировать запись (размер var, приблизительно 2000 байт каждый, записи разделены уникальным "\ 0" char), проверить его, выполнить некоторые вычисления и записать результат в другой файл (ы)