[ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-01-12 Thread Dragan Djuric
I am pleased to announce a first public release of new *very fast *native matrix and linear algebra library for Clojure based on ATLAS BLAS. Extensive *documentation* is at http://neanderthal.uncomplicate.org See the benchmarks at http://neanderthal.uncomplicate.org/articles/benchmarks.html. Nea

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-01-12 Thread Mikera
Looks cool Dragan, thanks for sharing! I would strongly encourage you to wrap this up and make it work as a core.matrix implementation. That would considerably improve interoperability with other libraries / tools in the Clojure numerical space e.g. it could be used as a drop-in replacement for

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-01-12 Thread Dragan Djuric
> > > b) It looks like you are consistently about 2x faster than JBlas for large > matrices - wondering what is causing the difference, is that because of > copying? > That is the most probable cause, but I am not sure whether it is the only one. > c) Would be interesting to see a few other

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-01-13 Thread Christopher Small
Awesome project! I'll echo the encouragement towards having Neanderthal implement the core.matrix protocols. You'll have much higher adoption if folks know they can just plug your tool in by changing a single line setting the underlying implementation to Neanderthal. And as Mikera points out, i

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-01-13 Thread Dragan Djuric
It would be nice if that would be that easy. However, I am sceptical... On Tuesday, January 13, 2015 at 8:13:36 PM UTC+1, Christopher Small wrote: > > Awesome project! > > I'll echo the encouragement towards having Neanderthal implement the > core.matrix protocols. You'll have much higher adoptio

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-01-13 Thread Sam Raker
I'd like to politely add to the calls for this to become a pluggable core.matrix backend. On Tuesday, January 13, 2015 at 4:38:22 PM UTC-5, Dragan Djuric wrote: > > It would be nice if that would be that easy. However, I am sceptical... > > On Tuesday, January 13, 2015 at 8:13:36 PM UTC+1, Christ

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-01-13 Thread adrian . medina
Ditto to the others. This looks great, and I have a lot of core.matrix compatible code I'd love to test it out against! Thanks for releasing this! On Tuesday, January 13, 2015 at 5:07:51 PM UTC-5, Sam Raker wrote: > > I'd like to politely add to the calls for this to become a pluggable > core.m

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-01-13 Thread Mikera
It works for the development branch of Incanter 2.0 - which is a pretty significant project with a lot of matrix code. You can switch between Clatrix (native BLAS via JBlas), persistent vectors (regular Clojure vectors) and vectorz-clj (pure JVM code) transparently. I think it would be the sam

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-17 Thread Dragan Djuric
Version 0.2.0 has just been released to Clojars New features: * implemented BLAS support for floats * implemented fmap!, freduce, and fold functions for all existing types of matrices and vectors Changes: No API changes were required for these features. On Tuesday, January 13, 2015 at 2:13:13

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-17 Thread Christopher Small
First of all, nice work :-) In the docs you keep referring to core.matrix as though it was a particular implementation, saying things like "X times faster than core.matrix". This is misleading; core.matrix is an abstract API, which can have many implementations. Saying something is faster than it

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-17 Thread Daniel
Just another +1 to include a core.matrix implementation -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first p

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-18 Thread Fergal Byrne
Could I suggest someone who wants a core.matrix integration simply does the protocol implementation and submits it to Dragan as a PR? On Thu, Jun 18, 2015 at 1:20 AM, Daniel wrote: > Just another +1 to include a core.matrix implementation > > -- > You received this message because you are subscr

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-18 Thread Mars0i
There are plenty of votes for a core.matrix wrapper to this great project, but I'll add one point. I came to Clojure from Common Lisp. I had a neural network application in Common Lisp that didn't use matrices, and I decided I needed to rewrite it from scratch using matrices. Common Lisp ha

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-19 Thread Dragan Djuric
I understand the concept core.matrix tries to achieve, and would be extremely happy if I thought it would be possible, since I would be able to use it and spend time on some other stuff instead of writing C, JNI, OpenCL and such low-level code. Thanks for the pointer to your neural networks expe

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-19 Thread Mars0i
Neanderthal seems very cool. You've clearly put a *lot* of work into this. I for one am thankful that you've made available what is a very nice tool, as far as I can see. I don't think there's necessarily a conflict concerning core.matrix, though. You may not want to write a core.matrix wrap

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-19 Thread Dragan Djuric
That is what I think from the start of the discussion, and I agree with you. The only thing is that i am almost certain that the performance gain will be very easy to reverse, just like in the case of Clatrix. Because it is built on top of blas and atlas, which is the the de facto standard and a

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-19 Thread Matt Revelle
On Friday, June 19, 2015 at 4:57:32 AM UTC-4, Dragan Djuric wrote: > > I do not even claim that an unified api is not possible. I think that to > some extent it is. I just doubt in core.matrix eligibility for THE api in > numerical computing. For it makes easy things easy and hard things > impos

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-19 Thread Christopher Small
I see now Dragan; you're concerned not about whether easily implementing and swapping in/out implementations of core.matrix is possible, but whether it can be done while maintaining the performance characteristics of Neanderthal, yes? That did not come through in your earlier comments in this threa

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-20 Thread Dragan Djuric
On Friday, June 19, 2015 at 11:17:02 PM UTC+2, Christopher Small wrote: > > I see now Dragan; you're concerned not about whether easily implementing > and swapping in/out implementations of core.matrix is possible, but whether > it can be done while maintaining the performance characteristics of

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-20 Thread Dragan Djuric
It is difficult to say exactly, since the documentation is almost non-existent, which is especially bad for a standard API. Please see my answer to Christopher for more elaboration. On Friday, June 19, 2015 at 10:45:53 PM UTC+2, Matt Revelle wrote: > > On Friday, June 19, 2015 at 4:57:32 AM UTC

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-20 Thread Mars0i
Dragan, this just occurred to me--a small comment about the slow speed that I reported from clatrix, which you mentioned earlier. I'm not sure whether the slow speed I experienced on 500x500 matrices itself provides eviden

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-21 Thread Matt Revelle
Mike (core.matrix author) has been adjusting the API according to his needs and those of other users. I don't think anyone will disagree with the statement that good APIs are shaped by usage and keeping things simple. That said, I see no reason why there shouldn't be a common API which is highe

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-21 Thread Mikera
On Saturday, 20 June 2015 08:43:39 UTC+1, Dragan Djuric wrote: > > On Friday, June 19, 2015 at 11:17:02 PM UTC+2, Christopher Small wrote: >> >> I see now Dragan; you're concerned not about whether easily implementing >> and swapping in/out implementations of core.matrix is possible, but whether

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-22 Thread Dragan Djuric
On Monday, June 22, 2015 at 2:02:19 AM UTC+2, Mikera wrote: > > > There is nothing fundamentally wrong with BLAS/LAPACK, it just isn't > suitable as a general purpose array programming API. See my comments > further below. > I was discussing it from the *matrix API* perspective. My comments fo

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-22 Thread Mikera
Hi Dragan, The situation as I see it: - You've created a matrix library that performs well on one benchmark (dense matrix multiplication). - Neanderthal meets your own personal use cases. Great job! - Neanderthal *doesn't* fit the use cases of many others (e.g. some need a portable pure JVM imp

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-22 Thread Dragan Djuric
Hi Mike, On Monday, June 22, 2015 at 1:56:46 PM UTC+2, Mikera wrote: > > Hi Dragan, > > The situation as I see it: > - You've created a matrix library that performs well on one benchmark > (dense matrix multiplication). > It performs well on all benchmarks, even BLAS 1 vector stuff is faster th

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-22 Thread Dragan Djuric
Just a quick addition, if it is still not clear what I mean regarding the documentation. Look at this fairly recent question on stack overflow: http://stackoverflow.com/questions/19982466/matrix-multiplication-in-core-matrix On Tuesday, January 13, 2015 at 2:13:13 AM UTC+1, Dragan Djuric wrote: >

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-22 Thread Mars0i
It may be that there's agreement on everything that matters. Dragan, you've said that you wouldn't mind others integrating Neanderthal into core.matrix, but that you don't want to do that. That you are willing to work with others on this is probably all that's needed. People may have questio

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-22 Thread Dragan Djuric
> > > (For the record I don't think it's fair to criticize core.matrix as not > being an API because the documentation is limited. The API is in the > protocols, etc. > The problem with that view (for me, anyway) is that only a portion of an API could be captured with protocols, and that is even

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-22 Thread Christopher Small
Just a couple of comments: As I was typing, Mars0i's message came in, with much of much what I wanted to say about documentation, but I'll reiterate a couple of key points: You can have an intuitive API that's poorly documented, just as it's possible to have a terrible API with great documentatio

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-22 Thread Dragan Djuric
> > > As for performance benchmarks, I have to echo Mike that it seemed strange > to me that you were claiming you were faster on ALL benchmarks when I'd > only seen data on one. Would you mind sharing your full benchmarking > analyses? > I think this might be a very important issue, and I am

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-22 Thread Christopher Small
For benchmarking, there's this: https://github.com/mikera/core.matrix.benchmark. It's pretty simple though. It would be nice to see something more robust and composable, and with nicer output options. I'll put a little bit of time into that now, but again, a bit busy to do as much as I'd like here

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-22 Thread Dragan Djuric
So, there are exactly two measurements there: matrix multiplication and vector addition for dimension 100 (which is quite small and should favor vectorz). Here are the results on my machine: Matrix multiplications are given at the neanderthal web site at http://neanderthal.uncomplicate.org/arti

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-22 Thread Christopher Small
Well, we also weren't claiming to win "ALL benchmarks" compared to anything :-) But your point is well taken, better benchmarking should be pretty valuable to the community moving forward. Chris On Mon, Jun 22, 2015 at 12:10 PM, Dragan Djuric wrote: > So, there are exactly two measurements th

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-22 Thread Dragan Djuric
core.matrix claims that it is fast on its project page (with which I agree in some cases). I expected from that, and from the last couple of your posts in this discussion, that there are some concrete numbers to show, which I can't find. My claim to win "ALL benchmarks" (excluding maybe tiny ob

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-22 Thread A
Here's another benchmark for comparison: https://code.google.com/p/redsvd/wiki/English -A On Monday, June 22, 2015 at 12:27:57 PM UTC-7, Dragan Djuric wrote: > > core.matrix claims that it is fast on its project page (with which I agree > in some cases). I expected from that, and from the las

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-06-22 Thread Dragan Djuric
As it is a *sparse matrix*, C++ library unavailable on JVM, I don't consider it relevant for comparison as these are really apples and pineapples. For now, at least. On Tue, Jun 23, 2015 at 12:13 AM, A wrote: > > Here's another benchmark for comparison: > https://code.google.com/p/redsvd/wiki/En

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-10-23 Thread Dragan Djuric
Neanderthal 0.4.0 has just been released with OpenCL-based GPU support and pluggable engines. http://neanderthal.uncomplicate.org On Tuesday, June 23, 2015 at 12:39:40 AM UTC+2, Dragan Djuric wrote: > > As it is a *sparse matrix*, C++ library unavailable on JVM, I don't > consider it relevant f

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-10-23 Thread Gregg Reynolds
I'm glad to see that you and Mike are making a productive dialog out of what could have gone the other way. It's a credit to you both. Simple question wrt documentation. The Great White Whale of open source software. Suppose core.matrix had insanely great documentation. What difference would

Re: [ANN] Neanderthal, a fast, native matrix and linear algebra library for Clojure released + call for help

2015-10-25 Thread Dragan Djuric
WRT their documentation, I do not think it means much for me now, since I do not need that library and its functionality. So I guess the integration depends on whether 1) it is technically viable 2) someone needs it I will support whomever wants to take on that task, but have no time and need t