Hacker News new | past | comments | ask | show | jobs | submit login

We do scientific computing on the jvm (mainly deep learning). We wrote: https://nd4j.org

which immitates numpy and co on the jvm with builtin gpu support and linking against blas like other frameworks. We also hand implemented a lot of ufuncs for you in c++. It's mainly oriented towards dense atm though.

Sparse will come at some point but it hasn't been a big feature for us.

It uses: https://github.com/bytedeco/javacpp underneath.

Happy to answer questions!




Yeah, I've actually heard about ND4J and was interested in learning about it. But as I said in my parent post, Java seems (from the outside) as this huge unwieldy language that is hard to get into.

What could I do with Java/ND4J in scientific computing that I couldn't do with other packages, or that is much easier/better done on the JVM?


Yeah and it might be. We're targeting the big data folks with this framework frankly.

Anything that does static typing might be overkill for just running matrix math.

I created nd4j with the intent of having the same primitives and programming model accessible to me for production environments and also affording me the same privileges of optimizing things in c with nice clean abstractions.

scala MIGHT be easier which is why we created nd4s: https://github.com/deeplearning4j/nd4s

The JVM and the developers who use it are mainly people with salaries soliving a very specific class of problems not people publishing papers. The one exception to this I've seen is the NLP community. I'd argue it's just a different audience who needs the things the jvm has, eg: static typing, integrations with libraries, etc.

For large codebases you really can't beat jvm tooling..if you just need a click repl and throwaway code? It might be a bit much if you don't already know it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: