/DINC

DINC is a framework that efficiently plans and implements P4-based service partitions on multiple network devices.

Primary LanguageP4Apache License 2.0Apache-2.0

Distributed In-Network Computing (DINC)

DINC Logo License GitHub release

Introducing DINC

DINC is a framework to provide automating distributed in-network computing services. This repo is the artifact for the paper "DINC: Toward Distributed In-Network Computing" PDF in ACM CoNEXT '23.

Setting up the DINC environment

DINC requires python 3.10 or above, with the packages listed in requirements_Python3_10_8.txt. To install the aforementioned packages, start your working environment and execute the following command:

pip3 install -r ./src/configs/requirements_Python3_10_8.txt

Getting started with DINC

First, prepare a working environment as described in the previous section Link.

Run the following command to start DINC in manual configuration mode -m with target in-network computing program directory after -d. Use help model with -h command to see additional options.

python3 DINC.py -m -d <directory>

đź’ˇ A detailed getting started tutorial Link: "Please click me!" (Strongly Recommended).

DINC Supports

DINC supports a wide range of modules mainly including modular Topologies, Architectures, and Usecases:

  • DINC Supported Topologies wiki
  • DINC Supported Architectures wiki
  • DINC Supported Usecases wiki

DINC also supports modular Slicers, Solvers, Code Generators, Test Controllers, etc.

How to manually mark P4 grogram for DINC

The following figure gives a general outlook of how P4 programs are sliced in the current P4 slicer module (Manually).

The DINC Framework

DINC figure

DINC's Availability

If you're interested in this work and find anything unclear, please feel free to contact me at changgang.zheng@eng.ox.ac.uk. We are welcoming collaborations. It can be exciting to collaborate, if you think in-network machine learning is helpful to your research or use case. If there are any potential interests, please feel free to contact PI noa.zilberman@eng.ox.ac.uk and project lead changgang.zheng@eng.ox.ac.uk.

License

The files are licensed under Apache License: LICENSE. The text of the license can also be found in the LICENSE file.

Citation

@article{zheng2023dinc,
  title={DINC: Toward Distributed In-Network Computing},
  author={Zheng, Changgang and Tang, Haoyue and Zang, Mingyuan and Hong, Xinpeng and Feng, Aosong and Tassiulas, Leandros and Zilberman, Noa},
  journal={Proceedings of the ACM on Networking},
  volume={1},
  number={CoNEXT3},
  pages={1--25},
  year={2023},
  publisher={ACM New York, NY, USA}
}

We are also excited to introduce several DINC related papers (Planter, Planter poster, IIsy, Linnet, and P4Pir):

@article{zheng2022automating,
  title={Automating In-Network Machine Learning},
  author={Zheng, Changgang and Zang, Mingyuan and Hong, Xinpeng and Bensoussane, Riyad and Vargaftik, Shay and Ben-Itzhak, Yaniv and Zilberman, Noa},
  journal={arXiv preprint arXiv:2205.08824},
  year={2022}
}

@incollection{zheng2021planter,
  title={Planter: seeding trees within switches},
  author={Zheng, Changgang and Zilberman, Noa},
  booktitle={Proceedings of the SIGCOMM'21 Poster and Demo Sessions},
  pages={12--14},
  year={2021}
}

@article{zheng2022iisy,
  title={IIsy: Practical In-Network Classification},
  author={Zheng, Changgang and Xiong, Zhaoqi and Bui, Thanh T and Kaupmees, Siim and Bensoussane, Riyad and Bernabeu, Antoine and Vargaftik, Shay and Ben-Itzhak, Yaniv and Zilberman, Noa},
  journal={arXiv preprint arXiv:2205.08243},
  year={2022}
}

@incollection{hong2022linnet,
  title={Linnet: Limit Order Books Within Switches},
  author={Hong, Xinpeng and Zheng, Changgang and Zohren, Stefan and Zilberman, Noa},
  booktitle={Proceedings of the SIGCOMM'22 Poster and Demo Sessions},
  year={2022}
}

@incollection{zang2022p4pir,
  title={P4Pir: In-Network Analysis for Smart IoT Gateways},
  author={Zang, Mingyuan and Zheng, Changgang and Stoyanov, Radostin and Dittmann, Lars and Zilberman, Noa},
  booktitle={Proceedings of the SIGCOMM'22 Poster and Demo Sessions},
  year={2022}
}

Planter builds upon IIsy and is further inspired by SwitchTree, Qin, and Clustreams.

Acknowledgments

This paper complies with all applicable ethical standards of the authors’ home institution. This work was partly funded by VMware, EU Horizon SMARTEDGE (101092908, UKRI 10056403), ARO W911NF-23-1-0088 and W911NF-23-1-0064. We acknowledge support from Intel. For the purpose of Open Access, the author has applied a CC-BY public copyright license to any Author Accepted Manuscript (AAM) version arising from this submission.