#numpy #scipy #fft #mpi4py
Вопрос:
Я запускаю код, который использует несколько fft и iffts массива numpy, работающих на raspberry pi. Код должен выполняться линейно, но я хочу посмотреть на серию начальных массивов и увидеть результат после нескольких fft / iffts. Я пытаюсь использовать MPI4PY для просмотра серии различных исходных массивов, каждый раз, когда я добавляю n дополнительных ядер, процесс занимает n* больше времени на один цикл, как будто он выполняется линейно, а не параллельно.
Пример кода, где uu-массив numpy, созданный в функции Create_Pulse2
def testfft2(self):
start=time.time()
self.Create_Pulse2()
for t in range(1,100):
temp1f=np.fft.ifft(self.uu)
temp2=np.fft.fft(temp1f)
print('The loop time is' str(time.time()-start))
return (time.time()-start)
на 1 ядре
The loop time is7.22299313545
на 4 ядрах
The loop time is27.4755029678
The loop time is28.1344909668
The loop time is28.0918269157
The loop time is28.6027998924
Я пробовал использовать numpy и scipy для БПФ, но результат тот же. Используют ли numpy и scipy уже более 1 процессора?
Спасибо