2013-11-25 2 views
1

내 프로그램에서 실행하는 동안 약간 다른 결과가 나타납니다. FFTW_ESTIMATE 플래그로 계획된 멀티 스레드 FFTW를 사용합니다. 멀티 스레드 FFTW가 결정적입니까?다중 스레드 FFTW가 결정적입니까

  1. 고정 된 수의 스레드의 경우?
  2. 다른 실행에서 사용되는 스레드의 수가 다른가요?

플래그가 FFTW_ESTIMATE이면 실행간에 동일한 알고리즘이 사용되지만 멀티 스레드의 경우 결정적이라고 명시하지는 않습니다.

답변

1

FFTW 문서 :

http://www.fftw.org/fftw3_doc/Thread-safety.html#Thread-safety

재진입 만 fftw_execute 것을 규정하고있다. 따라서 사용법에 대한 추가 정보 없이는 말하기가 어렵습니다. 또한 :

"--enable-debug 또는 --enable-debug-malloc 플래그 (Unix에서의 설치 참조)로 FFTW를 구성한 경우 fftw_execute는 스레드로부터 안전하지 않습니다. FFTW를 개발하고 디버깅하기위한 것이지만 --enable-debug를 사용해야하는 경우 fftw_execute에 대해 --disable-debug-malloc을 스레드 안전으로 전달해야합니다. "

+0

내 프로그램 자체는 멀티 스레드가 아닙니다. 다중 스레드 FFTW (계획을 작성하기 전에'fftwf_plan_with_nthreads' 함수를 호출하여)를 사용하고 있습니다. – user2052436

+0

일반 계획 vs 계획의 결과를 스레드 수를 1로 설정하는 nthreads와 비교해 보았습니까? – Sebastien

+0

네, 같은 대답을 얻고 있습니다. 내 코드에서 버그를 발견했습니다. 이제 나는 항상 같은 결과를 얻고 있습니다. 아직도 다중 스레드 FFTW가 결정적이라는 것을 확인하고 싶습니다. – user2052436

관련 문제