Pregunta

Estoy usando la versión roscada del FFTW (una biblioteca FFT) para tratar de acelerar un poco de código en una máquina de doble CPU. Aquí está la salida de tiempo w / hilo solamente 1:

131.838u 1.979s 2:13.91 99.9%

Aquí es con 2 hilos:

166.261u 30.392s 1:52.67 174.5%

Los tiempos de usuario y los porcentajes de carga de la CPU parecen indicar que está enhebrando bastante eficaz, pero el tiempo wallclock (que es lo que realmente me importa) yo (creo) que está tomando alrededor de 28 segundos adicionales para tratar dice con los hilos. Es que una forma precisa para describir la situación? Si es así, es bastante normal, o tengo probable que haya algo mal configurado? Gracias por cualquier luz.

¿Fue útil?

Solución

He utilizado el FFTW una buena cantidad, y han encontrado que, a menos que vaya a más de dos procesadores, es casi siempre una solución más limpia que sólo tiene que utilizar la versión de un solo subproceso. Es más rápido porque hay menos comunicación entre hilos, o al menos, que ha sido mi experiencia.

Algunas cosas a comprobar hacia fuera:

  1. ¿Está configurando tu sabiduría adecuadamente, y su uso? Sabiduría, una vez creada, hará que su carrera transformar mucho más rápidamente. Si no lo está utilizando, usted debe ser.
  2. ¿Está llamando la biblioteca de un hilo, o de dos? Esa fue siempre mi problema, estaba cerrando varias llamadas hilo en la biblioteca de llegar a ser doloroso.
  3. ¿De qué tamaño son sus transformaciones? ¿Estás tratando con un pequeño al principio, sólo para ver cómo va, a continuación, la ampliación?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top