我想将我的程序(SpMVM的解算器,以DIA格式存储的矩阵,用Fortran编写)与MKL进行比较。
我发现MKL例程export MKL_NUM_THREADS=4
并且它在顺序上完美运行(我比MKL更快!)。但后来,我开发了我的程序的另一个版本,这次使用OpenMP。所以我环顾四周寻找一种让export MKL_DOMAIN_NUM_THREADS="MKL_BLAS=4
多线程的方法,但我找不到任何东西。
即使我使用了export OMP_NUM_THREADS=1
,export MKL_DYNAMIC="FALSE"
,export OMP_DYNAMIC="FALSE"
,ddiagemv
和export default function (url, options, timeout = 7000) {
return Promise.race([
fetch(url, options),
new Promise((_, reject) =>
setTimeout(() => reject(new Error('timeout')), timeout)
)
]);
}
,我得到的时间结果也与我一样按顺序执行。
某些MKL例程是否可以是多线程的,而其他例程则不是?如果import fetch from './fetchWithTimeout'
// call as usual or with timeout as 3rd argument
fetch('http://google.com', options, 5000) // throw after max 5 seconds timeout error
.then((result) => {
// handle result
})
.catch((e) => {
// handle errors and timeout error
})
可以是多线程的,我该怎么做?