From: Gautier <Gautier.deMontmollin@maths.unine.ch>
Subject: Re: Matrix Multiplication
Date: 1999/12/15
Date: 1999-12-15T00:00:00+00:00 [thread overview]
Message-ID: <3857B51F.4B1E0F1E@maths.unine.ch> (raw)
In-Reply-To: 5l1f5s4kck891a2s6o8bhvkirm4q79hm6c@4ax.com
> Intrigued about the 'renames' bit. I thought the renames was just a
> compiler overhead and had no run-time effect at all.
IIRC the renames takes `aliases' the its target its present state.
E.g.
declare
x: thing renames complicated(i,j).k;
begin
-- i,j could change, doesn't affect x
The ARM gurus will comment better...
Anyway it is a way to obtain a direct pointer to `complicated(i,j).k',
not just a syntaxic alias. On my tests with sparse matrices,
`renames' in the matrix-vector multiplication simply *halves* the computation
time of the whole BiCGStab algorithm (compiled on Compaq (DEC) Ada)!
The `renames' are
procedure Mult( A: in out CRS_matrix; u: vector; w: in out vector ) is
deb, fin, jaj: index;
ui, wi, wi_sum: real;
rows: constant index:= A.rows;
val: vector renames A.val;
col_ind: index_array renames A.col_ind;
row_ptr: index_array renames A.row_ptr;
begin
if not A.symmetric then
-- *** la matrice est memorisee sous forme non symetrique
for i in 1..rows loop
deb := row_ptr(i);
fin := row_ptr(i + 1) - 1;
wi_sum := 0.0;
for j in deb .. fin loop
wi_sum := wi_sum + val(j) * u(col_ind(j));
end loop;
w(i) := wi_sum;
end loop;
...
GNAT optimizer (-O2) is smarter for memorizing these addresses,
but sometimes one has to help it too with a small `renames'
(testings for textured 3D)...
--
Gautier
_____\\________________\_______\_________
http://members.xoom.com/gdemont/gsoft.htm
next prev parent reply other threads:[~1999-12-15 0:00 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-12-14 0:00 Matrix Multiplication William Dale
1999-12-14 0:00 ` David C. Hoos, Sr.
1999-12-14 0:00 ` Gautier
[not found] ` <5l1f5s4kck891a2s6o8bhvkirm4q79hm6c@4ax.com>
1999-12-15 0:00 ` Gautier [this message]
1999-12-15 0:00 ` Marin D. Condic
1999-12-15 0:00 ` Gautier
1999-12-16 0:00 ` Marin D. Condic
1999-12-27 0:00 ` Jeffrey L Straszheim
1999-12-15 0:00 ` Ted Dennison
1999-12-15 0:00 ` Gautier
1999-12-15 0:00 ` Tucker Taft
1999-12-16 0:00 ` Ted Dennison
1999-12-16 0:00 ` Ted Dennison
1999-12-15 0:00 ` Gautier
1999-12-15 0:00 ` E. Robert Tisdale
[not found] ` <3856FD3F.8291A71C@ucar.edu>
1999-12-15 0:00 ` E. Robert Tisdale
1999-12-14 0:00 ` Richard Maine
1999-12-15 0:00 ` Ted Dennison
1999-12-15 0:00 ` William B. Clodius
1999-12-15 0:00 ` Ted Dennison
1999-12-15 0:00 ` William B. Clodius
1999-12-16 0:00 ` Robert A Duff
1999-12-16 0:00 ` William B. Clodius
[not found] ` <01bf4708$99ef98f0$022a6282@dieppe>
1999-12-15 0:00 ` Gautier
1999-12-15 0:00 ` Robert A Duff
1999-12-15 0:00 ` Marin D. Condic
1999-12-16 0:00 ` Pascal Obry
1999-12-16 0:00 ` Brian Rogoff
1999-12-16 0:00 ` Greg Martin
1999-12-16 0:00 ` Dieter Britz
1999-12-15 0:00 ` Greg Lindahl
1999-12-15 0:00 ` Preben Randhol
-- strict thread matches above, loose matches on Subject: below --
1999-12-15 0:00 Carlisle, Martin
1999-12-15 0:00 ` Mario Klebsch
1999-12-19 0:00 ` Robert Dewar
1999-12-19 0:00 ` Robert Dewar
1999-12-19 0:00 ` Robert Dewar
1999-12-16 0:00 Carlisle, Martin
1999-12-16 0:00 ` Howard W. LUDWIG
[not found] <637de084-0e71-4077-a1c5-fc4200cad3cf@googlegroups.com>
2012-07-10 8:39 ` Does Ada need elemental functions to make it suitable for scientific work? Nasser M. Abbasi
2012-07-10 9:07 ` Dmitry A. Kazakov
2012-07-12 0:31 ` robin.vowels
2012-07-12 7:12 ` Dmitry A. Kazakov
2012-07-29 13:39 ` Robin Vowels
2012-07-29 14:22 ` Dmitry A. Kazakov
2012-07-29 20:54 ` glen herrmannsfeldt
[not found] ` <apib1897s56dkultqmfl3emvk1os3tfdak@invalid.netcom.com>
2012-07-30 4:15 ` glen herrmannsfeldt
[not found] ` <nfhd181tv9u87mcqfb7rgd8lm48ihr9f4r@invalid.netcom.com>
2012-07-31 8:53 ` MATRIX MULTIPLICATION Robin Vowels
2012-07-31 9:05 ` Robin Vowels
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox