# Offloading distributed applications onto smartNICs using iPipe

![](/files/-MXCdhr_LP4TzKO6t9PQ)

![](/files/-MXCdkbfb-8gg0UZ-3DQ)

* Accelerate general purpose distributed applications?

![](/files/-MXCeFXh7ZBRRbiVCIkk)

* DMA: writing to and from the host memory&#x20;
* Host communication&#x20;
  * Use DMA&#x20;

![](/files/-MXCeeJFBrVNMznwXZQn)

* Multi-core processors, low power&#x20;
  * Extent of compute is limited (to offload)&#x20;
* Network applications&#x20;
  * RDMA, DPDK&#x20;

![](/files/-MXCf33b0cGC6C34XnTx)

![](/files/-MXCf5dxY0A_PNVAZhyd)

* Packet arrive at the TX/RX ports&#x20;
* Traffic manager&#x20;
  * Abstractions between the ports and actual ports&#x20;
* NIC cores handle all traffic on both the send and receive paths&#x20;
  * Might not have computation to do&#x20;
* Tight integration of computing and communication&#x20;

![](/files/-MXCg76C5OzA9-clW0gM)

* Computation requires additional overhead&#x20;

![](/files/-MXCgBfpgX2aA3viOYEr)

* Shows how many cores are needed to fully utilize the available bandwidth&#x20;
  * Max bandwidth = 10 Gbps&#x20;
* 256B: not sufficient to process that many buckets&#x20;
* Larger: saturated quickly&#x20;

Take-away

* Quantifies the default forwarding tax of smartNics&#x20;
* Dependent on packet size workload&#x20;

Workload?&#x20;

* No processing

![](/files/-MXCirpDtHvh9Y87zT45)

![](/files/-MXCiv6_ymj8qs1rBAhu)

![](/files/-MXCj8IqP_X6bCTjaWS8)

![](/files/-MXCjHVAuOZd6DYwKXTw)

![](/files/-MXCjZLicuazkiVZ5I6Z)

![](/files/-MXCjnQNeGwpAcREmjbk)

![](/files/-MXCk4x6sBpM1vOQaxvP)

![](/files/-MXClt5osInP3bDubnZ4)

![](/files/-MXCp_XeFldnpw55qIHy)

* Actor: logic - workload has a lot of variants. That type of actor is going to move to DRR. But actor with more uniform distribution will be on FCFS cores.&#x20;
  * Tail latency? How they measure that?&#x20;
    * Window. So might not absolute, just relative.&#x20;

![](/files/-MXCq1TFO_kJkLFoX_o0)

![](/files/-MXCn3GYJ8nu1tkwr-1h)

![](/files/-MXCqC71ei-WIVfhG5KA)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://sliu583.gitbook.io/blog/specific-work/wisr-group/group/offloading-distributed-applications-onto-smartnics-using-ipipe.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
