[Maxima] one more question on A couple of questions
ziga.lenarcic at gmail.com
Wed Mar 11 10:19:45 CDT 2009
My best guess is that the compiler or VM can't automaticly
parallelize your code because it can't find out what code can be
executed without previous results. For some general code it's near
impossible to do that.. But I'm no computer scientist. Also some kind
of "micro parallelization" is happening in processor pipelines, where
processor is executing instructions, more than one at a time. If
porcessor "finds out" that some instruction depends on the result of
some previous one, which hasn't been executed completely yet, it has
to wait a few cycles to get the result and process the waiting
instruction (in layman terms). Generally it wouldn't be safe to
autmaticly parallelize your code, since it's to hard for compiler to
find out what depends on what. A human being is a bit "smarter" in
On 11. Mar, 2009, at 4:06 PM, ahmet alper parker wrote:
> Though, I have a question to add which was on my mind for a long
> time. When we are using a language like python, java etc, we tell
> the virtual machine to do some kind of calculations. Ok, since we
> have one thread/core etc, evertthing is fine, but, when I need to
> do parallelization of a code, why I have to do it by my hands in
> the code? In example, why can't we teach the virtual machines to do
> parallel processing? Is it that much difficult? Once in the
> beginning of these multi core processors era (for desktop
> computers), I read a news from Amd which gives hints about amd's
> future plans to find a solution to use these cores to achive a
> single fast processing method. Is it really possible?
> On Wed, Mar 11, 2009 at 3:57 PM, Žiga Lenarčič
> <ziga.lenarcic at gmail.com> wrote:
> However cynical your answer was, I will comment on it. My discussion
> is aimed towards improving maxima, I wasn't trying to say it's not
> usable in current state - it certainly is.
> On 11. Mar, 2009, at 12:35 PM, R Fateman wrote:
> > I don't know the answers to all your questions, but here are a
> > few... I think that people who have been working with arrays
> > should have more comments.
> > iga Lenarčič wrote:
> >> It would be interesting to have maxima on JVM with reasonable
> >> speed (at least in the range of GC
> > This is unlikely to be as fast as a lisp compiled to machine code.
> I agree. SBCL I think would be the best lisp if it worked properly in
> Windows. It rivals commercial lisps in the speed department, is much
> more CL compliant than GCL and supports CFFI. However I don't know
> how soon SBCL will be working properly on windows... ABCL on the
> other hand doesn't care about the OS..
> >> it would mean that maxima would work on 90% of computers on this
> >> planet (though JVM is not opensource if I'm not mistaken).
> > 90% of the machines are probably window/intel machines so this has
> > been achieved.
> > (plus the linux/intel machines.)
> Through GCL, yes, but it's rather slow, doesn't support FFI (as far
> as I know) and is more or less a dead project.
> >> Accessing java classes could alse be very beneficiary to maxima
> >> in various ways (faster plotting, interactive features, gui,
> >> numerical libraries...)
> > I doubt that there is a benefit to using java for plotting compared
> > to using gnuplot, at least for speed.
> I thought speed could be gained from omitting writing the text file
> and loading it into gnuplot - if maxima could plot directly, one
> could simply pass a pointer to an array.. ofcourse I don't know how
> much of a speed up this would bring to the table. But it most
> certainly would allow quasi realtime manipulation of plots and
> >> Also has anyone been successful with running maxima in SBCL on
> >> windows?
> > I think the answer is yes, but there are deficiencies in SBCL that
> > could be a problem
> So SBCL will never be a solution for maxima on windows? Is it likely
> that SBCL gets improved to the point where it works flawlessly on
> >> I think Maxima could benefit a lot from calling external libraries
> > definitely, yes. This can be done with other Lisps, and does not
> > require ABCL.
> > I use external libraries from Lisp often.
> It would be great if a common user had the benefit of external
> libraries .. as long as maxima runs on windows on gcl (for a common
> user) this can't be done..
> >> - that's how all the big ones get their numerical speed (MATLAB,
> >> Mathematica, Octave, R) - via calling BLAS+Lapack. Sadly most of
> >> the users are running gcl on windows so it's kind of impossible
> >> to work in this direction until we have a Maxima+lisp combination
> >> that runs well on all common platforms (windows, linux, mac os x).
> > There are several. The one I use is not open source. The trial
> > version is free, and can run Maxima.
> >> I think supporting many different lisps is not good in a sense
> >> that developers' time would be much better spent on other things
> >> and prevents them from implementing new things that wouldn't be
> >> compatible with all the lisps.
> > If only people agreed on one religion, think about how much time
> > could be spent on better things.
> Very cynical...
> >> 2) Regarding matrix implementation in maxima: Currently matrices
> >> are lists of lists.
> > This is not the only way. You can also use lisp arrays, as you
> > mention. though I don't know the details.
> >> Perhaps even maxima lists can be implemented as arrays?
> > This is probably a bad idea. Adding an object to the front of a
> > list takes very little time. Adding
> > an object to the front of an array requires copying the whole array.
> Just saying it's a bad idea because you can cons lists quickly is
> perhaps not the best argument. Perhaps the speed gained by quicker
> aref outweights the cons benefit. If mathematica does it with arrays
> it is probably better :D If one has a list of 100000 numbers and
> wants to multiply it with a number, arrays are probably much faster...
> >> in Mathematica everything is a list,
> > no, in Mathematica, the word List means "1-dimensional array".
> I was talking about the user's point of view of things. Of course it
> is an array but the user doesn't care about how mathematica does what
> it does.
> I've looked again at the amatrix package and I think it's brilliant.
> Indexing possibilities are very advanced and useful. I think if
> amatrix replaced current matrix implementation it would be great. It
> it supported 1d , 2d, 3d, .. nd cases it would then be even better.
> Maxima mailing list
> Maxima at math.utexas.edu
More information about the Maxima