Coder Social home page Coder Social logo

qoc's Introduction

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 lectured by Prof. Dirk Kutscher. 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

  • resume the project (it's been a long time since the last update ๐Ÿ˜‚)

meta-data

  • DDL time as the QoC metric

2023-08-16

  • Update README introduction.

2023-05-18

  • update forwarder architecture design: a diagram
  • remove redundant test code
  • add test cases
C1โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€F1-cs-nfโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€F3-cs-nfโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€F5-cs
             โ”‚                   โ”‚                   โ”‚
             โ”‚                   โ”‚                   โ”‚
             โ”‚                   โ”‚                   โ”‚
             โ”‚                   โ”‚                   โ”‚
             โ”‚                   โ”‚                   โ”‚
             โ”‚                   โ”‚                   โ”‚
             F2-csโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€F4-cs-nfโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

2023-05-17

  • Content Store implemented as an extension and its test case
  • Interest datastructure: (name) -> (name, data_name, func_name)
  • nfn-extension: computing NFN interest and its test case
  • Simulator abstraction
  • Test loading from yaml config file

2023-05-16

  • extension mechanism for forwarder

2023-05-15

  • Routing center, mocked routing and test case
  • Node generator and initializer (generate a network and distribute tasks)
             C2
             โ”‚
             โ”‚
             โ”‚
C1โ”€โ”€โ”€โ”€F4โ”€โ”€โ”€โ”€โ”€F1โ”€โ”€โ”€โ”€โ”€โ”€F2โ”€โ”€โ”€โ”€โ”€P1
             โ”‚
             โ”‚
             F3
             โ”‚
             โ”‚
             โ”‚
             P2

2023-05-14

  • add Class Provider
  • add more test cases
    • consumer-to-forwarder
    • consumer-to-forwarder-to-provider
    • line-shape: 2 forwarders

test cases:

1.
               Interest
     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
     โ”‚ Consumer โ”‚            โ”‚ Forwarder โ”‚
     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                     Data

2.
                 Interest               Interest
    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บโ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌ โ”€โ”€โ”€โ”€โ”€โ–บโ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
    โ”‚ Consumer1โ”‚            โ”‚ Forwarder1โ”‚       โ”‚ Provider1โ”‚
    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ—„โ”€โ”€โ”€โ”€โ”€ โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                    Data                 Data
3.
                  Interest                Interest                 Interest
    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
    โ”‚ Consumer โ”‚            โ”‚ Forarder โ”‚            โ”‚ Forwarder โ”‚            โ”‚ Provider โ”‚
    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                    Data                    Data                     Data

2023-05-12

  • add Forwarder class
  • add Consumer class
  • add consumer-to-forwarder test case: test_forwarder.py

2023/4/28

  • a python class to abstract Named Data (ND)
  • simple recursive execution
  • implement the tree as a multiway tree for performance, because the depth determines the performance of the whole system
  • init project
  • 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

NamedData class consists of two parts: FUNC and DATA. FUNC is a function, and DATA is list.

img.png

qoc's People

Contributors

vigeng avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.