Skip to content

dose78/CARMA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

dc59944 · Jul 10, 2013
Sep 23, 2012
Jun 24, 2013
Jun 26, 2013
Jun 13, 2013
Jun 13, 2013
Jul 8, 2013
Jun 25, 2013
Jun 25, 2013
Jun 25, 2013
Jul 20, 2012
Jul 2, 2013
Jun 13, 2013
Jun 13, 2013
Jun 28, 2013
Jul 10, 2013

Repository files navigation

Overview

CARMA is our communication-optimal parallel recursive rectangular matrix multiplication algorithm. We use Cilk Plus for the parallelism, and MKL for the base-case multiplication. Research in progress: paper, poster.

Setup

Define all parameters at the top of run.sh.

Usage

./run.sh

Then check data.csv (or whichever output file you specified) for the results.

Notes

  • To maintain simplicity, we don't handle the case where the largest dimension is not divisible by two. Therefore, to be safe, please only use multipes of sufficiently large powers of two.
  • The most interesting results are generated by "dot-product-like" dimensions, for example m = n = 64, k = 2^20 (we are multiplying an m x k matrix by a k x n matrix, and the result is m x n).
  • For faster trials, ensure that the correctness test at the bottom of data_gatherer is commented.

Requirements

You must have Intel Parallel Studio XE installed, which will provide Cilk Plus and MKL.

Authors

David Eliahu, Omer Spillinger

Mentors/Supervisors

Professor Armando Fox, Professor James Demmel, Benjamin Lipshitz, Oded Schwartz, Shoaib Kamil

About

Communication-Avoiding Recursive Matrix Multiply

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published