SRC/memory.c File Reference

Memory utilities. More...

#include "superlu_ddefs.h"

Functions/Subroutines

static int_t memory_usage (const int_t, const int_t, const int_t)
static void * expand (int_t *prev_len,MemType type,int_t len_to_copy,int_t keep_prev,Glu_freeable_t *Glu_freeable)
void SetupSpace (void *work, int_t lwork, LU_space_t *MemModel)
void superlu_abort_and_exit_dist (char *msg)
void * superlu_malloc_dist (size_t size)
void superlu_free_dist (void *addr)
static void copy_mem_int (int_t howmany, void *old, void *new)
static void user_bcopy (char *src, char *dest, int_t bytes)
int_tintMalloc_dist (int_t n)
int_tintCalloc_dist (int_t n)
void * user_malloc_dist (int_t bytes, int_t which_end)
void user_free_dist (int_t bytes, int_t which_end)
int_t symbfact_SubInit (fact_t fact, void *work, int_t lwork, int_t m, int_t n, int_t annz, Glu_persist_t *Glu_persist, Glu_freeable_t *Glu_freeable)
int_t symbfact_SubXpand (int_t n, int_t jcol, int_t next, MemType mem_type, int_t *maxlen, Glu_freeable_t *Glu_freeable)
int_t symbfact_SubFree (Glu_freeable_t *Glu_freeable)
int_t QuerySpace_dist (int_t n, int_t lsub_size, Glu_freeable_t *Glu_freeable, mem_usage_t *mem_usage)

Variables

ExpHeaderexpanders
LU_stack_t stack
int_t no_expand
long int superlu_malloc_total = 0


Detailed Description

 -- Distributed SuperLU routine (version 1.0) --
 Lawrence Berkeley National Lab, Univ. of California Berkeley.
 September 1, 1999
 

Function Documentation

static void copy_mem_int ( int_t  howmany,
void *  old,
void *  new 
) [static]

static void * expand ( int_t prev_len,
MemType  type,
int_t  len_to_copy,
int_t  keep_prev,
Glu_freeable_t Glu_freeable 
) [static]

 Expand the existing storage to accommodate more fill-ins.
 

int_t* intCalloc_dist ( int_t  n  ) 

int_t* intMalloc_dist ( int_t  n  ) 

static int_t memory_usage ( const   int_t,
const   int_t,
const   int_t 
) [static]

int_t QuerySpace_dist ( int_t  n,
int_t  lsub_size,
Glu_freeable_t Glu_freeable,
mem_usage_t mem_usage 
)

 mem_usage consists of the following fields:
  • for_lu (float) The amount of space used in bytes for the L data structures.
  • total (float) The amount of space needed in bytes to perform factorization.
  • expansions (int) Number of memory expansions during the LU factorization.

void SetupSpace ( void *  work,
int_t  lwork,
LU_space_t MemModel 
)

 Setup the memory model to be used for factorization.
    lwork = 0: use system malloc;
    lwork > 0: use user-supplied work[] space.
 

void superlu_abort_and_exit_dist ( char *  msg  ) 

void superlu_free_dist ( void *  addr  ) 

void* superlu_malloc_dist ( size_t  size  ) 

int_t symbfact_SubFree ( Glu_freeable_t Glu_freeable  ) 

 Deallocate storage of the data structures common to symbolic
 factorization routines.
 

int_t symbfact_SubInit ( fact_t  fact,
void *  work,
int_t  lwork,
int_t  m,
int_t  n,
int_t  annz,
Glu_persist_t Glu_persist,
Glu_freeable_t Glu_freeable 
)

 Allocate storage for the data structures common to symbolic factorization
 routines. For those unpredictable size, make a guess as FILL * nnz(A).
 Return value:
     If lwork = -1, return the estimated amount of space required, plus n;
     otherwise, return the amount of space actually allocated when
     memory allocation failure occurred.
 

int_t symbfact_SubXpand ( int_t  n,
int_t  jcol,
int_t  next,
MemType  mem_type,
int_t maxlen,
Glu_freeable_t Glu_freeable 
)

 Expand the data structures for L and U during the factorization.
 Return value:   0 - successful return
               > 0 - number of bytes allocated when run out of space
 

static void user_bcopy ( char *  src,
char *  dest,
int_t  bytes 
) [static]

void user_free_dist ( int_t  bytes,
int_t  which_end 
)

void* user_malloc_dist ( int_t  bytes,
int_t  which_end 
)


Variable Documentation

long int superlu_malloc_total = 0


Generated on Wed Nov 24 18:17:32 2010 for SuperLUDistributed by  doxygen 1.5.5