Hi Sameer,
Thanks for your comments. You've given me a lot to think about! Some
comments below.
> 1. Could you elaborate what measures you'll be taking to help future plug-in
> writers with writing more plug-ins for nmatrix? Will there be something in
> the code that will enforce a particular workflow, architecture and style for
> future plug-ins?
Certainly my work can serve as a template for other extensions. Though
one issue I just thought of is that my work will be done in the same
repository as the main nmatrix, but there will be additional obstacles
for an extension author who wants to work in their own repository:
they may need access to the nmatrix header files, but rubygems doesn't
provide for installing C header files. I am not sure of an elegant way
to solve this.
> 2. NMatrix has long term objectives of supporting multiple libraries that
> can do the same thing. For example, LAPACK or Accelerate for Linear Algebra.
> Say I want to leverage the benefits of both by choosing certain functions
> from each (assuming that there are nmatrix wrappers for both), how can I do
> that?
It seems like everybody in this discussion thinks that more backends
is better, but I'm not convinced of this. All other things being
equal, it's better to have more choices, but nmatrix is a small
project with limited resources, and for every option you add you pay a
price in terms of making the code more complex and difficult to
maintain.
That said, if we do end up having multiple linear algebra extensions,
I don't really see your scenario (choosing specific functions from
multiple backends) as a common use-case.
> 3. What interface will you be defining to let users easily load and unload
> plug-ins (or extensions, whatever you call them)?
Like above, I'd like to understand the use case for this before I
think about it much. For extensions that provide different
functionality, you can just load both of them like normal. For
extensions that provide similar, or conflicting, functions, just use
one of them. I'm not convinced we need to accommodate unloading.
> 4. Magdalen Berns, in previous year's GSOC has made a FFTW interface to
> nmatrix (
https://github.com/thisMagpie/fftw). Currently it requires some
> effort to install. Could you further demonstrate your nmatrix extension
> system by incorporating Magdalen's FFTW wrapper as another extension for
> nmatrix? This would make nmatrix twice as usable and better equipped for the
> real world. Also this would be a great demo of your nmatrix extension
> system. I dont think this should be too difficult either because most of the
> work is already done.
I will take a look at this.
> 5. You're saying you'll be using LAPACKE. But LAPACKE is quite different
> from the current combination of CLAPACK/ATLAS. When I submitted my proposal
> I was told that we should go ahead with CLAPACK/ATLAS first for backward
> compatibility. Could you make it clear if you're going to replace the
> current CLAPACK/ATLAS with LAPACKE, or are you going to create two separate
> extensions, one with LAPACKE and the other with CLAPACK/ATLAS?
My hope is that the transition between ATLAS and LAPACKE will be
seamless and that no one will have to change either their code or
their build environment (I want to emphasize that my LAPACKE
proof-of-concept code still supports ATLAS, it's just that it doesn't
use any ATLAS-specific code). If this is the case then it would be my
preference to remove the current ATLAS code entirely, but I don't
think everyone else is convinced on this yet. I'm sure there will be
more discussion of this.
your link doesn't work for me.
Will
>
> If you have any queries please let me know.
>
> Cheers!
>
> On Tuesday, April 28, 2015 at 7:32:51 AM UTC+5:30, Will Levine wrote:
>>
>> Hi all,
>> I've been accepted to the Google summer of code program to work on
>> SciRuby and nmatrix this summer. I'm a physics PhD student at Carnegie
>> Mellon University. My plan for the summer is to make nmatrix easier to
>> install and use by allowing it to be used with a greater variety of
>> external linear algebra libraries, or, if desired, without any
>> external libraries at all. I've posted my full proposal here:
>>
https://github.com/wlevine/nmatrix/wiki/Summer-of-Code-2015-proposal
>>
>> I'll be posting more to the list to get feedback on some of the some
>> of the ideas I'm proposing, so y'all will hear more from me, but for
>> now I just wanted to introduce myself.
>>
>> I look forward to working with everyone!
>>
>> Will
>