Сегашните многоядрени процесори са също толкова ефективни, колкото са били и пентиумите преди 8 години. И причината за това е конвейрната обработка на иснтрукциите. Операционните системи не просто се оптимизират за паралелна обработка - те само се превеждат за работа с новите процесори и като резултат имаме една неефективно работеща х64 битова ОС сравнена с х86 такава.
Много ще се радвам да се аргументираш. Според мен това твърдение е леееко далеч от истината. Мога да се обоснова, но трябва да ходя да гледам Транс след малко и нямам време.
Нека да оставим настрана съображенията за сигурност и да се съсредоточим върху ефективността - във всяко ново изчисление участва резултата от предходното, как да разпределим тогава задачите за паралелно изчисление - отговорът е точно във виртуалните машини.
За да твърдиш това, очевидно нямаш идея как работи task scheduler-а в линукс, а и в която и да било модерна операционна система. Виртуализацията не променя абсолютно нищо, освен overhead-а от hypercall-овете, празненето на TLB кеша и тем подобни тежести асоцирани с виртуализацията. Да не говорим, че многонишков софтуер, който е написан с идеята да се възползва от многоядрени системи, няма да работи оптимално.
Съвсем отделно, виртуализацията няма нищо общо и не може да ти реши проблема с паралелизацията - има алгоритми, които се "подават" на сериализация, както и други, които не могат. Примерно почти всеки рекурсивен алгоритъм е почти невъзможен за паралелизация, други алгоритми се подават, но налагат използване на достатъчно много синхронизационни примитиви, за да се убие смисъла. Множеството embarassingly parallel проблеми е доста по-малко от множеството проблеми по принцип. Абсолютно съм съгласен, че това е относително нова област, която търпи развитие, но не - виртуализацията няма нищо общо с това.
И не говорим за емулиране на ОС а само за отделни процеси. За какво разхищение на процесорно време говориш като една видео карта харчи десетки пъти повече изчислителна мощ и електроенергия от самият процесор?
Тема за размисъл - TDP на един от най-бързите CPU-та на пазара, Core i7-970 е 150W. TDP на най-бързата едночипова видеокарта на пазара, Radeon HD7970 е 230W. Това не е точно като десетки пъти разлика. Изчислителната мощ на видеокартата е по-голяма...да ама зависи за какво. За няколко години занимания с криптография върху видеокарти, всякакви безумни трикове, оптимизации, хитруване на дребно, имал съм случаи когато крайният резултат върху 7970 е няколко пъти по-бавен от сходен алгоритъм подкаран върху евтин стар Phenom x2. Знаеш ли колко лошо се справят с достъпите до видеорамта GPU-тата? Знаеш ли колко лошо им се отразява branch divergence-а? CPU-тата имат съвсем различна архитектура, имат branch prediction, дори когато не "познаят", наказанието ти е че го отнася pipeline-а. В GPU-тата това което се случва, че двата изхода на branch-а се изпълняват серийно един след друг.