<div dir="ltr"><p></p><p></p><p></p><p><font color="#000000"><span style="line-height:20px">Hello DUNE Developers!</span></font></p><p><font color="#000000"><span style="line-height:20px">My name is Sam Skalicky, im a graduate student in computer science at Rochester Institute of Technology (RIT). I’m interested in two of the suggested project ideas, and I think I can contribute to either one of these projects. I’ll describe my background for each of these projects. I am looking for feedback on which of these projects would be more beneficial to the community, as well as suggestions for improvement.</span></font></p>


<p><font color="#000000"><span style="line-height:20px">--------------------------------------------</span></font></p><p><font color="#000000"><span style="line-height:20px">Project 2: Implement better sparse matrix creation through use of an inserter object</span></font></p>


<p><font color="#000000"><span style="line-height:20px">Motivation: I’d like to work on this project since I have previously written a custom sparse matrix implementation in C++ to solve some problems in my research. In my work, I needed to operate on huge (100’s of millions) nodes in a graph, and so we needed a minimalistic solution. I have in-depth experience coding custom c++ STL allocators to use memory-mapping (we didn’t have enough RAM to store the data structures 100’s of GBs). </span></font></p>


<p><font color="#000000"><span style="line-height:20px">The suggested paper has an interesting solution for the specific case when the number of non-zero entries per row/slot is known (or able to be closely estimated). But I am also interested in the performance of the technique, such as how much memory could be over-committed or how much overall performance is degraded when the slot size is underestimated.</span></font></p>


<p><font color="#000000"><span style="line-height:20px">Methodology: To complete this project I propose the following milestones:</span></font></p><p><font color="#000000"><span style="line-height:20px">1.<span style="white-space:pre-wrap">  </span>Implement memory reservation when slot size is given</span></font></p>


</div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div dir="ltr"><p><font color="#000000"><span style="line-height:20px">a.<span style="white-space:pre-wrap">    </span>Assume that slots are never overfilled</span></font></p>

</div></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div dir="ltr"><p><font color="#000000"><span style="line-height:20px">b.<span style="white-space:pre-wrap"> </span>Implement unit tests</span></font></p>

</div></blockquote><div dir="ltr">
<p><font color="#000000"><span style="line-height:20px">2.<span style="white-space:pre-wrap">     </span>Implement additional map container for slot overflow (spare container)</span></font></p></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px">

<div dir="ltr"><p><font color="#000000"><span style="line-height:20px">a.<span style="white-space:pre-wrap">      </span>Implement unit tests</span></font></p></div></blockquote><div dir="ltr"><p><font color="#000000"><span style="line-height:20px">3.<span style="white-space:pre-wrap">  </span>Evaluate memory usage & performance to characterize implementation</span></font></p>


</div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div dir="ltr"><p><font color="#000000"><span style="line-height:20px">a.<span style="white-space:pre-wrap">    </span>Implement full system test cases</span></font></p>

</div></blockquote><div dir="ltr"><p><font color="#000000"><span style="line-height:20px"><br>
</span></font></p><p><font color="#000000"><span style="line-height:20px">--------------------------------------------</span></font></p><p><font color="#000000"><span style="line-height:20px">Project 4: Performance testing to evaluate memory usage, and time performance for single and multiple processor executions of DUNE(grid)</span></font></p>


<p><font color="#000000"><span style="line-height:20px">Motivation: I have recently <a href="http://samskalicky.wordpress.com/2013/04/27/paper-accepted-processor-performance-comparision/">had a paper accepted</a> comparing the performance of CPU, GPU, and FPGA architectures for linear algebra computations: dot product, matrix-vector multiply, matrix-matrix multiply, matrix inverse, and matrix decomposition. In this analysis I investigated multiple implementations for each processor architecture (in particular for CPU: Matlab & AMD C Math Library (ACML)). </span></font></p>


<p><font color="#000000"><span style="line-height:20px">I have experience programming using MPI on 64 processor clusters, and evaluating the performance of aspects such as: node compute time, node idle time, control message transmit time, data transmit time, etc. At RIT we have a multiple processor systems class with many projects requiring this cluster based implementation strategy. In addition, I use the research computing resources at RIT to implement my graph research.</span></font></p>


<p><font color="#000000"><span style="line-height:20px">Methodology: To complete this project I propose the following milestones:</span></font></p><p><font color="#000000"><span style="line-height:20px">1.<span style="white-space:pre-wrap">  </span>Implement a small set of performance tools to measure execution time and memory allocation</span></font></p>


<p><font color="#000000"><span style="line-height:20px">2.<span style="white-space:pre-wrap">     </span>Choose a few routines to evaluate the performance of</span></font></p><p><font color="#000000"><span style="line-height:20px">3.<span style="white-space:pre-wrap">        </span>Design performance output that is tailored to developer’s needs</span></font></p>


<p><font color="#000000"><span style="line-height:20px">4.<span style="white-space:pre-wrap">     </span>Integrate these performance tools with DUNE unit tests</span></font></p><p><font color="#000000"><span style="line-height:20px">5.<span style="white-space:pre-wrap">      </span>Implement tests on larger system level routines</span></font></p>


<p><font color="#000000"><span style="line-height:20px">6.<span style="white-space:pre-wrap">     </span>Integrate with system level unit tests</span></font></p><p><font color="#000000"><span style="line-height:20px">7.<span style="white-space:pre-wrap">      </span>Document procedure to allow developers to integrate performance testing into future (and any other existing) routines</span></font></p>


<p><font color="#000000"><span style="line-height:20px">--------------------------------------------</span></font></p><div><br></div><p></p><p></p><p></p></div>