Уже есть ответы для случая с двумя машинами.
Я предполагаю, что 128 ГБ данных для сортировки хранятся в виде одного файла на одном жестком диске (или любом внешнем устройстве).Независимо от того, сколько машин или жестких дисков используется, время, необходимое для чтения исходного файла объемом 128 ГБ и записи отсортированного файла объемом 128 ГБ, остается неизменным.Единственная экономия происходит во время внутренних сортировок на основе оперативной памяти для создания фрагментов отсортированных данных.Время, необходимое для слияния с n + 1 жесткими дисками, чтобы выполнить n-способ слияния в один отсортированный файл 128 ГБ на оставшийся жесткий диск, снова остается тем же, ограниченным временем, необходимым для записи отсортированного файла 128 ГБ на этот оставшийсяжесткий диск.
Для n машин данные будут разбиты на куски 128 ГБ / n.Каждая из машин может чередовать субчастоты чтения, возможно, по 64 МБ за раз, чтобы уменьшить издержки произвольного доступа, так что «последняя» машина не ждет, пока все предыдущие машины прочитают все свои блоки, прежде чем она даже запустится.
Для n машин (по 64 ГБ оперативной памяти каждый) и n + 1 жестких дисков с n> = 4 радикальная сортировка с O (n) сложностью по времени может использоваться каждой машиной для создания блоков размером 32 ГБ или меньше.n работающих жестких дисков одновременно с последующим n-way слиянием с целевым жестким диском.
Существует точка уменьшения отдачи, ограничивающая преимущество большего n.Где-то за пределами n> 16 внутренняя пропускная способность слияния может стать больше, чем пропускная способность дискового ввода-вывода.Если процесс слияния связан с процессором, а не с вводом / выводом, то накладные расходы процессора компенсируются временем, затрачиваемым на параллельное создание порций, по сравнению с накладными расходами на слияние, превышающими время ввода / вывода.