GSOC2014 Application: High Precision Arithmetic Computation

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

GSOC2014 Application: High Precision Arithmetic Computation

CdeMills
Hello,

I proposed the topic about using floating-points number with arbitrary resolution [1]. Georgios Ouzounis, a student at the University of Thessaloniki, Greece, contacted me privatelly about applying for this topic. We discussed about concept, implementation, and timing. He introduced his proposal on the GSOC site [2], and I propose myself as mentor.

Now I let him introduce himself and say a few words about his proposal.

Regards

Pascal

[1] http://wiki.octave.org/Summer_of_Code_Project_Ideas#High_Precision_Arithmetic_Computation
[2] https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2014/gouzouni/5629499534213120
Reply | Threaded
Open this post in threaded view
|

Re: GSOC2014 Application: High Precision Arithmetic Computation

Georgios Ouzounis
  Hello, my name is Georgios Ouzounis and I have submitted an application on Google Summer of Code ( GSoC ) for working on GNU Octave this summer. I would like to work on the topic proposed by Pascal Dupuis : "High Precision Arithmetic Computation". After exchanging a few e-mails, he agreed on mentoring me.

Addressing the problem :
  There are numerous real world examples where double precision numbers, used by Octave, are not enough. Modelling exponential behaviours as found in semiconductor materials and electrical circuits ( diodes and transistors ) or modelling weather patterns are some of these examples. All of them, end up to solving linear systems of equations where the corresponding matrices are mathematically invertible but numerically not, due to large ratio between their first and last singular values.

My proposal :
  A solution of the above problem would be the creation of a new basic numerical type for Octave which will depend on GNU MPFR ( http://www.mpfr.org/ ) which is ( quoting the site ) "a C library for multiple-precision floating-point computations with correct rounding". This new numerical type will give the ability to the user to use numbers with arbitrary precision, limited of course by the machine's internal memory. This numerical type I want to implement will come with a host of algorithms upon it. Some of these algorithms will be

Singular Value Decomposition ( SVD ),
QR factorization,
Cholesky factorization ( chol ),
Inverse matrix computation,
Eigenvalues and eigenvectors calculation,
Solving linear systems,
Root of non-linear function finder ( fzero ),
Minimum value finder ( fmins ).

Benefits :
  The existence of this basic numerical type can be a useful tool for GNU Octave's users and for its developers too. More users will be using Octave for their computational needs and so Octave's community will grow. The outcome of this project could be combined with packages like the Electronic Circuit Simulator and the Signal package to make them more powerful. Prompted by my experience in my university, I can say it could be also useful in robotics where high precision is needed and on weather forecasting since weather is an ill-conditioned system.

You can find more information about me at my wiki page ( wiki.octave.org/user:Gouzouni ). My nick on the IRC channel is "gouzouni" and my e-mails are ouzounis_georgios@hotmail.com ( or geo_ominous@hotmail.com, one account with 2 aliases) and geoconstructor625@gmail.com .

Comments and suggestions from other core maintainers are welcome about anticipated needs and compatibility issues of this implementation.

Thank you for your time, Regards

Ouzounis Georgios
Reply | Threaded
Open this post in threaded view
|

[OT] Re: GSOC2014 Application: High Precision Arithmetic Computation

Susi Lehtola
On Thu, 20 Mar 2014 03:20:21 -0700 (PDT)
Ouzounis_Georgios <[hidden email]> wrote:
> Prompted by my experience in my university, I can say it could be also
> useful in robotics where high precision is needed and on weather forecasting
> since weather is an ill-conditioned system.

Actually, I don't think so. Because of the chaotic nature of the
equations, slight differences in the starting conditions lead to vastly
different solutions given enough time.

But the thing is that you *always* have error in the initial
conditions, and that's why AFAIK the weather guys run multiple
simulations with somewhat varied starting points, and the forecast is
then compounded from the different results.

In any case, the models are pretty heavy to run and I don't think it's
really a market segment for Octave.

But yes, an arbitrary precision linear algebra addition to Octave would
be very useful.

--
Susi Lehtola
Fedora Project Contributor
[hidden email]
Reply | Threaded
Open this post in threaded view
|

Re: [OT] Re: GSOC2014 Application: High Precision Arithmetic Computation

CdeMills
Susi Lehtola wrote
Actually, I don't think so. Because of the chaotic nature of the
equations, slight differences in the starting conditions lead to vastly
different solutions given enough time.
Hello Susi,

thanks for your input. Weather systems are indeed chaotic. What we intend to solve are systems where the RELATIVE accuracy is maintained over many ranges. Two examples:
-semi-conductors: tests are performed over 10 decades of currents, with autoranging on. So each measurement is given with an accuracy of around .1 %; yet mixing nano-amps and amps is not very comfortable.
-chemicals systems, in particular plasma: you have state transitions in cascade, like f.i molecule => ions +1e- => ions with two lost electrons; or molecule => atoms. The transition probabilities are small; yet the different populations can be measured by different techniques with comparable accuracies.

What we wish to solve are situations where the numerical noise on the values with the highest magnitude becomes comparable to the magnitude of the smallest components. In the case of semi-conductors or plasma, those minority components are responsible for the interesting behaviours: conduction or light generation.

Regards

Pascal
Reply | Threaded
Open this post in threaded view
|

Re: GSOC2014 Application: High Precision Arithmetic Computation

José Luis García Pallero
In reply to this post by CdeMills
Your proposal sounds good, Ouzounis. What library you use for SVD, QR,
etc.? Maybe http://mplapack.sourceforge.net/?

--
*****************************************
José Luis García Pallero
[hidden email]
(o<
/ / \
V_/_
Use Debian GNU/Linux and enjoy!
*****************************************
Reply | Threaded
Open this post in threaded view
|

Re: GSOC2014 Application: High Precision Arithmetic Computation

Georgios Ouzounis

José Luis García Pallero wrote :
>Your proposal sounds good, Ouzounis. What library you use for SVD, QR,
>etc.? Maybe http://mplapack.sourceforge.net/?

  A rough schedule that will be followed ( not necessarily in this order ) while developing the above algorithms will be :

Step 1 : Check if there is some library based on GMP or MPFR implementing any of those algorithms and if this can be embedded on Octave.

Step 2 : Study Octave's already implemented for double precision algorithms and see if they can be re-formed in order to support multiple precision.

Step 3 : Check if there is any Fortran code implementing any of the required algorithms and if it can be used to add support for multiple precision.

Step 4 : Implementing the algorithm from the scratch. This will be the final choice, and will be done only if there is no other way to implement an algorithm.

I will also check other libraries to see if they can be useful. LAPACK will surely be one of them. I haven't done any studying on them yet but I am willing to make an extensive search before deciding on what libraries to use.

Feel free to ask any other questions you might have.

Georgios Ouzounis.