Eine Pipeline ist ein Taskparalleles Programmiermodell, bei dem eine große Menge unabhängiger Eingabedaten durch eine Abfolge von stages verarbeitet wird.

  • Dieses Modell eignet sich für Schachtelung einer Compute Farm bzw. Workcrew innerhalb von Stages: Multiplexing
  • Der maximale Durchsatz ist in jedem Fall auf die Dauer der aufwendigsten stage begrenzt

Beispiel

int main(int argc, char **argv) {
	pthread_create(... stage1);
	pthread_create(... stage2); /* ... */
}
 
void *stage1(void *data) {
	for ( ; ; ) { 
		getItem( ); // blocking
		... // process stage 1
		forwardItem( ); // to next stage
	} /* or output */ 
}
 
/* ... */ 
 
void *stageN(void *data) { ... }