Networks beat pipelines: the design of FG 2.0

  • Authors:
  • Peter C. Johnson;Thomas H. Cormen

  • Affiliations:
  • Dartmouth College, Hanover, NH;Dartmouth College, Hanover, NH

  • Venue:
  • Proceedings of the 2012 International Workshop on Programming Models and Applications for Multicores and Manycores
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

The FG programming framework allows users to develop external-memory programs that mitigate high latency operations, such as disk accesses and interprocessor communication. Previous research culminated in FG 1.4, which structures programs as software pipelines that operate on large buffers, where each stage of the pipeline runs in its own thread. FG was originally developed with only linear pipeline structures in mind, but later versions, up to 1.4, expanded the original concept to include various nonlinear structures. When we reviewed the codebase for FG 1.4, we found that as FG picked up more features, the code became increasingly convoluted. Consequently, we decided to fully redesign and reimplement FG from a clean slate, producing FG 2.0. The underlying paradigm changes from a pipeline to a network of stages. With the network paradigm, several constructs that required special support in FG 1.4 come for free. Early experiences with FG 2.0 indicate that programs that use it are significantly smaller than they were with FG 1.4 and that they run faster.