程序双核利用,MATLAB中BLAS的选择及充分利用双核...

MATLAB中BLAS的选择及充分利用双核CPU的设置(转)(2010-11-03 13:30:01)
程序双核利用,MATLAB中BLAS的选择及充分利用双核...
转载
标签: 教育
MATLAB中BLAS的选择及充分利用双核CPU的设置(2006-09-18 10:26:15)
程序双核利用,MATLAB中BLAS的选择及充分利用双核...
转载
分类: Matlab相关
MATLAB使用Basic Linear Algebra Subprograms (BLAS)来优化它的矢量内积、矩阵矢量乘积、矩阵乘积等运算。在Intel处理器上运行的WINDOWS下的MATLAB可使用的BLAS库有两种:MKL(The Intel Math Kernel Library)和Automatically Tuned Linear Algebra Software(ATLAS)
MKL库中有些函数使用了多线程并行, 用户可用环境变量OMP_NUM_THREADS
控制MKL运行时的线程数。MKL库中除了快速BLAS库外还包括LAPACK(Linear Algebra Package), FFT等。ATLAS有单线程C BLAS库、单线程Fortran BLAS库、多线程C BLAS库、多线程Fortran BLAS库等几种;单线程多线程库的区别在于使用单线程库时, ATLAS函数内部是串行的(相当于MKL中OMP_NUM_THREADS=1), 而使用多线程库时, ATLAS的
部分函数中使用了多线程SMP并行(相当于MKL中OMP_NUM_THREADS=2)。ATLAS的资料可从http://math-atlas.sourceforge.net/处获得。
综合比较,MKL库比ATLAS库性能稍好一点,在多数的运算上两者打成平手,只有在需要ABS基本运算的运算中MKL比ATLAS性能好,这是因为MKL可以使用SSE预读技术来提高速度。
WINDOWS上运行的MATLAB,一直到R14版本(MATLAB7.0)仍然缺省使用ATLAS库,如果电脑是使用Intel处理器的,可以通过配置改用MKL库,在一定程度上优化运算性能。我们只需要在“系统”对话框的“高级”面板中点击环境变量按键,弹出“环境变量”对话框,在“系统变量”中增加一个环境变量BLAS_VERSION,设值为MKL库文件名mkl.dll。这样MATLAB启动时就会使用MKL作为BLAS库,并自动根据你的 CPU情况选择具体的MKL库。当然,你如果对自己的CPU很熟悉,也可不需要MATLAB判断你CPU情况,在MATLAB安装目录\bin \win32\有很多mkl打头的dll文件,选择一个你认为正确的(比如mkl_p4.dll),把文件名设为环境变量BLAS_VERSION的值即可。
对于单处理器电脑,多线程运算是没有什么好处的,可能还会降低性能。但是现在DUAL CORE双核电脑已开始普及,而MATLAB实际上仍然默认使用单线程,不能利用双核的优势;在WINDOWS中可以通过增加一个环境变量 OMP_NUM_THREADS,设值为2,即可使MATLAB使用双线程,利用双核的计算优势。当然,这样也只能部分提高MATLAB的运算速度,因为目前使用的R14版中还有很多是基于单线程的程序,不能利用双核的优势,这只能期望下一版本的MATLAB中加入的并行计算功能来解决了。
Tags:  双核浏览器 双核补丁 双核时代 双核手机 程序双核利用

延伸阅读

最新评论

发表评论