系统为 Windows 11
任务为对一组数据做分段 FFT ,因为每段 FFT 相互无关,所以将整段数据分为 n_jobs 块后每块并行计算,试图加速(具体代码不能公开,正在整理一份能复现的代码)。但是发现了奇怪的情况,保持其他参数不变,使用 parallel = Parallel(n_jobs=int(n_jobs)) ,当 n_jobs 大于 4 后,总体用时不会下降。
深入进程测试后发现每个进程内部的 for 循环内的代码拖慢了速度,代码如下(正常来说怎么测试每行代码的性能呢……望大佬指路!):
tCost = []
for i in batchTask:
tCost.append([time.time()])
startTime = sampleDot[0] + i * step
endTime = startTime + step
splitSampleDot = sampleDot[
np.where((sampleDot >= startTime) & (sampleDot
请问为什么会出现这种情况呢?有哪些办法能进一步提升性能呢?