-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Layout.__init__ slow execution #3
Comments
i think rkern wrote this module for pedagogical purposes, so i am kind of abusing it with numeric applications. i dont have needs for high dimensional algebras (..yet) but this is an important problem to point out. |
Fred, if you run this,
it shows that the big slowdowns occur in |
I don't have the actual numbers to hand here, but it might be worth But for n = 6 , clifford runs only ~3x faster; for n = 8 , incredibly WFL On Sat, Oct 1, 2016 at 2:54 PM, alex arsenovic notifications@github.com
|
@FredLunnon We have recently made a lot of changes to the performance of this project. High dimension algebra initialisation times are probably still pretty big but everything else should be a lot faster. It would be really interesting to see a scaling benchmark with the latest release of this library and clifred |
Dear Hugo Hadfield (?)
I did spend a good deal of time a year or two back in an attempt to
comparatively benchmark existing GA systems: but it proved difficult
to produce any meaningful results, largely because both functionalities
and performance in practice diverge so wildly.
I will keep your package in mind if and when I return to this project.
Regards, Fred Lunnon
…On 7/16/18, hugohadfield ***@***.***> wrote:
@FredLunnon We have recently made a lot of changes to the performance of
this project. High dimension algebra initialisation times are probably still
pretty big but everything else should be a lot faster. It would be really
interesting to see a scaling benchmark with the latest release of this
library and clifred
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
#3 (comment)
|
Hello @arsenovic @hugohadfield We have high-dimensional applications in mind where we only make use of a subspace of grades. For example the Cl(n) Clifford algebra grows in dimensionality by I wrote a quick naive implementation just to test initiation times, the
Some basic operations such as mutlivector addition, grade projection etc. are preserved nicely. Others such as dual (in cases where the result is an initiated grade) and reflection are not. The initiation time growth isn't as promising as I'd hoped for either, but could possibly be drastically improved with a less naive implementation. In particular 99.1% of the initiation is spent in this loop in Line 567 in 8793d3e
There is a comment in the code that states the loop runs for Initiation times:
cProfile for
I realize this is a bit outside the scope of the developer's interest for this module, but I was hoping someone could at least point us in the right direction. Or alternatively to at least comment on if it is even theoretically possible to implement something like this for the module. Thank you for reading in any case. Regards, |
i think this feature is a good idea, you might copy your comment into a new issue called something like |
Thank you for the reply. I made a new issue here #40 . |
Initialisation timings Cl(6) 0.195 sec, Cl(7) 3.7 sec, Cl(8) 2.5 mins :
building multiplication table as n -> n+1 costs 20x, 40x longer,
instead of expected ~5.3x .
Why is it necessary to search an (evidently very large) table at all?
python
The text was updated successfully, but these errors were encountered: