Хотя потоки POSIX (pthreads), вероятно, являются хорошей идеей для начала, это не исключение.
Многопоточность в C на самом деле не тривиальна, поэтому я бы посоветовал fork()
.
запустите одну рабочую ветвь для каждого ЦП с подразделом вашего алгоритма сортировки слиянием, а затем снова соберите их в диспетчере менеджера.
При работе над параллельным решением я рассматриваю форки перед потоками, поскольку их проще реализовать, и вы получаете быстрый предварительный результат. Как только это сработает, вы можете потратить некоторое время и поработать с pthreads.