CISC 879 First Homework, due Feb 20
  1. AT2 lower bound agrument for the grid computer model:

    Consider matrix multiplication, the problem to multiply two n by n matrices, C <- A*B, where A = (ai,j), B = (bi,j), and C = (ci,j), with indices i,j in the range [0,1,...n-1]. The output C is defined by ci,j = ai,0*b0,j + ai,1*b1,j + ai,2*b2,j + ... + ai,n-1*bn-1,j.

    Matrix multiplication involves n3 multiplications and n3 - n2 additions when computed directly by this formula.

    Determine an k, as large as possible, such that AT2 is in Ω(nk) for matrix multiplication. Prove your lower bound. i.e. explain why it is correct. You may assume the problem is over GF(2). That means that the matrix entries are all 0 or 1 and the arithmetic is mod 2 (for instance, 1 + 1 = 0).

  2. An MPI example program:
    1. Compile and run trap.c
      Hints:
      cp ~saunders/879/trap.c .
      locate mpich
      [location of mpich]/bin/mpicc trap.c
      [location of mpich]/bin/mpirun a.out -np 4 [-machinefile nodes]
      
    2. Modify trap.c so that it correctly computes the trapezoid formula for n equal width trapezoids even when p does not evenly divide n.

    3. Compare the times and correctness for your version of trap when run with 3, 4, 7, and 8 processes on one of these multiprocessors: stimpy, strauss, the car cluster, the nsfri cluster. If the results are not satisfactory, you might try changing b to 1000 and n to 220.


Notes concerning your lecture

For your lecture during the first half of the course, the checklist is as follows:

  1. Choose the topic and plan a 45 minute presentation on it.
  2. Read basic material on the topic, such as in Foster's online textbook. Then find references and explore the topic in more depth.
  3. Organize and summarize what you learn so that you can make a clear and conherent presentation. Select a subset of the material you have read to assign as reading to the class. This should be about 20 +- 5 pages. If some sources are not readily available online, make printouts for the class.
  4. Prepare a short homework problem on your topic for the class. It should be possible to do this assignment based on understanding what you have told us in class. In particular this means you may have to emphasize certain details of your topic rather than give a high level overview, so that a specific assignment may be given. It should be possible for a person to complete the assignment in about one hour. Where possible the assignment should be a programming task or a statement to prove. In rare cases it may take the form of a quiz to be given the following week.
  5. Review your proposed reading assignment and homework problem with me on Thursday morning between 10 and 12am.
  6. Same Thursday, give your presentation in class: 45 minutes plus 5 for questions.
  7. Following week receive homework, grade it.
  8. Second following Thursday, between 10 and 12 am give grade report to me and we briefly review the grading.