просто теоретическое рассуждение
скажем программа - и мультипроцессорная машина
в программе - есть определенный уровень параллельности
весьма много частей кода - обрабатывают разные независимые данные
вопрос - как сделать наиболее оптимальную параллельность ?
имеется ввиду весьма низко уровненная параллельность
скажем - по алгоритму - можно выделить 10-20 возможно параллельных участков - которые также динамически прибавляются-убавляются
так что - на каждый этот участок делать нить? которая тока и будет что сидеть и ждать свой семафор?
а что если сделать число нитей - равное число процессоров - и в каждой ните сделать внутренний шедуллер кусков кода и кусков данных - которые были бы описаны - описано их взаимовлияние
и по этом правилам - внутренний шедуллер и распределял бы задачи на реальные процессоры
что в данной ситуации являеться более оптимальным ?