1,885
edits
Changes
SPO600
,no edit summary
!style="background: #cccccc"| Quick Links
|-|<div style="background:#ffff00">[[Fall 2013 SBR600 Current SPO600 Weekly Schedule|Weekly Schedule]]</div>[[Fall 2013 SBR600 Current SPO600 Participants|Participants and Project Table]]<br />[[SBR600 Potential Projects|Potential Project List]]<br https://>[[Fall 2013 SBR600 Presentation Schedule|Release Presentation Schedule]telescope.cdot.systems Telescope]<br />[https://scs.senecacict.onsenecacollege.ca/course/sbr600 spo600 Course Outline]<br />[[Fedora ARM Secondary Architecturemedia:SPO600 Winter 2022 addendum.pdf|Winter 2022 Addendum]]<br />[http://pidora.ca Pidora[SPO600 Course Policies|Course Policies]]<br />|}[http[Category://fedoraproject.org Fedora ProjectSPO600]<br />[http://docs.fedoraproject.org/ Fedora documentation]<br !-- {{Admon/>tip|Thinking of taking this course?|[http://zenit.senecac.on.ca/~chris.tyler/planet/ Planet CDOT]<br />[http://kojiSPO600 - Information for Prospective Students|Here is some information for prospective students.fedoraproject.org Fedora Koji]<br />[http://koji.pidora.ca Pidora Koji]|}}-->[[Category:SPO600]]= Software Portability and Optimization =
# Adding additional architecture-specific code so that the software can run on the new architecture ('porting' the software), or
# Removing the architecture-specific code and replacing it with architectural-neutral code, so that it can run on a variety of system architectures ('making the software 'portable').
In either case, software can be altered or it can be built in such a way that performance is optimized - so that runs faster, or it uses less memory or other resources. In order to test optimizations, we'll be performing benchmark testing before and after modification.
In this semester, the SPO600, you'll course will be working directly with open source communities to port focused on optimizing software. This semesteron AArch64 systems, we'll be collaborating with a project set up by Jon "Maddog" Hall and [http://linaro.org Linaro] specifically on building infrastructure to make it easier to port and optimize software which doesn't currently run on 64-bit ARM use indirect functions (aarch64similar to the glibc "ifunc" capability) computersfor runtime implementation selection. This project has identified around 1400 software packages that need worktechnique is widely used in a few places -- such as in glibc, the GNU standard C library -- but it would be great if we could easily use it in other places. This would allow (As for example) two versions of a bonusparticular function to be automatically compiled, completed projects may be eligible with and without support for recognition particular hardware features (such as Scalable Vector Extensions (SVE/SVE2)), and possibly prizes from Linaro)for the best version to be automatically used at runtime.
Note that, unlike some other project-based courses, the results of the projects done in SPO600 will eventually be incorporated into the actual "upstream" open source projectssoftware, and have a real impact on other people. For this reason, projects must be completed in collaboration with the relevant open source communities, using relevant [[OPS600 SPO600 Communication Tools|communication tools]]. Work performed in this course will be licensed using the relevant open source licenses used by the associated community.
Working in an open source community provides the opportunity to build solid real-world experience, your technical skills and reputation, and a network of contacts, all of which are useful in developing your career.
=== Course Materials / System Requirements ===
* Course information and labs are online- no textbook is required. '''Required:'''* You will require access '''must''' be able to [[SSH]] to a personal Fedora 18 [[SPO600 Servers|computer systems]] at Seneca (CDOT). You can do this using an SSH client program, included with or Fedora 19 installationavailable for almost all platforms. This may * You '''must''' be able to participate in synchronous (live) streaming classes and be on your own able to view/stream video content. <!-- '''Recommended:'''* Classes are held in an [[Active Learning Classroom]]. You '''should''' have a mobile device of some type (laptop, on smartphone, tablet) with a wireless network connection (WiFi or mobile) and a virtual machine on video output (HDMI). If your laptopvideo output is of a different type (VGA/DVI/DP/Miracast/MyDP/MiniDP/MiniHDMI/other) you will need an appropriate adapter.* For productivity, you '''should''' have access to a personal Linux installation on an SSHa 64-accessible system bit (x86_64) computer (see [[SPO600 Host Setup]]).* Students in the SPO600 course may want to purchase a 64-bit ARM computer, such as a home desktop computer), Rasbperry Pi 4 or on Raspberry Pi 400 -- but you will need to run a SATA disk pack or USB drive for use with the Seneca computers64-bit operating system, such as [https://fedoraproject.org/wiki/Architectures/ARM/Raspberry_Pi Fedora AArch64].-->
=== Professor ===
There are three keys to success in this course:
1. '''Blog.''' Tell your professor, your colleagues, the community, and everyone else what you're doing. <u>Write a lot</u> and write well, include good technical content, and incorporate links to all relevant resources and the product of your work, and write often. Almost all of your work in this course is submitted by blogging. 2. '''Be ambitious.''' In this course, you will need to be the driving force behind your project. The community will help you, but it's up to you to supply the energy. 3. '''Work ''in'' the open source community.''' The projects we will be doing are too large and too unfamiliar for you to succeed entirely on your own. You will need to use the community's knowledge, connections, and resources to succeed well. Respect the community's standards, tell the community what you're doing, ask when you have a question, and pull your own weight within the community.
== Weekly Outline ==
See the [[Winter 2013 Current SPO600 Weekly Schedule]] for specific dates and topics.
== Course Outline ==
See the online [https://ict.senecacollege.ca/course/spo600 course outline] for course details, and the [[media:SPO600 Winter 2022 addendum.pdf|Winter 2022 Addendum]] for additional course details.