Domanda

Sto usando la versione filettata FFTW (una libreria FFT) per cercare di accelerare un po 'di codice su una macchina a doppia CPU. Ecco l'output del tempo w / 1 solo filo:

131.838u 1.979s 2:13.91 99.9%

Qui è con 2 capi:

166.261u 30.392s 1:52.67 174.5%

I tempi utente e le percentuali di carico CPU sembrano indicare che è threading abbastanza efficace, ma il tempo wallclock (che è quello che interessa davvero) me (credo) che sta prendendo circa 28 secondi in più per affrontare racconta con i fili. E 'questo un modo accurato per descrivere la situazione? Se è così, è abbastanza normale, o devo probabilmente hanno qualcosa configurato in modo errato? Grazie per qualsiasi luce.

È stato utile?

Soluzione

Ho usato il FFTW una discreta quantità, e hanno scoperto che, a meno che non si sta andando a più di due processori, è quasi sempre una soluzione più pulita di utilizzare solo la versione a singolo thread. E 'più veloce, perché c'è meno la comunicazione inter-thread, o per lo meno, che è stata la mia esperienza.

Un paio di cose di check-out:

  1. Stai configurando la vostra saggezza correttamente, ed il suo utilizzo? Saggezza, una volta creato, renderà la corsa trasformare molto più rapidamente. Se non lo si utilizza, si dovrebbe essere.
  2. Stai chiamando la libreria da un thread, oppure da due? Questo è stato sempre il mio problema, stava chiudendo più chiamate filo nella libreria di arrivare a essere doloroso.
  3. Quanto sono grandi i tuoi trasforma? Si sta tentando con una piccola in un primo momento, solo per vedere come va, poi scaling up?
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top