Parallelle verwerking is al lang geleden erkend als een manier om nog krachtiger computersystemen te bouwen. Het concept kent veel verschijningsvormen en kan worden gebruikt om de verwerkingskracht te verhogen, om de opslagcapaciteit te verbeteren en om de I/O-bandbreedte te verhogen. Maar binnen elke categorie (en sommige systemen ondersteunen alle opties) bestaan er ook weer varianten.
Mainframes, gedomineerd door de IBM System/390-architectuur, maar ook door de machines van ICL, Unisys en dergelijke, maken al jaren gebruik van parallelle verwerking. Ze zijn waarschijnlijk de bekendste voorbeelden van de algemene toepasbaarheid van het concept. Daarnaast hebben twee voor specifieke toepassingen ontwikkelde architecturen hun zegje kunnen doen. Wetenschappelijke supercomputers, zoals geleverd door Convex en Cray, hebben parallelle processoren die tegelijkertijd op de elementen in een matrix kunnen werken; hierdoor wordt een enkel programma sneller uitgevoerd. De algemenere symmetrische multiprocessor-machines (smp) gebruiken een gemeenschappelijk geheugen, zodat er meer taken tegelijkertijd kunnen worden uitgevoerd; dit verbetert de doelmatigheid van multi-user systemen (meer van hetzelfde). Momenteel zijn netwerkarchitecturen heel algemeen; de bekendste voorbeelden zijn de IBM RS/6000 SP-architecturen (voorheen de SP2) en de gespecialiseerde query-machines van NCR (voorheen Teradata) en ICL. Deze machines bestaan uit een serie onafhankelijke systemen (processor, geheugen, I/O en opslag) die via een snelle switch aan elkaar gekoppeld zijn. Tandem maakt al sinds jaar en dag gebruik van een parallelle architectuur; door de redundantie ontstaat een fouttolerant systeem. Door hun techniek en hun nieuwe, snelle schakeltechniek spelen ze nu ook een belangrijke rol voor andere applicaties.
De nieuwe generatie mainframes combineert alle functies. Clusters van smp-machines worden aan een gemeenschappelijk I/O-subsysteem gekoppeld, zodat alle processoren toegang hebben tot een gemeenschappelijke opslagruimte; hierdoor is het niet langer nodig om gegevens van de ene schijf naar de andere te kopiëren. Om historische redenen ondersteunen mainframes ook meerdere virtuele machines, waarbij systeembronnen worden opgesplitst in diverse combinaties van processoren, geheugen en I/O. In combinatie met de Sysplex-technologie wordt het hierdoor mogelijk een complex van computers en subsystemen te beschouwen als een enkel systeem.
Een van de belangrijkste softwareprodukten die gebruik maakt van parallelle verwerking is databasebeheer. En dat maakt meteen het probleem duidelijk. Parallelle verwerking heeft geen zin als de software nog steeds is gebaseerd op een uniprocessor; in dat geval gebruikt de software maar één applicatie, terwijl de andere onbenut blijven. Eerdere softwareversies waren zwakke compromissen, vooral op smp-machines, vooral met Unix. In de eerste plaats werd Unix zelf toegesneden op smp-hardware, waarbij taken werden ingeroosterd op de eerste de beste vrije processor; de processoren zelf werkten nog steeds volgens het time-sharing principe. Hierdoor ontstond een nieuw soort hardwareleveranciers, zoals Pyramid en Sequent; aan de onderkant van de markt hebben PC-fabrikanten (zoals Compaq en Sequent; Intel heeft een 4×4 Pentium-bord voor de kloners) hun eigen smp-versies van Unix ontwikkeld. Zij worden gevolgd door Solaris, HP-UX, AIX en SCO Unixware.
Daarna produceerden de databaseleveranciers Rdbms-systemen die waren toegesneden op smp. De Rdbms-software wordt hiertoe opgesplitst in verschillende taken, zoals SQL-interpretatie, log-management, rollback, shadow-processing, tabelbeheer en dergelijke; in een multi-user omgeving kunnen al deze taken tegelijkertijd actief zijn voor verschillende applicatietaken. Een aardige uitbreiding is het laden van gegevens in de database, waarbij verschillende gebruikers tegelijkertijd gebruik kunnen maken van deze gegevens.
Deze produkten – van Oracle, Informix, Sybase en dergelijke – werden vervolgens gepoort naar de nieuwe massaal-parallelle (mpp) systemen zoals SP2 en Goldrush. Op deze systemen draaien één of meer deelsystemen (CPU, geheugen en I/O) de gebruikerstoegang en de standaard-applicatiecode, terwijl andere ‘nodes’ een kopie van de database en het besturingssysteem draaien. De gegevens worden gehashed tegen een primaire sleutel, zodat een tabel hopelijk gelijkmatig wordt verspreid over een aantal subsystemen. Het navigatie-subsysteem hasht de queries van de gebruikers en geeft ze door aan het desbetreffende subsysteem via het interne netwerk. Bij meerdere aanroepen worden er meerdere relevante rijen tegelijkertijd uit de verschillende subsystemen gehaald. Gevolg: een query op DB2/MV kan wel tien tot honderd keer zo lang duren als een query op DB2/6000 op een SP. Tot die tijd is er DB2 versie 4. Deze nieuwe versie van DB2 benut parallelle principes door gebruik te maken van de multiprocessor-architectuur van een System/390; dit geeft dezelfde performance als de nieuwere machines. Dit betekent eenvoudig dat MVS-gebruikers nu de mogelijkheid hebben om een datawarehouse op een mainframe te implementeren in plaats van op een geheel nieuw hardwareplatform. En zo treedt MVS toe tot het illustere gezelschap van machines die geschikt zijn voor datawarehousing: de smp- en de mpp-machines, evenals Tandem en hun doeltreffende parallelle SQL-database en NCR/Teradata. Een volle markt, als je het mij vraagt.
De conclusie: de aanname dat massaal parallelle systemen de enige optie voor datawarehousing zijn, is onjuist.