Syllabus

Course Meeting Times

Lectures: 1 session / week, 1.5 hours / session

Prerequisites

Linear Algebra and familiarity with MATLAB®.

Brief Description

D4M is a breakthrough in computer programming that combines the advantages of five distinct processing technologies (sparse linear algebra, associative arrays, fuzzy algebra, distributed arrays, and triple-store / NoSQL databases such as Hadoop HBaseTM and Apache AccumuloTM) to provide a database and computation system that addresses the problems associated with Big Data. D4M significantly improves search, retrieval, and analysis for any business or service that relies on accessing and exploiting massive amounts of digital data. Evaluations have shown D4M to simultaneously increase computing performance and to decrease the effort required to build applications by as much as 100x. Improved performance translates into faster, more comprehensive services provided by companies involved in healthcare, Internet search, network security, and more. Less, and simplified, coding reduces development times and costs. Moreover, the D4M layered architecture provides a robust environment that is adaptable to various databases, data types, and platforms.

Software Download

The D4M software can be downloaded from the D4M website. This software also includes code examples used in class.

Primary Citation (Kepner et al, ICASSP 2012)

Kepner, J. et al. "Dynamic Distributed Dimensional Data Model (D4M) Database and Computation System." Presented at ICASSP (International Conference on Accoustics, Speech, and Signal Processing), special session on Signal and Information Processing for "Big Data." (organizers: Bliss & Wolfe), March 25–30, 2012, Kyoto, Japan.

Additional Resource

D4M Baseball Demo by Dylan Hutchison

Goal

To dramatically reduce the time to develop complex algorithms for analyzing large data sets.

Audience

Data Scientists and Algorithm Developers with a strong background in Linear Algebra.

Currently Supported Environments and Databases

MATLAB and GNU Octave (with Octave Java). Triple Stores (AccumuloTM and potentially HBaseTM); SQL (via JTDS bindings).