Objašnjeni neugodno paralelni algoritmi

U paralelnom programiranju, neugodno paralelan algoritam je onaj koji ne zahtijeva komunikaciju ili ovisnost između procesa. Za razliku od problema s raspodijeljenim računarstvom kojima je potrebna komunikacija između zadataka - posebno na srednjim rezultatima, neugodno paralelne algoritme lako je izvesti na farmama poslužitelja kojima nedostaje posebna infrastruktura koja se koristi u istinskom klasteru superračunala.

Zbog prirode neugodno paralelnih algoritama, oni su vrlo pogodni za velike distribuirane platforme zasnovane na Internetu i ne pate od paralelnog usporavanja. Suprotno neugodno paralelnim problemima u osnovi su serijski problemi, koji se uopće ne mogu paralelizirati.

Idealan slučaj neugodno paralelnih algoritama može se sažeti kako slijedi:

  • Svi pod-problemi ili zadaci definirani su prije početka izračunavanja.
  • Sva se podrešenja pohranjuju na neovisnim memorijskim mjestima (varijable, elementi niza).
  • Prema tome, izračunavanje dodatnih rješenja je potpuno neovisno.
  • Ako izračunavanja zahtijevaju neku početnu ili konačnu komunikaciju, tada to nazivamo gotovo neugodno paralelnom.

Mnogi se možda pitaju etimologiji izraza "neugodno". U ovom slučaju, neugodno nema nikakve veze s neugodnošću; zapravo znači prekomjerno obilje - ovdje se misli na probleme paralelizacije koji su „sramotno laki”.

Uobičajeni primjer neugodno paralelnog problema je prikaz 3D videozapisa kojim upravlja grafička jedinica za obradu, pri čemu se sa svakim okvirom ili pikselom može raditi bez međusobne ovisnosti. Neki drugi primjeri bili bi softver za presavijanje proteina koji se može pokretati na bilo kojem računalu, pri čemu svaki stroj radi mali dio posla, generiranje svih podskupova, slučajnih brojeva i simulacije Monte Carla.