From: “Brian J. Soher” bsoher@briansoher.com
Date: Tue, 30 Nov 2010 09:53:43 -0500
Subject: Re: [vespa-mrs] Improved PyGamma speed
Hi Abhishek,
PyGamma is a SWIG wrapper around the GAMMA C++ library. As such, neither
PyGamma nor GAMMA use numpy or scipy as part of the spectral simulations
that are performed.
In Vespa-Simulation, numpy is used to create FIDs from the results of the =
PyGamma Experiments/Simulations that are then displayed in the Visualize =
tab.=A0 It’s all pretty simple stuff for that visualization. The area, ppm =
and phase of each line from the transition table is used to create a =
complex sinusoid in the time domain. All lines for one metabolite are =
summed. A Gaussian decay envelope is applied. An FFT is performed. And, the=
spectrum is saved in a numpy array for display.
So, the only speedup we’d likely see is for display of results. And against=
this, we’d have to balance the need to require all users to install the =
EPD.=A0 Which is only free for academics, and has no guarantee that it will=
stay so.=A0 Also, while EPD can be simpler (in the “click it and it =
installs” sense), a Vespa user is then left with the EPD setup of modules =
rather than being able to pick and choose what they want on their machine.
Now, if you were asking just about how to speed up the PyGamma/GAMMA =
simulations, you should ask Karl Young or David Todd. They did some =
investigations about how to link in LAPACK/BLAS to provide more optimized =
math library functions. You can read about these results here:
https://scion.duhs.duke.edu/vespa/gamma/wiki/GammaWithLapackAtlashttp:=
//scion.duhs.duke.edu/vespa/gamma/wiki/GammaWithLapackAtlas
however, this would also adds significant distribution issues to the Vespa =
package since we’d have to somehow provide for users to compile against =
compatible math libs, or provide/support even more binary distributions. =
Our manpower is a bit low for either right now, especially as we are pretty=
focused on programming issues in other parts of the Vespa package.
Our next step to try to speed things up is to develop (adopt, steal, =
whatever) a method for generalized distributed processing. This would be a =
straightforward improvement in speed since each simulation in an Experiment=
is run separate from all others. But, that’s for the future …
Hope that this helps,
Brian.
At 09:06 AM 11/30/2010, you wrote:
Hi all
Thanks all for a nice software. I successfully compiled it on fedora 14. =
I want to know something about it. I am thinking if I use pygamma with EPD =
python we can see some seedup. Because In EPD python numpy and scipy use =
intel mkl library, which really speeding up some calculations. I dont know =
it will work or not. It is just my thinking. Can some please tell me what =
type of calculations are performed with numpy and scipy in pygamma.
Thanking you
abhishek