Skip to content

dose78/CARMA

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