CARMA is our communication-avoiding recursive matrix multiplication algorithm. We use Cilk for the parallelism, and MKL for the base-case multiplication. Research in progress.
Define the search space by editing sweeper.sh
. Define carma's depth by editing carma.c
.
bash runner.sh <num_trials> <alg...>
ex:
bash runner.sh 5 mkl.c carma.c
Then check data.csv
for your results.
Note: For faster trials, ensure that the correctness test in data_gatherer.c
is commented.
- Add your algorithm to the
algorithms
folder - Ensure that your file implements
void initialize(int m, int k, int n, float* A, float* B, float* C);
and
void multiply(int m, int k, int n, float *A, float *B, float *C);
You must have Intel Parallel Studio XE installed, which will provide Cilk and MKL.
David Eliahu, Omer Spillinger
Professor Armando Fox, Professor James Demmel, Benjamin Lipshitz, Oded Schwartz, Shoaib Kamil