Open streetycat opened 10 months ago
I am delighted to read your design and suggestions. They are insightful and show some understanding of the system. I am also very excited about the potential that your participation could bring to OpenDAN.
You can read https://github.com/fiatrete/OpenDAN-Personal-AI-OS/blob/MVP/doc/mvp/compute_task.drawio for more detail of compute kernel. I am writeing a artice about workflow now. The purpose of designing compute_kernel subsystem is to enable our users to use their computational resources more efficiently. These computational resources can come from devices they own (such as their workstations and gaming laptops), as well as from cloud computing and decentralized computing networks.
I have compiled a rough definition and design of the computing resource module, and I hope you can join the discussion to reach a consensus on this module.
Compute Node
A computing resource node in the system that should have the following functions:
Install and start several services that support computing
Accept calculation tasks submitted by users and execute them
Schedule these tasks (various tasks may be executed in parallel or queued)
Some preset standard task types, while others are customized by developers
Some computing resources are public, and some may require authorization
Compute Task Manager
The singleton component responsible for managing computing resources in the system should have the following functions:
Accept registration of 'Compute Node'
Accept calculation tasks submitted by users and select appropriate nodes to execute
Maintain load balancing among various computing nodes
Flowchart
Start up
Execute task
I think we can first design a universal task scheduling framework, and then support various execution environments(docker eg.) and preset different task types within this framework.