我有一些用C#编写的类库,设计时没有考虑到并发、多线程、锁等因素... 代码结构非常良好,易于扩展,但是通过多线程可以获得很大的性能提升:这是一组科学/工程类库,需要在非常短的时间内执行数十亿次计算(现在它们没有利用可用的核心)。
我想将所有这些代码转换为一组多线程库,但是我不知道从哪里开始,也没有任何先前的经验。
我可以使用任何可用的帮助和任何建议/建议。
我想将所有这些代码转换为一组多线程库,但是我不知道从哪里开始,也没有任何先前的经验。
我可以使用任何可用的帮助和任何建议/建议。
我强烈建议您深入了解.NET 4和任务并行库(也可通过Rx框架在.NET 3.5sp1中使用)。
它使许多并发问题变得更加简单,特别是数据并行化变得极为简单。由于大多数科学/工程库处理的是大型数据集,因此数据并行化通常是最佳选择...
关于数据并行性以及分解和解决问题的背景的参考资料,请查看我在.NET 4中的并行处理系列博客文章。