Lably
Skip to content

Apache Mahout

  • 3 min read
  • 2 chapters

Related on Lably

Through Distributed computing, Machine learning and Linear algebra

Features

Samsara

Apache Mahout-Samsara refers to a Scala domain specific language (DSL) that allows users to use R-Like syntax as opposed to traditional Scala-like syntax. This allows user to express algorithms concisely and clearly.

<span id="mwIg"></span><span class="kd" id="mwIw">val</span><span class="w" id="mwJA"> </span><span class="nc" id="mwJQ">G</span><span class="w" id="mwJg"> </span><span class="o" id="mwJw">=</span><span class="w" id="mwKA"> </span><span class="nc" id="mwKQ">B</span><span class="w" id="mwKg"> </span><span class="o" id="mwKw">%*%</span><span class="w" id="mwLA"> </span><span class="nc" id="mwLQ">B</span><span class="p" id="mwLg">.</span><span class="n" id="mwLw">t</span><span class="w" id="mwMA"> </span><span class="o" id="mwMQ">-</span><span class="w" id="mwMg"> </span><span class="nc" id="mwMw">C</span><span class="w" id="mwNA"> </span><span class="o" id="mwNQ">-</span><span class="w" id="mwNg"> </span><span class="nc" id="mwNw">C</span><span class="p" id="mwOA">.</span><span class="n" id="mwOQ">t</span><span class="w" id="mwOg"> </span><span class="o" id="mwOw">+</span><span class="w" id="mwPA"> </span><span class="p" id="mwPQ">(</span><span class="n" id="mwPg">ksi</span><span class="w" id="mwPw"> </span><span class="n" id="mwQA">dot</span><span class="w" id="mwQQ"> </span><span class="n" id="mwQg">ksi</span><span class="p" id="mwQw">)</span><span class="w" id="mwRA"> </span><span class="o" id="mwRQ">*</span><span class="w" id="mwRg"> </span><span class="p" id="mwRw">(</span><span class="n" id="mwSA">s_q</span><span class="w" id="mwSQ"> </span><span class="n" id="mwSg">cross</span><span class="w" id="mwSw"> </span><span class="n" id="mwTA">s_q</span><span class="p" id="mwTQ">)</span>

Backend Agnostic

Apache Mahout's code abstracts the domain specific language from the engine where the code is run. While active development is done with the Apache Spark engine, users are free to implement any engine they choose- H2O and Apache Flink have been implemented in the past and examples exist in the code base.

GPU/CPU accelerators

The JVM has notoriously slow computation. To improve speed, “native solvers” were added which move in-core, and by extension, distributed BLAS operations out of the JVM, offloading to off-heap or GPU memory for processing via multiple CPUs and/or CPU cores, or GPUs when built against the ViennaCL library. ViennaCL is a highly optimized C++ library with BLAS operations implemented in OpenMP, and OpenCL. As of release 14.1, the OpenMP build considered to be stable, leaving the OpenCL build is still in its experimental POC phase.

Recommenders

Apache Mahout features implementations of Alternating Least Squares, Co-Occurrence, and Correlated Co-Occurrence, a unique-to-Mahout recommender algorithm that extends co-occurrence to be used on multiple dimensions of data.

Sign in to keep reading

One more chapter is free with a Lably account.

More in Computing and information technology