Summer 2011 Research
Current Research
| 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 1 (09/04/11)
Accomplishments
- Determined that concentrating on integration into LinBox and offline compiler development should be the focus for now.
- 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.
- Continue installation of LinBox on Capri and dissection of OpenCL offline compiler code.
Week 3 (09/18/11)
Accomplishments
- Installed ATLAS.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- ...
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.
- 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.
- 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.
- 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.
- Continue OpenCL specialization.
- Look into how the LinBOx build system works.
- Work on paper for SPIE.
....

Docking@Home
GCLab at UDel