Vi beskriver och utvärderar HELIX, en ny teknik för automatisk parallellisering av slingor som tilldelar successiva iterationer av en slinga till separata trådar. Vi visar att de kostnader för inter-thread kommunikation som tvingas av loop-carried databeroende kan minskas genom kodoptimering, genom att använda en effektiv heuristic för att välja loopar att parallellisera, och genom att använda hjälptrådar för att prefetch synkronisering signaler. Vi har implementerat HELIX som en del av ett optimerande kompileringsramverk som automatiskt väljer och parallelliserar slingor från allmänna sekventiella program. Ramverket använder en analytisk modell av slinga speedups, kombinerat med profildata, för att välja slingor att parallellisera. På en sex-kärnig Intel R  och Core  på i7-980X, uppnår HELIX upphastigheter i genomsnitt 2,25, med ett maximum på 4,12 på, för tretton C-riktmärken från SPEC CPU2000.
REF extrahera parallellism genom att köra iterationer av en ögla på separata trådar, uppfyller loop-carried beroenden med hjälp av signaler mellan trådar.
HELIX: automatic parallelization of irregular programs for chip multiprocessing
{'venue': "CGO '12", 'journal': None, 'mag_field_of_study': ['Computer Science']}