不好意思,看不懂,能解释一下吗?greco 写了:用Elang写
[问题]如何设计多线程程序,能达到节省运行时间的目的?
- tnger
- 帖子: 69
- 注册时间: 2007-10-06 0:07
- 猛将兄
- 帖子: 2052
- 注册时间: 2005-10-19 17:33
- explilo
- 帖子: 40
- 注册时间: 2008-06-23 7:48
-
- 帖子: 243
- 注册时间: 2005-09-28 9:03
如果运算时没有涉及IO响应的话,那么一般多线程是无法提高运算速度的,必须设置线程的affinity,将2个线程指派到2个CPU核心上,让2个CPU核心同时工作才能加快速度。
参见:http://www.sudu.cn/info/html/edu/linux/ ... 91111.html
另外,也可以考虑使用SSE来优化算法。
参见:http://www.sudu.cn/info/html/edu/linux/ ... 91111.html
另外,也可以考虑使用SSE来优化算法。
- tnger
- 帖子: 69
- 注册时间: 2007-10-06 0:07
感谢各位的热心关注,对于楼上几位仁兄提出的:erlang(爱尔兰),mpi,sse,我都一一作了一些了解。erlang是用于分布式的,高并发进程环境中;mpi则是并行编程的一个标准,有很多相关的版本;sse是Intel为视频和浮点运算等复杂运算而开发的优化扩展指令集。
(以上说法如有谬误,请各位谅解,我对此也只是粗浅的了解)
总的说来,这几种方法与我的要求都不太适应。我的目的只有一个:减少程序的运行时间。如果使用前两种方法,必须要硬件的支持,并且线程创建与同步所花的时间会很多,得不尝失;最后一种方法则显得太过专业了,我不知道要花多长时间搞懂,还不能保证最后的效果一定好。
所以,我现在的重点放在如何减少循环次数,循环层数及其他方法。
谢谢!
(以上说法如有谬误,请各位谅解,我对此也只是粗浅的了解)
总的说来,这几种方法与我的要求都不太适应。我的目的只有一个:减少程序的运行时间。如果使用前两种方法,必须要硬件的支持,并且线程创建与同步所花的时间会很多,得不尝失;最后一种方法则显得太过专业了,我不知道要花多长时间搞懂,还不能保证最后的效果一定好。
所以,我现在的重点放在如何减少循环次数,循环层数及其他方法。
谢谢!
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
- tnger
- 帖子: 69
- 注册时间: 2007-10-06 0:07
-
- 帖子: 8
- 注册时间: 2007-07-02 21:28
Re: [问题]如何设计多线程程序,能达到节省运行时间的目的?
程序如果是异步的,多线程应该可以tnger 写了:我有一个比较耗时间的数值运算程序,单线程需要40s左右的时间(在我的机器上),如果采用多线程设计,会不会节省时间?
我尝试了一下,在网上拷贝了一个简单的双线程程序,发现程序运行的时间不是少了,而是多了,大概要85s。所以我想知道采用多线程是否会节省时间,应该如何设计?请各位大虾不吝赐教,谢谢!
ps:个人认为,40s的程序是否能更节省时间,不应考虑是否多线程,考虑一下优化算法吧
- jiushibuhuan
- 帖子: 343
- 注册时间: 2007-10-23 20:04
-
- 帖子: 2376
- 注册时间: 2006-09-21 14:28
-
- 帖子: 2376
- 注册时间: 2006-09-21 14:28
- tnger
- 帖子: 69
- 注册时间: 2007-10-06 0:07
-
- 帖子: 2376
- 注册时间: 2006-09-21 14:28