Portfolio for CPSC 521

Assignments

  1. Assignment 1 (10%) -- Initial n-body program
  2. Assignment 2 (15%) -- N-body program with granularity, and matrix powers adaptation
  3. Assignment 3 (5%) -- Performance modeling
  4. Assignment 4 (15%) -- Visualization of n-body program, and communication structure
  5. Assignment 5 (10%) -- Algorithm critique (solving linear algebra problems in GPU registers)
  6. Assignment 6 (15%) -- Language critique (OpenCL)
  7. Assignment 7 (10%) -- Exploring MPI (with better matrix multiplication)

Assignment downloads (also on specific pages)

Note: most source archives contain git repositories, if you're curious. Also, the implementation of MPI used was mpich2-1.4.1p1.

  1. Assignment 1 -- Initial n-body program
  2. Assignment 2 -- N-body program with granularity, and matrix powers adaptation
    • N-body program with granularity
    • Matrix powers adaptation
      • assign2-matrix.tar.gz (2.5 MB): Assignment 2 modified to work with matrices, along with many input files, most randomly generated and graph1 from the Facebook data below.
      • graph-data.txt.gz (212 KB): Raw Facebook data used as an example [J. McAuley and J. Leskovec. Learning to Discover Social Circles in Ego Networks. NIPS, 2012.]. See also the SNAP page. This file was originally called 1912.edges.
      • assign2-matrix-convert.pl.gz (353 bytes): Perl script used to convert the Facebook data into expanded matrix form.
  3. Assignment 3 -- Performance modeling
  4. Assignment 4 -- Visualization of n-body program, and communication structure
    • Visualization of n-body gravity
      • (see assignment 2)
    • Communication/computation MPE visualization
  5. Assignment 5 -- Algorithm critique (solving linear algebra problems in GPU registers)
  6. Assignment 6 -- Language critique (OpenCL)
    • opencl-hello.tar.gz (10 KB): A hello-world program written in OpenCL (decodes a Caesar-cipher encoded string). Based on HelloWorld_Kernel.cl from the AMD SDK and also the first program in the book by Gaster et al (pages 32-38).
  7. Assignment 7 -- Exploring MPI (with better matrix multiplication)
    • matcomm-final.tar.gz (2.2 MB): 776-line C++ source code for matcomm, along with testing utility to compare with matpow
Page generated on Wed Aug 23 19:51:45 2017