Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vigeng/qoc
Towards quality of in-network computation.
https://github.com/vigeng/qoc
Last synced: about 1 month ago
JSON representation
Towards quality of in-network computation.
- Host: GitHub
- URL: https://github.com/vigeng/qoc
- Owner: ViGeng
- Created: 2023-04-27T17:03:49.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-09T12:20:07.000Z (5 months ago)
- Last Synced: 2024-08-27T16:17:24.369Z (5 months ago)
- Language: Python
- Homepage:
- Size: 130 KB
- Stars: 4
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Quality of Computation (QoC)
We identify that compuation quality (such as latency, throughput, and energy consumption) can not be guaranteed for emerging applications including Extended Reality (XR), Auto-driving (AD), etc. A mechanism should be designed to address this problem. This repo is a work-in-progress (WIP) proof-of-concept (PoC) implementation of the extension-base forwarder over ICN.
> This interest project was evolved from course project for [Advanced Networked Systems](todo) lectured by Prof. [Dirk Kutscher](https://dirk-kutscher.info). This project is inspired by a previous project [Named Tree]. The Named Tree reduces recursive computation by multiple fetching, like iterate over a tree. This project aims to extend the Named Tree to support computation offloading in Information-Centric Networking (ICN).
> This project is written by Python for fast prototype. Most importantly, the current code focuses on the expresion definition and the decentralized scheduling algorithm. The code is not optimized for performance and not practical for real-world NFN networks. It's easy to be integrated into the NFN project though, if it performs well.๐This project has the following goals:
* โณ Quality of Computation (QoC): Guarantee the computation completion time by QoC aware meta-data.
* ๐ชข Decentralized Scheduling by Routing: Leverage powerful ICN routing to implement decentralization scheduling.
* ๐ก Extension-based Forwarder: Extend the forwarder to support computation offloading.## Update and RoadMap
At current stage, this project focuses on implementing a minimal proof-of-concept (PoC) program to demonstrate the feasibility of the design. So there are several hypotheses and assumptions:
1. The network is reliable and stable.
2. The data security is not considered.
3. All nodes know the routing information.
4. No reward mechanism is considered.### Decentralized Scheduling
- [ ] ๐งฎ Redesign the routing algorithm to support decentralized scheduling.
- [ ] ๐งช A simulation to evaluate the decentralized scheduling algorithm.
### Quality of Computation (QoC)
- [ ] ๐ Refactor the Priority Queue
- [ ] ๐ฆ Add a scheduler to manage the computation task.### 2024-8-9
- [x] resume the project (it's been a long time since the last update ๐)
### meta-data
- [x] DDL time as the QoC metric
### 2023-08-16
- [x] Update README introduction.
### 2023-05-18
- [x] update forwarder architecture design: a diagram
- [x] remove redundant test code
- [x] add test cases```
C1โโโโโโโโโโโF1-cs-nfโโโโโโโโโโโโF3-cs-nfโโโโโโโโโโโโF5-cs
โ โ โ
โ โ โ
โ โ โ
โ โ โ
โ โ โ
โ โ โ
F2-csโโโโโโโโโโโโโโโF4-cs-nfโโโโโโโโโโโโโ```
### 2023-05-17
- [x] Content Store implemented as an extension and its test case
- [x] Interest datastructure: (name) -> (name, data_name, func_name)
- [x] nfn-extension: computing NFN interest and its test case
- [x] Simulator abstraction
- [x] Test loading from yaml config file### 2023-05-16
- [x] extension mechanism for forwarder
### 2023-05-15
- [x] Routing center, mocked routing and test case
- [x] Node generator and initializer (generate a network and distribute tasks)```
C2
โ
โ
โ
C1โโโโF4โโโโโF1โโโโโโF2โโโโโP1
โ
โ
F3
โ
โ
โ
P2
```### 2023-05-14
- [x] add Class Provider
- [x] add more test cases
- consumer-to-forwarder
- consumer-to-forwarder-to-provider
- line-shape: 2 forwarderstest cases:
```
1.
Interest
โโโโโโโโโโโโฌ โโโโโโโโโโโบโโโโโโโโโโโโโ
โ Consumer โ โ Forwarder โ
โโโโโโโโโโโโโโโโโโโโโโโ โดโโโโโโโโโโโโ
Data2.
Interest Interest
โโโโโโโโโโโโฌ โโโโโโโโโโโบโโโโโโโโโโโโโฌ โโโโโโบโโโโโโโโโโโโ
โ Consumer1โ โ Forwarder1โ โ Provider1โ
โโโโโโโโโโโโโโโโโโโโโโโ โดโโโโโโโโโโโโโโโโโโ โดโโโโโโโโโโโ
Data Data
3.
Interest Interest Interest
โโโโโโโโโโโโ โโโโโโโโโโบ โโโโโโโโโโโโ โโโโโโโโโโบ โโโโโโโโโโโโโ โโโโโโโโโโบ โโโโโโโโโโโโ
โ Consumer โ โ Forarder โ โ Forwarder โ โ Provider โ
โโโโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโโโ
Data Data Data
```### 2023-05-12
- [x] add Forwarder class
- [x] add Consumer class
- [x] add consumer-to-forwarder test case: test_forwarder.py### 2023/4/28
- [x] a python class to abstract `Named Data (ND)`
- [x] simple recursive execution
- [x] implement the tree as a multiway tree for performance, because the **depth determines the
performance of the whole system**
- [x] init project
- [x] write simple shell for concept demo## Design
This repo is mainly an implementation of a forwarder,
the architecture of this forwarder please refer to [this file](https://github.com/ViGeng/named-tree/blob/forwarder/forwarder-design.svg)NamedData class consists of two parts: `FUNC` and `DATA`.
FUNC is a function, and DATA is list.![img.png](assets/named-data-class-structure.png)