Our programming abstraction extends the BSP model supporting both vertexcentric [16] and edgecentric [23] programming. The API for the programming abstraction is listed in Table 3. In the initialization phase, the users determine which FIFOs they plan to use and what function to call when a packet is received. This receive