Grafické procesory obsahují velké množství jednotek, které dokáží pracovat paralelně. Ovšem jen málo úloh je tak snadno paralelizovatelných, abyste efektivně využil stovky paralelně běžících jednotek. Nehledě na fakt, že tyhle „výpočetní jednotky“ mají hodně daleko k jádru procesoru a drtivou většinu úloh prostě technicky nezvládnou (paměť a IO).
Na něco se GPU hodí výborně – práce s obrazem (každá jednotka pracuje na „pár pixelech“ a výsledek je lokální, tudíž výborně paralelizovatelná úloha), simulace kapalin, různé metody simulací metodami konečných vzorků apod. Zkrátka něco, kde dokážete izolovat lokální data a výpočet v „místě“ A nezáleží na výpočtu v „místě“ B. Taková úloha je snadno paralelizovatelná a jednotlivé jednotky vystačí s málem paměti.
Oproti tomu klasické CPU jsou výhodné na špatně paralelizovatelné úlohy, kde využijete velký výkon jádra CPU, nebo na úlohy pracující s velkým objemem závislých dat. Typickým příkladem jsou biologické simulace a složité fyzikální výpočty, kde se počítají vzájemné interakce tisíců nebo milionů objektů.
Jinak řečeno, při vhodné volbě úlohy dokážete reálný TFlops dostat z obou technologií. Akorát že pro klasické CPU je vhodná prakticky každá úloha (perná práce všechno zmůže), u GPU to vyžaduje mnohem více práce a většinu úloh i tak nezvládnete počítat efektivně.