Parallella Community Supercomputing for Everyone 2015-08-21T16:52:01+00:00 https://parallella.org/forums/feed.php?f=47&t=3144 2015-08-21T16:52:01+00:00 2015-08-21T16:52:01+00:00 https://parallella.org/forums/viewtopic.php?t=3144&p=15682#p15682 <![CDATA[Re: matrix inversion]]> the inverse matrix could be updated using the Sherman–Morrison–Woodbury formula:

[url]https://en.wikipedia.org/wiki/Sherman–Morrison–Woodbury_formula[/url]

One method of computing the inverse matrix is an iterative solver called the "hyper-power"
method, which converges to the solution quadratically if the starting estimate of the inverse
is close to the correct solution. There is a reference to the method
on Wikipedia:

https://en.wikipedia.org/wiki/Moore%E2%80%93Penrose_pseudoinverse#The_iterative_method_of_Ben-Israel_and_Cohen

Statistics: Posted by isee — Fri Aug 21, 2015 4:52 pm

]]>
2015-08-14T11:50:31+00:00 2015-08-14T11:50:31+00:00 https://parallella.org/forums/viewtopic.php?t=3144&p=15615#p15615 <![CDATA[Re: matrix inversion]]> for i: 1 - n (e.g. n= 16000000)
update A matrix and b vector based on previous step values
find x (output) based on A and b
some little calculation
end

So, There isn't any if statement to pipeline. I think the better solution related to better calculating algorithm for finding x vector(output).
Also, data forwarding between different step can be a good idea that may speedup implementation that I will think about it more in future.

Statistics: Posted by m_labbaf — Fri Aug 14, 2015 11:50 am

]]>
2015-08-13T09:42:51+00:00 2015-08-13T09:42:51+00:00 https://parallella.org/forums/viewtopic.php?t=3144&p=15593#p15593 <![CDATA[Re: matrix inversion]]> Statistics: Posted by piotr5 — Thu Aug 13, 2015 9:42 am

]]>
2015-08-13T06:56:33+00:00 2015-08-13T06:56:33+00:00 https://parallella.org/forums/viewtopic.php?t=3144&p=15589#p15589 <![CDATA[Re: matrix inversion]]>
I want to create a real-time circuit simulator using Epiphany, so I have a linear circuit that should solved in many steps and find the output.
for each circuit I write nodal equation (the size of nodal matrix is dependent to circuit topology) and solve it in every time-step. It's important to has low time-step(below 1us).
So in every time-step nodal matrix and input vector are updated and based on their values output (x vector) calculated.

A matrix and b vector is completely related to x result from previous step, so each step should solve independently.

I was thought about writing 8 equation with 52 variable that variables updated in each step, but it seems has some problem. First, it doesn't seems that equation has good forms for implementation. Second, it is limited to 8x8 matrix that could change for other application(changing circuit topology).

In this matrix all element are real number and I don't has any complex number. I don't know if projective space can help or not.

Statistics: Posted by m_labbaf — Thu Aug 13, 2015 6:56 am

]]>
2015-08-11T13:55:38+00:00 2015-08-11T13:55:38+00:00 https://parallella.org/forums/viewtopic.php?t=3144&p=15574#p15574 <![CDATA[Re: matrix inversion]]>
the simplest way to invert your matrix is by writing a generic set of equations (8x8=64 variables plus the 8 values of b and 8 entries for the unknown x, about 52 variables total if you're symmetric), doing a generic run of equation-solving, and then letting computer plug in values in the resulting formulas. also an interesting approach is to represent your matrix by a matrix of quaternions. or maybe use projective space with 9D vectors, and avoid rational numbers completely. it really depends on what you'll be doing with the result...

Statistics: Posted by piotr5 — Tue Aug 11, 2015 1:55 pm

]]>
2015-08-11T13:10:52+00:00 2015-08-11T13:10:52+00:00 https://parallella.org/forums/viewtopic.php?t=3144&p=15572#p15572 <![CDATA[matrix inversion]]>
I want to create a simulator using Epiphany processor. During my simulator algorithm stages, I have Ax = b equation which x is unknown. A is 8x8 matrix and b is 8x1 vector.
The problem that I faced is limited time-step to solve this equations, so I should use parallel processing capability to reduce processing time.
I want to know which algorithm has better performance and is there anyone who implemented matrix inversion on epiphany?