1,885
edits
Changes
Created page with "{{Chris Tyler Draft}}Category:Winter 2017 SPO600 On a general-purpose computer, most highly-optimized machine-specific code is contained in the operating system, device dr..."
{{Chris Tyler Draft}}[[Category:Winter 2017 SPO600]]
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 ==
* [https://www.gnu.org/software/libc/ glibc home page]
** [https://www.gnu.org/software/libc/started.html Getting Started] working with glibc
** [https://www.gnu.org/software/libc/involved.html Contributing to glibc]
* [https://sourceware.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=SUSPENDED&bug_status=WAITING&bug_status=REOPENED&list_id=33073&product=glibc&query_format=advanced glibc Bugzilla]]
* ...'''others to be added'''...
== Project Selection ==
# Examine the glibc code to identify a function that is a candidate for optimization.
# 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 x8_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 ''March 20'' 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 ''April 3''
* Phase III: Upstream
** Get your code accepted upstream.
** Due ''April 18''
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 ==
* [https://www.gnu.org/software/libc/ glibc home page]
** [https://www.gnu.org/software/libc/started.html Getting Started] working with glibc
** [https://www.gnu.org/software/libc/involved.html Contributing to glibc]
* [https://sourceware.org/bugzilla/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=SUSPENDED&bug_status=WAITING&bug_status=REOPENED&list_id=33073&product=glibc&query_format=advanced glibc Bugzilla]]
* ...'''others to be added'''...
== Project Selection ==
# Examine the glibc code to identify a function that is a candidate for optimization.
# 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 x8_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 ''March 20'' 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 ''April 3''
* Phase III: Upstream
** Get your code accepted upstream.
** Due ''April 18''