Как вы планируете распределять работу после разделения файлов?
Я сделал нечто похожее на это на платформе, называемой GridGain, - это сеточная вычислительная среда, которая позволяет вам выполнять задачи на сетке компьютеров.
Имея это в виду, вы можете использовать поставщика кеша, такого как JBoss Cache, чтобы распределить файл по нескольким узлам, указать номер начальной и конечной строки и процесс. Это описано в следующем примере GridGain: http://www.gridgainsystems.com/wiki/display/GG15UG/Affinity+MapReduce+with+JBoss+Cache
В качестве альтернативы вы можете посмотреть что-то вроде Hadoop и файловой системы Hadoop для перемещения файла между различными узлами.
Та же концепция может быть реализована на вашем локальном компьютере, загрузив файл в кеш, а затем назначив определенные «куски» файла для обработки отдельными потоками. Грид-вычисления на самом деле предназначены только для действительно больших проблем или для прозрачного обеспечения некоторого уровня масштабируемости вашего решения. Возможно, вам придется остерегаться узких мест и блокировок ввода-вывода, но простой пул потоков, в который вы отправляете «задания» после разделения файла, может работать.