0

我正在考虑为 Linux 内核编写一个虚拟 CPU,它基本上决定何时在另一台机器上执行线程或进程是个好主意。非常欢迎任何反馈或想法。

整个工作流程是这样的:

  • 启发式地测试线程/进程。如果进程/线程非常轻量级(没有 cpu 繁重的任务),则使用物理本地 CPU + 缓存结果以加快下一次对同一进程/线程的查找。
  • 如果进程/线程是重量级的(cpu 密集型),则将其发送到另一台设置在附近网络某处的 PC 中执行。
  • 根据网络延迟,调整决策。例如,如果网络太慢,那么更多的任务将在本地执行。

换句话说,从高级的角度来看,我们将在内核中拥有一个虚拟 CPU,即所有应用程序都在其上运行的单个 CPU。在内核中,虚拟 CPU 决定在哪里执行给定的进程/线程以最大化系统吞吐量。

当然,如果应用程序/进程/线程是为此设计的(例如使用 MPI),则可以简化此类任务,但我的目标是为通用应用程序创建一些东西.. 例如 Apache HTTP.. 例如,Apache HTTPD 执行一个进程每个请求。如果每个进程都在一个理想的 CPU 中执行,让它在本地或远程,以最大化吞吐量呢?还有许多其他应用程序使用线程/进程分支,并且取决于虚拟 CPU 可能决定的野兽的性质。

任何提示?建议?问题?必须阅读的文件?抱怨这行不通?

我最棒的问候

4

0 回答 0