2012-10-02 48 views
0

我已经实现了一个可以调用DGEMM的工作程序(FORTRAN,编译器:Intel ifort 11.x)。我读过,有一个快速的方法与编译并行这样的:螺纹DGEMM上的错误

ifort -mkl=parallel -O3 myprog.f -o myprog 

我有一个四核处理器,所以我运行的程序(通过bash)的:

export OMP_NUM_THREADS=4 
./myprog 

我假设是DGEMM会自动召唤4个线程,导致更快的矩阵乘法。这似乎并没有发生。我错过了什么吗?任何帮助,将不胜感激。

+0

你是用这个命令编译所有的源代码吗?尝试 - 并行。 –

+0

用'DGEMM'乘上的矩阵有多大? MKL线程也由'MKL_NUM_THREADS'变量控制。检查它是否设置为“1”。顺便说一句,'DGEMM'是MKL中内置并行机制的典型示例 - 请参见[here](http://software.intel.com/zh-cn/articles/parallelism-in-the-intel-math -kernel库)。 –

+0

我认为矩阵太小了。感谢您的帮助,伙计们。 – Salmonstrikes

回答

0

我认为-mkl = parallel是intel编译器的默认选择。因此,您不必特别设置该标志。试试-mkl = sequential,看看计算是否放缓。