On 9/16/07, David Joyner <[EMAIL PROTECTED]> wrote: > Some comments on the recent GAP comments relevant to SAGE: > > (0) The talk on SAGE went quite well and generated interest.
Excellent. > (1) Many GAP developers and some GAP packages authors like > SAGE and plan on looking into the extra functionality of "GAP-SAGE" > (ie, the GAP that comes with SAGE). Especially the HAP team. > I would like to include HAP as standard as soon as we can. > (There still is a documented HAP function which returns a list sometimes > and an integer others. I have them 2 ways to remedy this which are > fairly easy. Once they fix this, i would like it to be included. > Further HAP development will use polymake, which is already a > SAGE package.) Just get it to work for me easily and I'll include it. > (2) Many really liked the SAGE gui. Unfortunately, the TUB (Tech Univ at > Braunschweig) wirefall blocked the online authentication so it could not > be used and there was no internet at the hotel. For future reference, about 3-4 days ago I changed things so that the public notebook server: (1) Doesn't use ssl at all, and (2) Is at http://sagenb.org (and another at http://sagenb.com), so there is no funny business with ports. Thus the above setup shouldn't get blocked anywhere anymore. Obviously (1) means people could sniff password on the public notebook easily, but this really isn't too worrisome given that the thing is free, etc., so what should people expect? > (3) The Browse package authors (which used ncurses to do some fancy > display tricks with large character tables, for example) wished that it > could be used in the gui. I have no idea if you can pipe ncurses > special characters through to the browser and make it look nicer. I have no clue if that is possible or if it would be a good idea. Probably not. > In general, for SAGE's browser, how do you view a section of a huge > (say character or Cayley) table? They have solved this problem using Browse, > which leaves the side and top alone (which index the rows and columns) > but allows you to browse 5 or 10 consecutive rows and column entries. I suspect HTML and any good web browser solves this problem ok -- just make aread-only textarea or span or div tag with a limited number of rows and columns, and the browser provides good scroll functionality. This is one thing that browsers are surprisingly good at. > (4) Single processor machines are almost a thing of the past. > How do we start to adjust for this increase in processors? DSAGE, IPython1, multithreaded BLAS, etc. > Can SAGE use a single GAP workspace but start two (or more) > threads using that? I don't know what that means, due to my lack of knowledge about GAP. > Which basic commands (like polynomial > multiplication) can be parallelized? For atomic operations like that, most anything can be parallelized. The amusing thing is that usually the overhead of starting threads and keeping track of them ends up making the resulting code slower than not using threads at all. In my opinion the *only* reason to ever use parallelism is to make things faster -- period. If a parallel implementation isn't demonstrably faster than a serial one, then there is no point (though there are some issues of scaling). In numerous cases basic arithmetic, linear algebra, etc. in SAGE / GAP is way slower than Magma's serial implementations, so in such cases one should at least catch up with (or beat) them first. Finally, in many cases Sage's basic arithmetic is done by third-party libraries, in order to avoid us reinventing the wheel... our multivariate polynomial arithmetic is often done by Singular -- and it would probably takes years of hard work to come up with our own serial multivariate polynomial arithmetic that would beat Singular (note that Singular actually beats Magma in many cases). And then once we understand our serial implementation, we have to do something parallel that is even better. So I think nontrivial parallelization at the low-level arithmetic level is not something that is going to happen soon, except if any third party libraries were to do it. One exception is linear algebra, where SAGE uses Linbox, which in turn using a system-wide optimized BLAS -- and one can get optimized BLAS's that really do leverage multicore machines, e.g., this is standard on OS X. So already much of SAGE's linear algebra benefits from multicore machines, without us doing any work to make that happen. Parallelization at a higher level, e.g., dsage, ipython1, etc., is of course very important and is currently being used all the time by people. > (5) How easy would it be to "certify" a computation? Suppose > f is a function, x is input and y is output and I claim GAP (or SAGE) > tells me that, after several days, y = f(x). I want you to believe me, > so I "certify this". One way (maybe) is to have SAGE encrypt the > start time, finish time, and printout (and maybe a pickle of some > relevant data) into a file. This file looks random but a SAGE Oracle can > verify its authenticity within a reasonable probability. Probably anything you could imagine doing along the above lines could be forged. In any case, it's such a standard problem/question that either it has been solved in other programs or systems like Mathematica, and it's obvious what to do, or it's like DRM and there is always a way to trick it. If somebody knows something about this sort of question, please reply... Are we supposed to assume the person doing the signature is malicious? Are do we assume the person is somewhat like me who is -- I claim -- not malicious, and just isn't very good at keeping track of what they are doing, and wants a double check on what they've computed? Then wouldn't a log be good enough? > (6) At SD4 the topic of Bruhat orderings came up (maybe in a different > guise). Frank Luebeck told me about > http://math.univ-lyon1.fr/~ducloux/coxeter/coxeter3/english/coxeter3_e.html > Sadly, du Cloux died recently, but it is GPL'd. It may or may not be > included in Atlas (which he was also the main author). Cool. > I'm happy to post any or some of this on the sage-devel or > you can just reply there and cut out what you want. Done. -- William Stein Associate Professor of Mathematics University of Washington http://wstein.org --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---