Часть вторая - параллельная обработка загруженных в оперативку фрагментов данных. С вопросами, а на сколько их вообще можно параллелить, если ли зависимость от порядка поступления и пр. Второй этап, просто интуитивно понятно, что если заниматься строковым разбором csv без сохранения порядка, формируя задачи, например, по 1000 строк на каждый процессор, то это будет быстрее, чем последовательно перебирать все строки на одном процессоре. Но не факт, что перебирать последовательно на одном будет медленнее, чем запускать в параллельную обработку каждую прочитанную строку файла.
И именно во второй части есть резерв к ускорению.