[SciPy-Dev] GSOC 2015 projects

Ralf Gommers ralf.gommers at gmail.com
Tue Mar 24 16:54:17 EDT 2015


Hi Ian,


On Tue, Mar 24, 2015 at 1:22 AM, Ian Henriksen <
insertinterestingnamehere at gmail.com> wrote:

> Hi all,
>
> I'm putting together an application for GSOC 2015, and, although the
> deadline is approaching fast, I would still appreciate your feedback on a
> few of my ideas.
>

Great to see your interest.


> I am a masters student studying mathematics at Brigham Young University.
> Thus far my primary contribution to SciPy has been the Cython API for BLAS
> and LAPACK (see https://github.com/scipy/scipy/pull/4021).
>
> My research is in Isogeometric Analysis, i.e. finite element analysis on
> spline curves. My open source work and research at BYU have given me a
> great deal of experience with Python and Cython, but I am also familiar
> with C, C++, and Fortran. As such, I have been reflecting on projects that
> would be best suited to my skill set, as well as most beneficial to SciPy.
>
> I'm curious to know which of the following projects would be of greatest
> interest to the SciPy community:
>
> 1. Wrapping the PROPACK library for sparse linear algebra and using it for
> sparse SVD computation in scipy.sparse. There has been some initial work on
> f2py wrappers for PROPACK at https://github.com/jakevdp/pypropack, though
> it appears the wrappers are still incomplete.
>

This is definitely a feature that's regularly requested. On an older post
on this mailing list a factor of 10 faster than ARPACK is mentioned,
benchmarks at
https://jakevdp.github.io/blog/2012/12/19/sparse-svds-in-python/ say a
factor ~5. Here is an old issue requesting addition of a wrapper to Scipy:
https://github.com/scipy/scipy/issues/857

Some feedback from Jake on the state of his wrapper and whether this would
fill a whole GSoC would be great to have.

2. Implementing an improved library for spline operations in SciPy. I am
> very familiar with the different refinement techniques used in CAD (knot
> insertion, degree elevation, etc.) and could implement a library that would
> be able to perform them all. My ideal here would be to write a C++ or
> Fortran library to do this and then wrap it via Cython. The emphasis would
> be primarily on writing code for refinement and evaluation that is both
> fast and general. I could include code for spline subdivision methods as
> well.
>

Also often discussed, is one of the listed GSoC ideas, and one of the
topics in Scipy that need a major make over. It's not clear to me how well
your proposed C++/Fortran library would mesh with the Python/Cython splines
code that Evgeni and Pauli have in progress - that would need some
discussion.

(https://github.com/scipy/scipy/pull/3174 seems to have stalled)


> 3. Adding support for Cython to both f2py and numpy.distutils. The goal
> here would be to allow f2py to generate cython-compatible wrappers from
> existing pyf files. I would also modify numpy.distutils so it could compile
> Cython files.
>

The f2py part sounds potentially interesting, I'm a bit worried about
mentoring power here though (f2py is close to unmaintained). The
numpy.distutils part seems to me to be of lower prio - Cython itself has
distutils support, and things like tools/cythonize.py in Scipy work fine.

4. Wrap ffts (https://github.com/anthonix/ffts) and use it as an
> alternative to FITPACK in scipy.fft for use cases where it is faster.
>

Benchmarks look great, but this also looks like a potential build nightmare
(dynamically generated code, a JNI interface, no Windows builds?).


>
> Which of these projects would be most appreciated? I certainly want to be
> able to make a valid and, more importantly, useful contribution.
>

All of these ideas could make a nice GSoC project, but I suspect (1) or (2)
would be preferable over (3) or (4).

Cheers,
Ralf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20150324/df7bd4cf/attachment.html>


More information about the SciPy-Dev mailing list