Tags: JeffersonLab/PyPWA
Tags
Release PyPWA 3.3.0, with GPU acceleration This update is a series of changes that should have been their own seperate commits, but one thing lead to another, and now they're a massive single commit. - 2D Gauss Tutorial: This is an introductory tutorial on how to use the components of PyPWA without getting too deep into complex amplitudes. - Overhauled particles: Particles no longer infer their charge from the particle's ID, because there are different particle IDs depending on who's format you use. Now, any particle that hasn't been encountered before will be labeled as "Unknown" but will still function as a normal ID. - CUDA: I've added CUDA support by including CuPy. CuPy is an optional component, but should be included automatically if you installed the package from Anaconda. This gives you all the benefits of computing on the GPU without the headache of tackling the CUDA development. Likelihoods and Simulate have already been adjusted to handle CuPy configured kernels, and the 2D Gauss contains an CuPy example amplitude to demostrate how it functions.
Fix regression in Gamp writing There was an issue with GAMP not writing data again that's a regression from the patches for v3.2.0. If I had to guess, the patches to avoid deprecations from Numpy changed the internal data types for the vectors in a minor way that caused the writer to break. In v3.2.0 it's assumed the internal values when extracted by a single value would be a scalar, the patch to 3.2.1 assumes it's an array with a single element, and then one of the changes in 3.2.2 changed that internal value back to a scalar. This patch doesn't revert to assuming the data is a scalar, instead we now wrap the writing data with `float` so that regardless of whether it's a scalar or an array with a single element. Hopefully that means this particular issue will no longer present itself. As a bonus, ParticlePools can now be compared against each other. You can now `p1_pool == p2_pool` and recieve a boolean result depending on if they are equal or not. While there is not a lot of praticle use for this for Physics outside of sanity checking, it does make the process of unit testing the libraries much more manageable.
Patches for GAMP parsing and Particle display The memory module of GAMP would use a dictionary to store the particle data as an intermediate step, using the particle IDs as the key in the dictionary. This worked great, until there were multiple particles with the same ID. This patches that out by using the index of the particle instead. This assumes that each event will have particles appear in the same order consistently throughout the file, which _should_ be a safe bet. There was also an issue with some rushed out code involving the how Particles are visually represented in iPython and Jupyter. The underlying data structures were safe, but when the user would try to view the values, errors would occur. This should also patch those issues. However, there are no improvements in Testing with these sort of functions since at this time I have not found a reliable way to test that the display function is operating correctly.
PreviousNext