Maximum 8 utasítást, minimum 1 utasítást - ez a nem mindegy. Egyébként a promo anyagok arról se szólnak, hogy jó kevés az az utasítás ami 1 ütemciklus alatt lemegy, ráadásul ez valójában nem is egy utasítás, hanem mondjuk 8*(1/8)-ad utasítás, ha a csõvezeték 8 részbõl áll. Szóval nehéz a szénbányászok élete, de a párhuzamos mûködésre való optimalizálás se piskóta.
Jópár éve beszélgettem egy sráccal, aki elég jól nyomta assemblyben is a dolgokat. Akkoriban Pentium volt a szerverünk (kliensek 386SXek, DXek, 486DLC-k). A pentium már tudott párhuzamosan utasítást végrehajtani (U ill. V pipe). Viszont ennek volt jópár feltétele, pl V bemenõ operandusa nem függhetett U eredményétõl, csak az egyik tudott lebegõpontosat, csak az egyik lehetett feltételes ugrás, stb. Szóval gyakorlatban úgy nézett ki, hogy egy átlag program kb 10-15%-ban használta ki a V csövet (U mindig tele volt). Ha optimalizált az ember kézzel, assemblyben, akkor el lehetett érni kb 70-80% kihasználtságot szinte bármilyen kódnál. De ezt nem csinálta meg senki se, a C fordítók pláne nem. A többmagos prociknál az a baj, hogy ez a probléma elég vastagon hatványozott, mert itt már nem 2 végrehajtó egységet kellene teletölteni folyamatosan, hanem mondjuk magonként nem tudom hány darabot (2 biztosan, de inkább több). Ezt általános feladatoknál biztos nem lehet (ezért 8 mag közel sem lesz 8x gyorsabb), renderelésnél meg biztos hogy meg lehetne közel 100% hatákonyságra, ha megerõltetné magát az engine írója.