Использование нескольких ядер для обработки большого последовательного файла в c ++

У меня большой файл (больше ОЗУ, не могу прочитать сразу целиком), и мне нужно обработать его построчно (в C ++). Я хочу использовать несколько ядер, предпочтительно с Intel TBB или Microsoft PPL . Я бы предпочел избежать предварительной обработки этого файла (например, разбить его на 4 части и т. Д.).

Я думал о чем-то вроде использования 4 итераторов, инициализируется (0, n / 4, 2 * n / 4 3 * n / 4) позициями в файле и т. д.

Хорошее ли это решение и есть ли простой способ его достижения?

] Или, может быть, вы знаете какие-нибудь библиотеки, которые поддерживают эффективное одновременное чтение потоков?

обновление :

Я провел тесты. IO - это не узкое место, а процессор. И у меня много ОЗУ для буферов.

Мне нужно проанализировать запись (размер переменной, примерно 2000 байт каждая, записи разделены уникальным символом '\ 0'), проверить ее, произвести некоторые вычисления и записать результат в другой файл (ы)

10
задан Piotr 20 May 2011 в 11:04
поделиться