Sample P3L program
seq stage1 in (float x[N][M]) out(int y[N][M])
… C code here computing y out of x …
seq stage2 in (int x[N][M]) out(float y[N])
… C code here computing y out of x …
farm farm1 in (float x[N][M]) out(int y[N][M])
pipe main in (float x[N][M]) out(float y[N])
farm1 in(x) out(int z[N][M])