Jbowman353 / parallel-groebner

Senior Design Project, Implementing Parallel Groebner Basis Algorithm on GPU
3 stars 0 forks source link

Re-format SymPy Criticical Pair Calculation in Numpy/ Numba Compatible Format #12

Open Jbowman353 opened 5 years ago

Jbowman353 commented 5 years ago

Function must be broken down to use Numpy Arrays, view comments in source code for specific operations and details

Jbowman353 commented 5 years ago

@btdow @mylesdavis Looking at it again, I don't think the critical_pair calculation itself is going to be beneficial. I ran some more profiling on the larger inputs we have and it takes up a lot less of the computation time in these. The vast majority of the time is spent in red_groebner, but if that's taken out, then the vast majority is spent in f5_reduce. Let me know what you guys think.

btdow commented 5 years ago

Agreed, there are a lot of procedures in crit_pair, and they have to go in sequential order per pair, but they’re mostly trivial while the domain is a field. I’ve been working on converting the lbp data structures into flat typed numpy arrays, and the best I think we could do with CUDA here is compute all the pairs concurrently, there isn’t really a reduction step or any real use for a grid in this case, and it’s looking like it would basically run like pthreads or openmp but with significantly worse memory access time. Even so, I’m gonna finish it, and I think I might be able to adapt what I’ve worked out to some other areas once I get it running, hopefully tonight or tomorrow