Wat ik van SMP hardware en software weet en mijn eigen ervarigen hiermee.
A). Een SMP mobo met 1 proc is door zijn grotere opzet qua perfomance iets langzamer dan een vergelijkbaar mobo wat voor 1 processor gebouwd is (zelfde chipset natuurlijk).

. Door het zeg maar synchroniseren van de afzonderlijke processoren heb je nooit b.v. de snelheid van 2 losse systemen.
Bij 2 processoren hou je ongeveer factor 1,8 over en bij 4 processoren hou je ongeveer een factor 3 over.
C). Niet alle hardware kun je ongestraft op een dual bord gebruiken.
Zelf heb ik veel problemen gehad met ISDN kaarten waarbij de drivers voor spontane reboot zorgden of je lijn openhielden.
Dit is de laatste jaren overigens beter, mijn dual P200 bord is alweer iets van 4 jaar oud.
D). Bij NT draait de kernel over beide processoren, je kunt dus niet je kernel op 1 processor draaien. Dit in tegenstelling wat ik lees in de berichten hierboven.
E). Er is maar weinig software echt goed voorbereid om te draaien op een SMP machine, meerstal draait de software binnen je NT machine op 1 processor.
Om dit wat duidelijker te maken hieronder een software verhaaltje.
Om een programma zover te krijgen dat deze op meerdere processoren tegelijk kan werken moet je werken met multi threading.
Threads zijn uitsplitsingen binnen je programma waarbij je aangeeft dat bepaalde zaken afzonderlijk kunnen worden uitgevoerd.
Als voorbeeld gebruik ik even het RC5 programma.
Indien je het RC5 gebruikt op een SMP machine dan wordt aan elke processor een thread gegeven, waarbij de thread bestaat uit verwerken van een work unit.
Bij een dual systeem worden er dus 2 work units tegelijk verwerkt.
Dit is een hele simpele manier van multi threading, want de threads opereren eigenlijk afzonderlijk van elkaar.
Simpel gezegd, A haalt een work unit uit het bestand, start een thread B op en laat B dit blokje uitrekenen. Ondertussen haalt A nog een blokje uit het bestand start C op en laat C dit blokje uitrekenen.
Vervolgens wacht A, als B of C klaar is dan krijgen ze gewoon een nieuw blokje van A en A zet de berekende work unit in een output bestand.
Bij "echt" multi threading zou het zo zijn dat 1 work unit berekend wordt door verschillende processoren.
Hierbij wordt de work unit door de programmatuur in stukken gehakt en middel een thread aangeboden aan het systeem die een processor aan het werk zet.
En dan komt de moeilijkheid van multi threading geschreven programmatuur pas om de hoek kijken, zorgen dat de afzonderlijke threads niet op elkaar gaan staan wachten (dead lock).
Indien een A wacht totdat B een bepaalde status heeft (die B nooit krijgt) dan kan A wachten totdat hij een ons weegt.
Ook moet het zo zijn dat de onderlinge thread in redelijk in evenwicht zijn, A binnen 1 seconde klaar terwijl B er 1 minuut over doet.
En voordat ik commentaar krijg

het RC5 programma is goed geschreven nl perfecte load balans tussen de onderlinge proc's.
De threads die binnen een programma worden opgestart worden door de kernel van je OS verdeelt over de aanwezige processoren.
Echter heb je daar binnen je programma geen invloed op.
Hiermee hoop ik een beetje aangegeven te hebben dat het hebben van 2 verschillende processoren binnen je systeem dus volstrekt onzin is (b.v. duron 600 en thunderbird 1000).
De mogelijkheid tot 2 verschillende processoren is overigens wel handig, stel je hebt 1 X 600 en je kunt later goedkoop een 650 op de kop tikken.
In mijn systeem moesten 2 dezelfde proc's zitten met dezelfde stepping anders werkte het niet.....
Mijn conclusie:
SMP machines vallen zwaar tegen omdat er maar heel weinig software echt voor geschreven is.
Ik denk dat maar weinig mensen echt gebruik maken van de mogelijkheden al moet ik zeggen dat RC5 natuurlijk een optimaal gebruik van de machine opleverd
Hopelijk is dit lange verhaal een beetje duidelijk geschreven...