On Wed, Mar 21, 2012 at 3:10 PM, Andy Ray Terrel <andy.ter...@gmail.com> wrote:
> I would like to play more with the LLVM implementation. Check out
> https://github.com/ContinuumIO/numba

Cool.  Is that related to the unladen swallow project?

Aaron Meurer

>
> Some points I see coming up:
>
> * REAL codes are layered and have hot loops in them.  I would only
> target the small hot loops that get run a lot. (Such as a ufunc for
> numpy.)
> * In general, we should probably branch off our code tools and update
> them.  Currently they are spread around a bit and somewhat
> un-advertised.
> * Precision and stability problems are hard (as in I know theses that
> have tried and failed to address some of these issues), I would just
> tell people to make sure anything produced by us should be tested
> thoroughly and assume infinite precision.
> * The first ideas that come to mind is doing better CSE (which could
> be also combined with this idea), constant folding, loop lifting,
> perhaps some unrolling and jamming.  We can also rearrange to minimize
> memory access and if we are very ambitious vectorize (or generate
> CUDA/OPENCL/ISPC code).
>
> It looks like there is enough interest for me to go find a
> bibliography for this project.
>
> -- Andy
>
> On Wed, Mar 21, 2012 at 2:47 PM, Aaron Meurer <asmeu...@gmail.com> wrote:
>> I wonder if we can take advantage of the low-level interpretation from
>> a compiler to make the parsing easier, for example, LLVM's
>> intermediate language.  I haven't really studied that much, so I don't
>> know if it would really be useful or not.
>>
>> Aaron Meurer
>>
>> On Wed, Mar 21, 2012 at 9:36 AM, Matthew Rocklin <mrock...@gmail.com> wrote:
>>> I think you're right that rebuilding everything that goes into a compiler is
>>> far too much work for a GSoC student (or really this whole community). I
>>> think that Andy is suggesting more local edits - surface level only. Lets
>>> just walk through the code and see what simplifications we can make using
>>> SymPy that gcc couldn't know about. We'll leave the actual compilation to
>>> gcc/gfortran/javac/etc....
>>>
>>> If we encounter something like a for loop we probably ignore it and just
>>> look at what we can do to the expressions inside. We don't need to
>>> understand all of the code, we're just trying to improve small pieces of
>>> it.
>>>
>>> I don't think that code compilation should be a project though, I think that
>>> parsing should be. I think that Andy's idea becomes feasible once SymPy can
>>> read other code. Andy's idea is only one possible result of this though. A
>>> good parsing module could make SymPy useful in a lot of new ways.
>>>
>>> Later today I'll put code parsing on the ideas page (if someone doesn't beat
>>> me to it).
>>>
>>>
>>> On Wed, Mar 21, 2012 at 2:26 AM, Joachim Durchholz <j...@durchholz.org> 
>>> wrote:
>>>>
>>>> Am 20.03.2012 18:35, schrieb Andy Ray Terrel:
>>>>
>>>>> Well I was thinking more of taking a piece of c code, but it could be
>>>>> take a python function, grab the code object and manipulate that.
>>>>>
>>>>> What I really want is to play around with symbolic code optimizations
>>>>> and since we have quite a few tools to go from symbolics to code, it
>>>>> seems easy to do simple things in the other directions.
>>>>
>>>>
>>>> Real (non-toy) code contains extra stuff for handling error conditions,
>>>> optimizing memory usage, etc.
>>>> Extracting the real logic from all that sounds like it would be really,
>>>> really hard.
>>>>
>>>> The other question is: what do you want to optimize for?
>>>> Space? Time? Code size?
>>>> What's your execution model - number of subroutine calls? Number of
>>>> operator calls? How do you estimate the number of rounds spent in a loop 
>>>> (or
>>>> the depth of a recursive call)? How do you estimate the size of data
>>>> structures created? How do you determine how long some data structure will
>>>> live?
>>>>
>>>> Not all of the questions are relevant for all optimization goals.
>>>> This is going to be a good GSoC project if a goal is found that does not
>>>> require answers to the ultra-hard questions. So the project should not be
>>>> "optimize C functions" (that's a task for multiple lifetimes), but 
>>>> something
>>>> more specific. With an implementation strategy, and an eye towards why this
>>>> isn't going to require solving the halting problem or similarly hard 
>>>> things.
>>>>
>>>>
>>>> > I realize
>>>>>
>>>>> this isn't super well formed but after seeing a number of these
>>>>> symbolic executor papers, I think it is probably a good way to go.
>>>>
>>>>
>>>> I haven't seen these papers. If they pick specific things that don't
>>>> require doing hard stuff, this could be fun.
>>>> Extra points if it is going to make SymPy more useful.
>>>>
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google Groups
>>>> "sympy" group.
>>>> To post to this group, send email to sympy@googlegroups.com.
>>>> To unsubscribe from this group, send email to
>>>> sympy+unsubscr...@googlegroups.com.
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/sympy?hl=en.
>>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "sympy" group.
>>> To post to this group, send email to sympy@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> sympy+unsubscr...@googlegroups.com.
>>> For more options, visit this group at
>>> http://groups.google.com/group/sympy?hl=en.
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "sympy" group.
>> To post to this group, send email to sympy@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> sympy+unsubscr...@googlegroups.com.
>> For more options, visit this group at 
>> http://groups.google.com/group/sympy?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sympy" group.
> To post to this group, send email to sympy@googlegroups.com.
> To unsubscribe from this group, send email to 
> sympy+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/sympy?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to sympy@googlegroups.com.
To unsubscribe from this group, send email to 
sympy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to