🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: sci.math.num-analysis
4 messages
4 total messages Started by Henry J. Cobb Wed, 23 Dec 1992 14:38
LU decomposition on very large matrix.
#857
Author: Henry J. Cobb
Date: Wed, 23 Dec 1992 14:38
13 lines
1116 bytes
I am interested in C code for the manipulation of a VERY large matrix.
Basically, what I need to do is perform an LU decomposition on a matrix
too large to operate on the whole thing at once.  Therefore, I need an
algorithm that allows me to operate on chunks of the matrix at a time,
and which allows an in-place LU decomposition, so that I can minimize
the amount of disk storage necessary for the computations.  Any
help is GREATLY appreciated.
--
	Henry J. Cobb	hcobb@fly2.berkeley.edu	SFB Tyrant
	"Once it becomes possible to do something, it gets very difficult to
undo it.  Whether its automobiles, computers or nuclear weapons, invention has
always been the mother of necessity."
Re: LU decomposition on very large matrix.
#873
Author: David Steinman
Date: Fri, 25 Dec 1992 20:01
39 lines
2090 bytes
hcobb@fly2.berkeley.edu (Henry J. Cobb) writes:

>I am interested in C code for the manipulation of a VERY large matrix.
>Basically, what I need to do is perform an LU decomposition on a matrix
>too large to operate on the whole thing at once.  Therefore, I need an
>algorithm that allows me to operate on chunks of the matrix at a time,
>and which allows an in-place LU decomposition, so that I can minimize
>the amount of disk storage necessary for the computations.  Any
>help is GREATLY appreciated.

Assuming your matrix results from a finite analysis technique, you
should look into an out-of-core skyline matrix solver.  The only
caveat is that i/o time can be of the same order as solve time.  I have a
reference to a published Fortran code, which could be messily ported to 
C via f2c (PD fortran to C converter) or by hand (with lotsa goto's).

    AUTHOR = "G. Dhatt and G. Touzot",
    TITLE = "The finite element method displayed",
    ADDRESS = "Chichester",
    PUBLISHER = "John Wiley \& Sons",
    YEAR = "1984"}

If you go with a skyline solver, you should also consider Sloan's
algorithm, which reorders nodes to minimize the skyline.

    AUTHOR = "S. W. Sloan",
    TITLE = "A fortran program for profile and wavefront reduction",
    JOURNAL = "Int J Num Meth Eng",
    YEAR = "1989",
    VOLUME = "28",
    PAGES = "2651--2679"}

I believe the code provided is in Fortran, but you should be able to 
C it clearly (or, again, use f2c).

If you hear about any C-codes for the above, please let me know.  I'm
not thrilled about being Fortran-dependent for such things.
--
Dave!
Re: LU decomposition on very large matrix.
#891
Author: W. Donald Rolph
Date: Mon, 28 Dec 1992 13:26
9 lines
833 bytes
You should also look at the optsol articles in the INternational Journal of
Numerical  Methods in Engineering (aspprox 1984), and Irons article on wave front
solvers IJNME about 1983.
-- 

Regards.
 
Don Rolph  a722756@pan.mc.ti.com WD3 MS10-13 (508)-699-1263
Re: LU decomposition on very large matrix.
#941
Author: Henry J. Cobb
Date: Sat, 02 Jan 1993 19:48
37 lines
2092 bytes
	I'd first like to thank everybody for their input on this, there
didn't seem to be much of a consensus on this, so we're goning to handle it
like this:

	First a quick note: we're using a RS/6000 and we expect the matrix
to be around 500+ MB.

	Our game plan is to mmap a file, map the matrix to that address
space and fork off processes to handle chunks of it using MP style code.

	Our hope is that while some of the processes are blocked, waiting
for the parts of the matrix that they've touched to be paged in, other
processes will be able to continue crunching on pages that are curently in
core.

	We can (and will) take over the machine to run this, but are
wondering what the ratio should be between:

	Demand: The combined working set of the running processes. ( = Size
of each block * number of blocks active at a time for a process * total
number of processes)

	and Supply: Total system physical memory. (64 MB minus some amount
for the OS and per process overhead).

	It seems as though Demand should be about equal to Supply, but we'd
like to hear of any studies on this.

	It might prove to be useful to overcommit a little (for some sort of
read-ahead?) or undercommit by some factor (to provide "extra caching").
At the moment we're tempted to just provide args for block-size and number
of processes and test it out that way.
--
	Henry J. Cobb	hcobb@fly2.berkeley.edu	SFB Tyrant
	"A const pointer is a steady reference,
	while a pointer to const is a pledge not to tinker."
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads