From HandWiki
ND4J: N-Dimensional Arrays and Linear Algebra for Java
Original author(s)Adam Gibson, Alex D. Black, V. Kokorin
Initial release15 September 2014; 9 years ago (2014-09-15)
Stable release
0.9.1 / 3 August 2017; 6 years ago (2017-08-03)
Written inJava (programming language), C++
Operating systemLinux, macOS, Windows, Android
Available inEnglish
TypeNatural language processing, deep learning, machine vision
LicenseApache 2.0

ND4J is a scientific computing and linear algebra library, written in the programming language Java, operating on the Java virtual machine (JVM), and compatible with other languages such as Scala, and Clojure.[2][3] ND4J was contributed to the Eclipse Foundation in October 2017.[4]

ND4J is for performing linear algebra and matrix manipulation in a production environment, integrating with Apache Hadoop and Spark to work with distributed central processing units (CPUs) or graphics processing units (GPUs). It supports n-dimensional arrays for JVM-based languages.

ND4J is free and open-source software, released under Apache License 2.0, and developed mostly by the group in San Francisco that built Deeplearning4j.[5] It was created under an Apache Software Foundation license.

Distributed Computing

ND4J's operations include distributed parallel versions. Operation can occur in a cluster and process massive amounts of data. Matrix manipulation occurs in parallel on CPUs or GPUs over cloud computing, and can work in Apache Spark or Hadoop clusters.

Other JVM Scientific Computing Libraries

A usability gap has separated Java, Scala,[6] Kotlin and Clojure programmers from powerful tools in data analysis such as NumPy or Matlab. Libraries like Breeze don't support n-dimensional arrays, or tensors, which are necessary for deep learning and other tasks. Libraries like Colt and Parallel Colt use or have dependencies with GPL in the license, making them unsuitable for commercial use. ND4J was built to address those functional and licenses issues.

See also


External links