Difference between revisions of "Winter 2017 SPO600 Project"
Chris Tyler (talk | contribs) (→Resources) |
Chris Tyler (talk | contribs) (→Project Phases) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 9: | Line 9: | ||
** [https://www.gnu.org/software/libc/started.html Getting Started] working with glibc | ** [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://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] | + | * [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] at Sourceware |
* ...''others to be added''... | * ...''others to be added''... | ||
Line 24: | Line 24: | ||
* Modify glibc. Use git to track your changes. | * Modify glibc. Use git to track your changes. | ||
* Submit your change to the glibc community. | * Submit your change to the glibc community. | ||
− | ** Make sure that your change does not cause regressions on other platforms, especially | + | ** Make sure that your change does not cause regressions on other platforms, especially x86_64 |
== Project Reporting == | == Project Reporting == | ||
Line 37: | Line 37: | ||
* Phase I: Initial Results | * Phase I: Initial Results | ||
** Develop and test your optimizations | ** Develop and test your optimizations | ||
− | ** Due ''March | + | ** 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 | + | ** Due Thursday '''April 6''' at midnight |
* Phase III: Upstream | * Phase III: Upstream | ||
** Get your code accepted upstream. | ** Get your code accepted upstream. | ||
− | ** Due ''April | + | ** 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
- glibc home page
- Getting Started working with glibc
- Contributing to glibc
- glibc Bugzilla at Sourceware
- ...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 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