Parallel proces

(eller: concurrent processing, concurrent processes).

Programmer, skrevet i programmeringssprog som Pascal eller BASIC, er beregnet på sekventiel udførelse, dvs. sætningerne udføres én for én i en veldefineret rækkefølge. Udføres sådanne programmer flere gange med samme inddata, vil uddata principielt være de samme hver gang. Til gengæld vil muligheden for samtidig udførelse af programdele, som er relativt uafhængige, ikke blive udnyttet. Dette er analogt til hverdagen, hvis man gør én arbejdsopgave helt færdig, før man starter på den næste. I mange tilfælde vil en given opgave kunne gøres hurtigere, hvis der sættes et hold til opgaven (f.eks. grøftegravning), i stedet for at lade én person gøre den færdig.

Analogt til dette er der med parallelle processer indført et konstruktionsprincip, således at en given opgave kan nedbrydes i (eller opbygges af) et antal delopgaver, kaldet processer eller tasks, der er beregnet på parallel (dvs. samtidig) afvikling. Der opnås herved for egnede edb-opgaver en logisk forenkling og en hurtigere behandling i computeren. Parallelle processer ses især ved konstruktionen af styresystemer, i store numeriske beregningsopgaver ("talknuseri") inden for f.eks. oliegeologi, meteorologi samt proceskontrol (elkraftværker, elforsyningsnet, kloaksystemer, kemiske fabrikker).

Parallel databehandling kan principielt finde sted i en computer med en enkelt CPU, under anvendelse af multiprogrammering. En hastighedsgevinst vil imidlertid først fås under brug af specielle computere, der f.eks. har en række ens CPU'er, forbundet indbyrdes. Der tales nu om computere, ikke blot med 16, 32 eller 64 CPU'er, men med 64.000 CPU'er. Se multiprocessing og MIMD.

I forbindelse med parallelle processer opstår der problemer med synkronisering af processer, med adgang til delte data, og med udveksling af data processerne imellem. I arbejdet med at finde egnede løsninger er der konstrueret små prøveeksempler på parallelle processer med malende navne som "De sultne filosoffer" og "Den søvnige barber". Dette illustrerer, at problemstillingerne også er kendt fra hverdagen.

Programmeringen af programmel, der benytter parallelle processer, stiller særlige krav til programmeringssprog og styresystem. Der er udviklet specielle sprog til formålet, se systemprogrammeringssprog og formelt beskrivelsessprog. Styresystemet UNIX er et eksempel på et system, der kan håndtere parallelle processer, hvorimod sproget C ikke har særlige faciliteter til dette.

Forfattere: 
Klaus Hansen
Casper Thomsen