Сложилось впечатление, что некоторые господины воспринимают распараллеливание как некую магию, которую можно только наблюдать по "приборам" типа диспетчера задач.
Хочется спросить: а этот ваш "честный немикрософтский диспетчер" работает на нулевом кольце привилегий или он работает на 3 кольце и за всей информацией обращается к винде, т.к. на 3 кольце доступа к железу нет? Но это скорее вопрос о корректности измерений и маркетинговых ходах микрософта. Мне бы хотелось сделать акцент на другом.
Приведу аналогию: есть задача, которую один человек выполняет за определенное время, например это сборка АК-47. мы хотим ускорить этот процесс и даем для этого помощника. Возникает задача разделить обязанности между двумя "сборщиками" так, чтобы они друг другу не мешали и результат получился такой какой надо и за меньшее время. Думаю задача эта не так проста, не смотря на то, что нам полностью известен и алгоритм, и результат, который мы хотим получить. А теперь внимание вопрос: смогут ли 2 человека разделить эту задачу ровно по 50%? Будут ли они при этом работать в 2 раза быстрее? а 4 человека во сколько раз будут быстрее и с каким распределением? а 8?
Тем кому этот пример кажется надуманным и неподходящим, могут попробовать распараллелить простейшую "пузырьковую" сортировку и написать сюда как же два ядра/процесса/потока/человека будут ее выполнять.
Вообщем мое мнение, что реальное распараллеливание есть только для многопоточных приложений, которые имеют несколько потоков, каждый из которых можно выполнять на отдельном ядре. Все остальное - надувательство и профанация. Да и почитайте про распараллеливание алгоритмов - это целая наука и я сомневаюсь, что Windows легко умеет это делать.
З.Ы.
Если Windows умеет замечательно распределять работу WinRar равномерно по ядрам, то зачем же автор Евгений Рошаль старался писал многопоточный режим? Типа не все версии виндов так умеют?
