Just a side comment, Dragan, if you don't want to be compared against some
other tech, it might be wise to not make the subtitle of a release "X times
faster than Y". Make the defining feature of a release that it's better
than some other tech, and the proponents of that tech will probably start
to get a bit irritated.

And I think the distinction made here about floats vs doubles is very
important. We can all construct benchmarks that show tech X being faster
than tech Y. But if I am evaluating those things I really want to know why
X is faster than Y. I want to know what tradeoffs were made, what
restrictions I have in using the faster tech, etc. Free performance gains
are very rare, so the moment I see "we are X times faster" I immediately
start looking for a caveats section or a rationale on why something is
faster. Not seeing that, or benchmark documentation, I almost immediately
consider the perf numbers to be hyperbole.

I know practically nothing about either one of these projects, so I'll stop
commenting here, but comparisons of tech as tag-lines is rarely a good
idea.

Timothy

On Mon, Mar 14, 2016 at 9:19 AM, Dragan Djuric <draga...@gmail.com> wrote:

>
>> 2) I disagree with. Most real world data science is about data
>> manipulation and transformation, not raw computation. 1% of people need to
>> optimise the hell out of a specific algorithm for a specific use case, 99%
>> just want convenient tools and the ability to get an answer "fast enough".
>>
>
> And most of those people are quite happy with R and Python and don't care
> about Clojure. I, on the other hand, am perhaps in the other 1%, but my
> needs are also valid (IMHO), especially when I am prepared to do the
> required work to satisfy them myself.
>
>
>> But if you only offer native and GPU dependencies then you aren't really
>> offering an agnostic API. Won't even work on my machine..... could you add
>> Windows support? Maybe you want to add pure JVM implementations as well?
>> And for Clojure data structures? What about ClojureScript support? Sparse
>> arrays? Oh, could you maybe support n-dimensional arrays? Datasets?
>>
>
> Native and GPU are already available *now* and work well. Windows support
> is there, you (or someone else) need to compile the Windows binaries and
> contribute them. Pure JVM implementation is quite easy to add, since the
> majority of Neanderthal is not only pure Java, but  Clojure; the only thing
> I haven't implement (yet) is a pure Java BLAS engine. I already wrote a
> (much harder) GPU BLAS implementation from scratch, so compared to that
> pure Clojure BLAS is like a walk in the park. If/when I need those, the
> infrastructure is already there to support it quite easily, without API
> changes. ClojureScript support is more complex, but mostly a matter of
> putting work weeks into it, rather than as a technical challenge, since by
> now I know what causes most problems and how to solve them. Of course, I
> won't do that just as an exercise, but only when the need arises (if ever).
> Of course, I'll welcome quality PRs.
>
>
>> Interesting. I don't recall you posting such benchmarks, apologies if I
>> missed these.
>>
>> I'd be happy to benchmark myself if I could get Neanderthal to build. I
>> don't believe 9x though... this operation is usually bound by memory
>> bandwidth IIRC
>>
>
> OK, to be more precise it is around 8.5x with floats. With double
> precision (which I do not need, and probably neither do you in your work on
> deep learning) it  is "just" 4x :)
>
>
>>
>>
>>>
>>>
>>>> If anyone has other ideas / a better strategy I'd love to hear, and I
>>>> welcome a good constructive debate. I'm not precious about any of my own
>>>> contributions. But I do genuinely think this is the best way forward for
>>>> Clojure data science overall, based on where we are right now.
>>>>
>>>
>>> I would like to propose a strategy where more love is given to the
>>> actual libraries (incanter is rather indisposed and stagnant IMO) that
>>> solve actual problems instead of trying to unify what does not exist
>>> (yet!). Then, people will use what works best, and what does not work will
>>> not be important. That's how things go in open-source...
>>>
>>>
>>
>> core.matrix already exists, is widely used and already unifies several
>> different implementations that cover a wide variety of use cases. It
>> provides an extensible toolkit that can be used either directly or by
>> library / tool implementers. It's really very powerful, and it's solving
>> real problems for a lot of people right now. It has the potential to make
>> Clojure one of the best languages for data science.
>>
>
> I agree that this sounds great, but, come on... It sounds like a marketing
> pitch. Clojure currently doesn't offer a single data science library that
> would be even a distant match to the state of the art. Nice toys - sure. I
> hope you didn't mean Incanter?...
>
>
>> Don't get me wrong, I think Neanderthal is a great implementation with a
>> lot of good ideas. I'd just like to see it work well *with* the core.matrix
>> API, not be presented as an alternative. The Clojure data science ecosystem
>> as a whole will benefit if we can make that work.
>>
>
> That is up to people that would find that useful. I support them.
>
> BTW, each Neanderthal structure is a sequence, so, technically, it already
> supports core.matrix.
>
> BBTW, I wish only the best to core.matrix, and think you do a great work
> with it. Also, I suppose we are leading a technical discussion here, so I
> am not getting you wrong and I appreciate your appreciation of Neanderthal
> technical aspects.
>
> --
> 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 post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
“One of the main causes of the fall of the Roman Empire was that–lacking
zero–they had no way to indicate successful termination of their C
programs.”
(Robert Firth)

-- 
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 post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to