淘客熙熙

主题:【求助】:请教信息技术方面的大牛有关多线程的问题 -- newtime

共:💬51 🌺45 新:
全看分页树展 · 主题 跟帖
家园 具体问题具体分析吧

从圆周率计算来说,肯定是典型的运算密集型的应用。

而且如果你确认两条线程分别独立的运算圆周率,那么应该还是符合我所说的:

一个运算密集型任务,并且该任务可以切分为多个互不干扰的子任务

如果这个时候在多核或多CPU架构下还是有较大的损耗,那么可以考虑检查一下是否是因为操作系统的调度原因而使得同一条线程被不断的调度到多个不同的CPU核心上。操作系统应该会提供某些方法,使某条线程或者进程的运算任务只被在某个CPU核心上调度,这样可以大大减少不必要的上下文切换的开销。至少主流的操作系统如unix/linux/windows,应该都有这个功能的。

如果要寻找相关的资料,我觉得你可以关注一下并行运算方面的内容。虽然我没有用过Fortran,但是作为据说是非常专业的数学和科学运算的编程语言,Fortran应该会提供并行运算相关的解决方案或者基本模型的。我觉得一来你可以参考他们的方案或者依循他们的模型来改造你的程序,二来也可以学习他们的技巧和技术,应用到你的程序中。毕竟在这些领域,还是有不少巨人可以提供宽厚高大的肩膀让我们站上去的。

呵呵。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河