Homework:

You can turn in hard copy in class or e-mail the TA by midnight on the due date.

Homework 1(ODT) (pdf) (Due Februrary 28)

The Lie Bracket is not associative so let's skip problem 4.
For problem 3, when it says two large matrices one on each processor, it means, for example, if there were 8 processors, I have 16 matrices. This way one can do the first matmul without communication.

Project Proposal (Due March 6)

Some suggestions:
1. Problems posed on sicortex
2. Work with me on fft on sicortex -- basic algorithms
3. Work with me on fft on sicortex --fancy algorithms
4. Take any code in mpi, glue it in to star-p with sdk and do anything fun
5. analyze with mpi overlapping communication and computation, say matvec or others
6. analyze a very skewed matmul e.g. 100000 x100 times 100x10000
7. take anybody's important matlab code and parallelize with star-p
8. take or develop a python code and paralleze with star-p
9. work with me and some folks doing neural networks and analyze overlap of computation and communication
Also every year there are one or two hardware projects which is another choice if of interest. Okay to take something from you own research, and okay if already written for starters. Main goal is to connect to a VHLL if possible.

Homework 2 (Due Thursday, March 20)

Use the imread command to take your favorite photo into MATLAB: could be yourself, your cat, a nice place you have visited, or something reasonable off the internet.

Warmup: use ppback to put it on ther server, then histogram the r,g,b pixels in parallel,
and use svd to compute a small rank approximation to the r,g,b pixels by
[u,s,v]=svd(a), compresseda=u(:,1:k)*s(1:k,1:k)*v(:,1:k)' for some small k that makes the picture reasonable.

Use the star-p sdk to make the array available to mpi and write a smoother that averages the north, south, east , and west pixels .
Transform the array back to star-p, and then back to matlab for display.


More information on star-p sdk:
Documentation and tutorials on the ISC webpage www.interactivesupercomputing.com can be helpful for using star-p sdk.
In particular, go to the ISC webapge -> Support -> log-in -> then go to Training Resources -> Text Tutorials. Under "Star-P SDK", there are tutorials and example files you can download and modify.
More detailed documentation can be found on the Documentation tab of the support page.

To use sdk, you need to log in to starp.csaill.mit.edu, write a .cc file for the function you want, say, sdk_function.cc (or whatevername.cc).
Compile it by the command 'make' with the Makefile provided here (Courtesy by Raghunathan Sudarshan). It will produce the object file sdk_function.o and the package sdk_function.so
Then go back to the starp software, use the command pploadpackage to load the package, and use it with the command ppinvoke.
Note: You need to include the .so extension in the full path when you load your sdk package in starp.

Project Progress Report (Due Thursday, April 3)

Some midterm and final projects in the past are available on the class websites from previous years.

Homework 3 Python/Star-P(pdf) (Due Thursday, April 24)