Summer 2011 Research

Current Research

Full Research Description

Week 1 (09/04/11) Week 2 (09/11/11) Week 3 (09/18/11)
Week 4 (09/25/11) Week 5 (10/02/11) Week 6 (10/09/11)
Week 7 (10/16/11) Week 8 (10/23/11) Week 9 (10/30/11)
Week 10 (11/06/11) Week 11 (11/13/11) Week 12 (11/20/11)
Week 13 (11/27/11) Week 14 (12/04/11) Week 15 (11/11/11)
Week 16 (12/18/11) Week 17 (12/25/11)

Week 1 (09/04/11)
Accomplishments

  • Determined that concentrating on integration into LinBox and offline compiler development should be the focus for now.
Goals for Next Week
  • Setup LinBox environment on Capri and begin dissection of OpenCl offline compiler source code.

Week 2 (09/11/11)
Accomplishments

  • Installed Givaro.
  • Began analysis and dissection of OpenCL offline compiler code.
  • Installed newest Boost Libraries.
Goals for Next Week
  • Continue installation of LinBox on Capri and dissection of OpenCL offline compiler code.

Week 3 (09/18/11)
Accomplishments

  • Installed ATLAS.
Goals for Next Week
  • Continue installation of LinBox on Capri and dissection of OpenCL offline compiler code.

Week 4 (09/25/11)
Accomplishments

  • Attended presentation by Omar on CheCL, the transparent check pointing of OpenCL.
  • Installed LinBox on Capri.
  • Began going through LinBox source code and documentation looking for the interface I am to program to and examples of the interface.
Goals for Next Week
  • Continue to go through documentation and code.

Week 5 (10/02/11)
Accomplishments

  • Attended presentation by Will on how not to write a paper and workflow oriented programming.
  • Continued going through LinBox source code and documentation. Found examples and the interface.
  • Began coding the private members of the new OCLDenseDomain class to handle the OpenCL infrastructure.
  • Partially brought the code from the summer that will be reused up to LinBox coding standards.
  • Began contemplating how best to go about configure time platform and device selection.
Goals for Next Week
  • Continue to go through documentation and code.

Week 6 (10/09/11)
Accomplishments

  • Attended presentation by Boyu on the parallel computation of stream lines.
  • Brought code from the summer up to LinBox coding standards.
  • Looked into how the commentator facilities in LinBox work.
  • Refactored code for clarity and ease of debugging.
  • Test compiled test-blas-domain and explored the LinBox build system.
Goals for Next Week
  • Continue to go through documentation and code.

Week 7 (10/16/11)
Accomplishments

  • Attended presentation by Will on more efficient utilization of cloud computing resources.
  • Modified the Makefile for the LinBox tests to include a test-opencl-domain.
  • Encountered problems with compiling test-opencl-domain that were eventually overcome.
  • Removed the functional programming style from the code in favor of an object oriented style. This will make it easier to use OpenCL in the member functions.
  • Refactored code into four parts. The main header, the OpenCL setup functions, the OpenCL memory management functions, and the OpenCL acceleration functions.
Goals for Next Week
  • Code OpenCL memory management functions.

Week 8 (10/23/11)
Accomplishments

  • Added checks for the OpenCL kernels calls to make sure there is enough memory.
  • Added functions for creating matrix buffers on the OpenCL devices and reading the buffers back.
Goals for Next Week
  • Code the calls to the OpenCL kernels.

Week 9 (10/30/11)
Accomplishments

  • Attended presentation by Boyu on improving MapReduce with data patterns.
  • Coded single precision versions of the OpenCL kernels.
  • Coded the OpenCL kernel calls into the OpenCLMatrixDomain member functions.
Goals for Next Week
  • Improve device selection code to handle devices that do not support double precision.

Week 10 (11/06/11)
Accomplishments

  • Attended presentation by Omar on simulating a multi-scale heart on a massively parallel computer.
  • Added checks for double precision support in the setup code.
Goals for Next Week
  • ...

Week 11 (11/13/11)
Accomplishments

  • Commited my code for the first time to the LinBox SVN.
  • Added code to handle the tear down of the OpenCL environment.
  • Completed the OpenCL code for more functions.
  • Tested storing the paths to the kernel files in a seperate header file.
  • Tested the speed of the OpenCL compilers of the various platforms. Nvidia was the fastest and AMD the slowest.
  • Create generic muladd kernels.
Goals for Next Week
  • Continue OpenCL specialization.
  • Look into how the LinBOx build system works.
  • Work on paper for SPIE.
  • Come up with a solution for the ever increasing OpenCL setup overhead.

Week 12 (11/20/11)
Accomplishments

  • Began reading up on and planning the use of the factory design pattern to deal with the OpenCL setup overhead.
  • Began reading up on embedding OpenCL kernels in header files.
Goals for Next Week
  • Continue OpenCL specialization.
  • Look into how the LinBOx build system works.
  • Work on paper for SPIE.
  • Come up with a solution for the ever increasing OpenCL setup overhead.

Week 13 (11/27/11)
Accomplishments

  • Refactored memory management code into templated form.
  • Improved the setup code and refactored into a factory class. Now the kernels only need to be compiled once per program execution.
Goals for Next Week
  • Continue OpenCL specialization.
  • Look into how the LinBOx build system works.
  • Work on paper for SPIE.

Week 14 (12/04/11)
Accomplishments

  • Attended preosentation by Trilce on QCN.
  • Found and fixed a slow memory leak in the memory management code that only became apparent after addition functions started using it.
  • Cleaned up the kernels.
Goals for Next Week
  • Continue OpenCL specialization.
  • Look into how the LinBOx build system works.
  • Work on paper for SPIE.

....