虚拟处理器和高级networkingLinux和Windows

在我启动我的问题之前,大家好!

如果你不想阅读跳过这个问题

承担:

  1. 我有大量访问Linux(Ubuntu)和Windows(XP和以上,除Windows Vista)。
  2. 我对Assembler非常熟悉,而且我对C ++有很好的把握。
  3. 我熟悉Windows(专家)和Linux(中间)
  4. 我熟悉司机(窗口)
  5. 我对networking很好,并且build立了一些我自己的networking
  6. 我愿意为了达到这个目标而努力(不是花钱,而是花时间/精力)
  7. 我至less知道一些实际问题(记忆位置)

在这几年里,我收集了大量不再使用的电脑(50)。 最近我开始思考这是多么浪费,我想要回收这些电脑/再次使用它们。 所以这个想法诞生了:我想将它们全部捆绑在一个networking上,并将它们的组合CPU速度转发给我的主机。 我已经安装了某种集群计算机,目前只有5台电脑大。 而networking共享它的硬盘/显示器/键盘/鼠标,我想添加处理器到列表。

题:

  1. 我可以 – 如果我可以如何继续,结合其他计算机的所有处理器散布在我的networking,并使其显示在我的Windows服务器2008r2主机作为处理器(s)? IA。 我可以模拟处理器吗?

  2. 我怎样才能将计算机的电源/结果从一台计算机上尽快传送到主机?

  3. 我如何通过这个networking共享我所有的物理内存(ram,范围从ddr 1到3)

提前致谢 ;-)

PS:

我意识到这几乎是不可能实现的,假设6。

编辑:

我知道分布式程序,我已经阅读并尝试过。 但是我发现它们不适合我的需求,因为我想运行本机PE可执行文件。 不是自定义的二进制文件

但是,感谢大家的build议:D

如果你想在Windows 2008中模拟一组虚拟CPU,并且实际上获得比网络延迟时间更多的功耗,那么我认为在你的整个生命周期中你都不会那么做。 也许你可以,在这种情况下,我会向我认识的每一位雇主推荐你。

你可以做的是选择一个统一的Linux分布,并在所有系统上运行它(作为虚拟机的Windows机箱或本机)。 在每个安装一个MPI的实现,并让它们相互连接。 现在你可以像在超级计算机上那样编写分布式应用程序。 我会建议节点之间的10Gb以太网连接。 您将不得不编写特殊的MPI应用程序才能利用这些功能。

我建议坚持分布式编程环境,如OpenMP或Beowulf,以便您的应用程序分布,而不是操作系统本身。

我知道的一个项目是在一个经过修改的Linux内核中实现的。 它被称为Mosix; 现在有几个变种。

这是我所知道的唯一一个真正的单系统图像集群,并声称工作。

但是,我非常怀疑你的项目能够做什么有用的事情; 在实践中,它可能会比5年前的电脑更好地使用(电)电源来插入iPhone。

尽管在网络上移动数据会产生一些成本。 一些类型的计算问题只需要很少的数据就可以移动,但是很多处理 – 例如破解加密密钥和3d渲染。 然而,许多其他问题领域需要大量的数据在很多地方,实际上似乎需要使用非常昂贵的网络。 大多数科学集群似乎都使用高速网络(>千兆以太网)

便宜的CPU昂贵的网络似乎是一个虚假的经济,如果相同的结果可以更容易得到更昂贵的CPU没有任何网络。 现在,你可以在1u机架式服务器上获得像16核这样的东西,为你提供16个CPU,互连速度非常快,不需要额外的成本。

你应该看看SSI(单一系统图像)软件。 这个运行在几台计算机(节点)之上的软件可以给你一个运行在有大量CPU的计算机上的单一操作系统的图片。 但不幸的是,大多数SSI系统是用于在节点之间分发进程(其中一些在程序启动时进行这样的分发,另一个可以将整个运行进程迁移到不同的节点)。 我不知道SSI系统,能够分配线程。

另一个变种可以找到一个虚拟化软件,它本身能够在MPI / TCP /任何快速网络上运行。 我也不知道有这样的系统。 例如,qemu邮件列表中有一个线程: http : //www.mail-archive.com/qemu-devel@nongnu.org/msg18338.html

相当好的文字也是: http : //perilsofparallel.blogspot.com/2009/01/multi-multicore-single-system-image_9797.html

我也应该推荐一个Kerrighed( http://www.kerrighed.org/wiki/index.php/Main_Page

它是一个可以模拟共享内存的SSI(Single System Image)变种,

Main targeted features are: * Support for cluster wide shared memory 

这是通过USE_REMOTE_MEMORY Kerrighed capability打开的