这几天公司新配了个新机子双核的,自己写了个与矩阵计算有关的C++程序,任务管理器上发现它的exe的cpu占用率最大也就是50%,说明他只占了50%的CPU,按我的经验如果它在单核的上跑,一定会占差不多100%的(大规模的矩阵计算),这上我明白了什么是双核,就是两个同样的CPU并在一起的。最近看新闻,听说apple出了8核CPU的pc了,我以前的一个老板说过,并行是未来......,现在也他对技术的发展把握的准。
硬件我也不太懂,也只能从我做数值算法的角度看待这个问题,就说我写的那个程序是单进程的.....,如果是多进程的,就是把那核也用上,速度不是可以快将近一倍,....... 矩阵计算本身就本性的并行性。最近也看了一些关于MPI,openMP的书,对并行有了点感觉。 要是有好的IDE,能把普通的程序,智能的分配为多线程的多好,似乎不可能......... 也不知道什么时候会有这样的IDE和编译器。 算法的结构可能会都望并行转化,毕竟这样会使得算法实现起来快很多.......
多核cpu是趋势, 并行算法就应该是趋势.