从我读过的.net 4.0预览到现在已经有很多关于下一个.net版本如何处理和使用带有多个内核的cpus的讨论.我们将有像plinq这样的附加功能,可以帮助我们使用多个内核.我的问题是,当我想要的是让我的应用程序运行得更快时,为什么我必须在处理多个核心时烦恼.为什么不能有一种虚拟cpu层将所有核心暴露为我的应用程序的1核心?
编辑:我想重新解释我的问题,以避免误解,是否可以制作一个软件,将虚拟线程暴露给我的应用程序,速度要快10倍,因为它使用了10个内核.我不希望让不同的线程在并行中执行操作,我只希望我的一个线程运行得更快.我想今天这不是一个大问题,但很快我们将有80个核心处理器可供使用,然后我会感觉有点缺点只使用其中的一个.
因为没有人的帮助就无法实现并行化.
有一定量的可以完成-并且已经是一个核心内完成.微观并行比"分析整个程序并使其并行运行"要容易得多,原因很明显.一般而言,编写并行程序时必须做出的许多困难决定取决于您希望程序执行的操作,以及它在各种条件下的行为方式.
随着时间的推移,可能会有更多自动并行化,但我很高兴目前手动操作变得更加容易.
编辑:在您的问题中看过编辑后,没有办法让它变得更快.对此有一个非常简单的物理比喻:怀孕需要9个月.如果您有9名孕妇,9个月后最终可能会有9名婴儿,但是您不能让9名女性在1个月内生育1名婴儿.它只是不起作用.并非所有问题都是可并行的.(弗雷德布鲁克斯:"无论分配多少女性,孩子的生活需要9个月."(神话人月,第17页))