Difference between revisions of "Winter 2017 SPO600 Project"

From CDOT Wiki
Jump to: navigation, search
(Project Steps)
(Project Phases)
 
Line 37: Line 37:
 
* Phase I: Initial Results
 
* Phase I: Initial Results
 
** Develop and test your optimizations
 
** Develop and test your optimizations
** Due '''March 20''' at midnight
+
** Due Sunday '''March 26''' at midnight
 
* Phase II: Benchmarking and Upstreaming
 
* Phase II: Benchmarking and Upstreaming
 
** Prove that your code does not cause a regressions on other platforms (at least x86_64) and improves things on AArch64.
 
** Prove that your code does not cause a regressions on other platforms (at least x86_64) and improves things on AArch64.
 
** Work with the community to get your changes accepted upstream.
 
** Work with the community to get your changes accepted upstream.
** Due '''April 3'''
+
** Due Thursday '''April 6''' at midnight
 
* Phase III: Upstream
 
* Phase III: Upstream
 
** Get your code accepted upstream.
 
** Get your code accepted upstream.
** Due '''April 18'''
+
** Due Saturday '''April 22''' at midnight

Latest revision as of 15:19, 20 March 2017

On a general-purpose computer, most highly-optimized machine-specific code is contained in the operating system, device drivers, and system libraries.

In this project, you will examine a function provided by the GNU libc library, glibc, and optimize that function for efficiency on AArch64 processors.

Resources

Project Selection

  1. Examine the glibc code to identify a function that is a candidate for optimization.
  2. Record the function(s) you are interested in optimizing in the Winter 2017 SPO600 Participants table

Project Steps

  • Identify a possible approach to the problem
  • Test your approach.
    • You may do this by testing an alternative library containing your implementation of the function.
  • Modify glibc. Use git to track your changes.
  • Submit your change to the glibc community.
    • Make sure that your change does not cause regressions on other platforms, especially x86_64

Project Reporting

  • Blog about your project work frequently (at least 2x/week).
  • Submit your changes to the glibc community as early as possible. It will take some time for your changes to be accepted.

Project Phases

  • Phase 0: Project Plan
    • Present your selected function and proposed approach to class in a 2-3 minute presentation the week of March 6.
  • Phase I: Initial Results
    • Develop and test your optimizations
    • Due Sunday March 26 at midnight
  • Phase II: Benchmarking and Upstreaming
    • Prove that your code does not cause a regressions on other platforms (at least x86_64) and improves things on AArch64.
    • Work with the community to get your changes accepted upstream.
    • Due Thursday April 6 at midnight
  • Phase III: Upstream
    • Get your code accepted upstream.
    • Due Saturday April 22 at midnight