MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Intensive numerical calculations

  • To: mathgroup at smc.vnet.net
  • Subject: [mg80554] Re: [mg80517] Re: Intensive numerical calculations
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Sun, 26 Aug 2007 02:59:38 -0400 (EDT)
  • References: <f9s445$all$1@smc.vnet.net><fabgog$id8$1@smc.vnet.net> <fae9u4$ec7$1@smc.vnet.net> <200708220838.EAA08507@smc.vnet.net> <faj4vu$8sk$1@smc.vnet.net> <200708240557.BAA16587@smc.vnet.net>

Cristian wrote:
> On Thu, 23 Aug 2007 05:12:30 +0000 (UTC), Daniel Lichtblau
> <danl at wolfram.com> wrote:
> 
> 
>>Cristian wrote:
> 
> ]zac[
> 
>>Suffice it to say that a dense representation will cause problems for 
>>most software on many machines. As for a sparse represntation, and 
>>computational speed, it will depend on what specifically you want to do. 
>>Mathematica uses some fairly good libraries for certain linear algebra 
>>operations on such matrices. If what you require is not well supported 
>>then you might need to go to some other approach, perhaps via MathLink.
>>
>>Daniel Lichtblau
>>Wolfram Research
>>
> 
> My problem is not the dimension of the matrixes. Certainly the
> limitation on the packeds array (< 2^31)limits, but my true problem is
> the slowness in to pass these matrixes to the form c++ by matlink.
> That that profit inserting pieces in c++, I lose in the transfers
> through matlink. I have to develop a form (structural fem)
> personalized for the analysis of parts mechanics submitted to dynamic
> solicitations and I was considering mathematica because I knew it from
> the university. If I use c++ and MTL  for example it'is ok There is a
> method for move more quickly big matrixes (unfortunately the matrixes
> become full with the progress of the footsteps and it would be for me
> too complicated to avoid this to the beginning)  from Mathematica to
> an external form in c++?


If you provide simple examples and take the trouble to use correct 
terminology then you will more likely get useful responses. For example, 
there is no "matlink" (the program you have in mind, I suspect, is 
MathLink). Moreover you still have not specified what is your data 
format when it resides in Mathematica. SparseArray[...]? Something else?

Maybe what you will require is some form of Export. I believe that 
function supports some matrix types but it is, as I note, unclear which 
would be appropriate, as you gave no example.

As for matrix fill-in, I'd be really surprised if your C++ library code 
uses a dense method for solving linear systems of the sort generated for 
FEM, with dimension around 10^5. As noted in a prior response, that 
would be close to 100 Gb, and that is a large chunk of memory to work 
with. Not to mention time, since you would likely have an O(n^3) 
algorithm, or at best maybe O(n^2.4) or so from asymptotically fastest 
approaches to matrix multiplication.

Much more likely is that a Krylov type of method would be used. Similar 
to what Mathematica might do in solving a sparse system using machine 
double arithmetic.


Daniel Lichtblau
Wolfram Research



  • Prev by Date: Coordinate problems with Inset (and a bug)
  • Next by Date: Re: ParametricPlot3D from 5.2 to 6.0
  • Previous by thread: Re: Intensive numerical calculations
  • Next by thread: Re: Intensive numerical calculations