Changes

Jump to: navigation, search

SPO600

1,153 bytes added, 15:37, 20 November 2013
Software Porting and Optimization
= Software Porting and Optimization =
 
Software is sometimes written to work on a specific computer architecture (type of computer), such as Intel-compatible x86_64 PCs, or IBM Z9 mainframes. This course is about bringing software to a new architecture.
 
This course deals with the challenge of making software compatible with a new architecture in one of two ways:
# 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.
This course is a professional option in the [http://ict.senecac.on.ca/ Seneca School of Information and Communication Technology] [https://ict.senecacollege.ca/academic-programs/cty/overview CTY] and [https://ict.senecacollege.ca/academic-programs/cpa/overview CPA] programs. First offered: Winter 2014.
== SPO600 in Fall 2013 ==
In SPO600, you'll be working directly with open source communities to port software. This semester, we'll be working collaborating with a number of communities as well as project set up by Jon "Maddog" Hall and [http://linaro.org Linaro ] to port and optimize software to the ARM which doesn't currently run on 64-bit ARM (aarch64) computers. This project has identified around 1400 software packages that need work. (Aarch64As a bonus, completed projects may be eligible for recognition and possibly prizes from Linaro) platform.
Note that, unlike some other project-based courses, the results of the projects done in SPO600 will be incorporated into open source projects, 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 Communication Tools|communication tools]]. Work performed in this course will be licensed using the relevant open source licenses used by the associated community.

Navigation menu