Hi Brian,
Thanks for reading and responding to my comments.

On Wed, May 21, 2008 at 8:11 AM, Brian Granger <[EMAIL PROTECTED]> wrote:
>> IPython1 is a Python library that Sage ships that builds on MPI.
>> Maybe Fernando or Brian (who I've just cc'd) can comment.
>> We also build on Twisted, which is somewhat relevant for
>> certain types of problems..
>
> A few comments along these lines:
>
> - mpi these days is actually really easy to build.  I use openmpi and
> I have to try pretty hard to get it to not build right.  mpi4py should
> build as easy as anything else in sage.  As William mentioned, there
> is not a strong demand yet for MPI in Sage, but if there were it would
> not be too difficult a problem.
>

I suppose I'm expressing the view that if users express a desire to
use parallel routines, (distinct from a desire to have a particular
implementation MPI vs PVM,  etc.), then MPI, PETSc and other tools
have been extensively developed and are worthy of being part of the
basic infrastructure SAGES builds on from the bottom up, rather than
leaving them as add on's.  William seemed to indicated
SAGE is intended to be a grid/cloud application rather than a desktop
application +some optional parallel routines.  This is an extremely
abitious goal, but more likely to be achieved if existing efforts are
utilized which seems to be part of the SAGE philosophy.
For example, if I started SAGE on a dual processor the parallel (MPI
or some other parallel library) universe would be set to 2.
>From a users point of view it seems gridMathematica is an example of
the sequential-to-parallel-application development.  The result didn't
seem natural to me, mainly because so many core issues can be quite
different, and very difficult in parallel settings.  William points
out correctly that having a grid application that runs sequential code
better than any other will be tricky - there is overhead and the
communicate vs calculate choice is not always axiomatic.
I also found that parallel code sometimes altered the way I thought
about a problem and led me to make choices I would not make in the
sequential setting.

> - IPython1 doesn't exactly "build on MPI"  It is implemented in pure
> python using Twisted.  It does interoperation with MPI though.
>

Great, and maybe that is the best choice for SAGE's current or future needs.

> -  I don't think going in the direction of globus is a wise idea.

As you point out it Globus is huge, and their use case is not SAGE,
but I would be very surprised if components of their 'toolkit' didn't
have something to offer.  Their dev's might even have some experiences
to share?
My experience is that just the search costs involved in defining, and
evaluating what I needed was  substantial, so I'm certainly not
suggesting this would offer an immediate silver bullet.  All the more
so in the case of SAGE given that this would be the first grid/cloud
application (that I'm aware of) of this type.
I do think though there is an opportunity to build something that
offers opportunities that are fundamentally different to the 4M's.

> Globus was created with a spirit that is completely orthogonal to that
> of Python, web 2.0, Sage, IPython1, etc.  It is extremely heavyweight,
> difficult to install/maintain/admin, it has horribly complex APIs and
> (in my opinion) and would _never_ be used by the types of people that
> are using Sage (OK, maybe this is a generalization - I can't really

I obviously haven't been clear. I'm trying to advocate that these
components are worth considering as the foundation/chassis and would
typically lie 'under the hood'.  That they are there means a user
could employ the components if they wanted to.  They could also be
oblivious (in an ideal world) to them.

> speak for all users of Sage).  Compared to Globus, MPI is super
> lightweight, especially is used from Python through mpi4py.  I am not
> saying that Sage should use MPI, only that if it needed it, it is not

OK, I am saying that SAGE should use MPI :)
Just kidding, I'm not too concerned, and I'm happy with SAGE exactly
as it is!  I just thought some early choices might leave greater scope
for some things further down the road.

> a big deal.  Globus is a whole different ball game though.

Hmm, my experience was that things I thought were simple quickly
became a big deal :)
But I feely admit to being an amateur in the field.
The discovery of PETSc and TAO libraries stirred deep gratitude to
their developers :)
As I mentioned earlier, I was eventually crushed by the weight of
trying to debug parallel code that run fine in MPI universe of 1, and
2 but blew up in other cases.

>
> - Python does have a number of really good Object relational mapping
> projects.  The best is currently SQLAlchemy (which Sage already uses).
>

Thanks I will look into that.

Cheers
Mark

> Cheers,
>
> Brian
>
>>> Of course all this is moot if the goal is a desktop application that
>>> has some parallel compute options.
>>
>> That is not the goal of Sage.
>>
>>> My 2c :)
>>>
>>> Cheers
>>> Mark
>>>>
>>>
>>
>>
>>
>> --
>> 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://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to