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.
Define all parameters at the top of run.sh
.
./run.sh
Then check data.csv
(or whichever output file you specified) for the results.
- 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.
You must have Intel Parallel Studio XE installed, which will provide Cilk Plus and MKL.
David Eliahu, Omer Spillinger
Professor Armando Fox, Professor James Demmel, Benjamin Lipshitz, Oded Schwartz, Shoaib Kamil