Newbie Discussione Domanda (FFTW)
-
11-09-2019 - |
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.
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:
- 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.
- 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.
- Quanto sono grandi i tuoi trasforma? Si sta tentando con una piccola in un primo momento, solo per vedere come va, poi scaling up?