Eine Compute Farm ist ein Datenparalleles Programmiermodell das wie folgt funktioniert:

- Master - Wartet in Endlosschleife auf requests und erzeugt dynamisch Threads zu deren Verarbeitung
- Worker - Verarbeitet Task durch Abarbeitung des vom Master spezifizierten Code(s)
Prinzip: Abhängigkeiten innerhalb der Worker minimieren
Beispiel
int main(int argc, char **argv) {
for (;;) {
get(&request); // blocking
switch (request) {
case X: pthread_create(... taskX); break;
case Y: pthread_create(... taskY); break;
}
}
}
void *taskX(void *data) {
// ...
}