Dispersed Computing (DC)
Dispersed Computing (DC) refers to the ability to compute anywhere, anytime; even in conditions when network availability, in terms of connectivity or performance, is variable. Meaning even when the network is highly degraded, computation can and should happen. That is the reason DARPA is emphasizing research innovations in networks, resources scheduling, execution and security.
In Dispersed Computing, computing happens in programmable platforms with dispersed computing software, referred to as Network Computation Points (NCP). An NCP can be a Smart Phone, a Car, a laptop, a server …. Any device capable of computing, as long as that device is able to establish the NCP execution environment (through the NCP programmable code in the device). What each NCP device executes is usually a small portion (function, flow, module…) of an application or a part of a network software stack. Further, since an NCP may run in a device owned by any person – not the owner of the application – the NCP execution environment will need to execute in a hardened container to prevent data leakage between the device and the application running in the NCP execution environment.
People may think that Dispersed Computing has similarities with Pervasive Computing (PC) and Ubiquitous Computing (UC). That may be true. The main difference is PC and UC require solid network connectivity, while DC can operate in degraded networks as well.
Why do we think that it is going to be feasible to bring DC to real life deployment? Although a great deal of research is still required, we believe it is going to be feasible to bring DC to real life deployment due to all the advancements we achieved in the last 20+ years including:
- Advances in Data Science, Intelligence (AI/ML/DL) & Algorithms, software architectures….
- Advances in technologies → networking, cloud, edge, CPU/GPU….
Call for Research Innovations:
Below are few areas that we call on the community to research & innovate
- Network → Dynamic scheduling, Communication-aware scheduling, ….
- Optimized Software Layering & Mobility → All is mobile (e.g., portable execution environments)
- Autonomous → Operates on its own (with or w/o a cloud)
- Optimal AI/ML technique for all types of use cases
- Context-Awareness → Best not to ask users to input any data
- Optimized → energy, resources utilization….
- Privacy/Security → Maintain device’s security and dispersed software security
- Heterogeneity → Systems and devices act seamlessly regardless of underlying HW/SW
Any questions or comments, please reach out to Mazin Yousif (email@example.com)