Difference between revisions of "SPO600 Inline Assembler Lab"
Egferguson (talk | contribs) (→Part B - Individual Task) |
Chris Tyler (talk | contribs) |
||
Line 2: | Line 2: | ||
{{Admon/lab|Purpose of this Lab|This lab is designed to explore the use of inline assembler, and its use in open source software.}} | {{Admon/lab|Purpose of this Lab|This lab is designed to explore the use of inline assembler, and its use in open source software.}} | ||
− | == Lab | + | == Lab 6 == |
=== References === | === References === | ||
Line 14: | Line 14: | ||
=== Part A - Class Lab === | === Part A - Class Lab === | ||
− | 1. | + | 1. There is a version of the volume scaling problem from the [[SPO600 Algorithm Selection Lab|Algorithm Selection Lab]] for AArch64 which incorporates inline assembler in <code>/public/spo600-20181-inline-assembler-lab.tgz</code> on each of the AArch64 [[SPO600 Servers]]. Copy, build, and verify the operation of this program on one of those servers. |
Line 24: | Line 24: | ||
4. Blog about your results in detail, including your reflections. | 4. Blog about your results in detail, including your reflections. | ||
+ | |||
=== Part B - Individual Task === | === Part B - Individual Task === | ||
Line 30: | Line 31: | ||
1. Select one of the following open source packages which is not claimed by another person in the class. Put your name beside it in (parenthesis) to claim it. | 1. Select one of the following open source packages which is not claimed by another person in the class. Put your name beside it in (parenthesis) to claim it. | ||
− | * amule | + | * amule |
* ardour | * ardour | ||
* avidemux | * avidemux | ||
− | * blender | + | * blender |
* bunny | * bunny | ||
− | * busybox | + | * busybox |
− | * chicken | + | * chicken |
* cln | * cln | ||
* coq | * coq | ||
− | * cxxtools | + | * cxxtools |
* faad2 | * faad2 | ||
* fawkes | * fawkes | ||
− | * gauche | + | * gauche |
* gmime | * gmime | ||
− | * gnash | + | * gnash |
* gridengine | * gridengine | ||
− | * groonga | + | * groonga |
* hoard | * hoard | ||
* iaxclient | * iaxclient | ||
− | * k9copy | + | * k9copy |
− | * lame | + | * lame |
* libfame | * libfame | ||
* libgcroots | * libgcroots | ||
− | * libmad | + | * libmad |
* libmlx4 | * libmlx4 | ||
* lightsparc | * lightsparc | ||
* mediatomb | * mediatomb | ||
− | * mjpegtools | + | * mjpegtools |
− | * mlt | + | * mlt |
− | * mosh | + | * mosh |
* mpich2 | * mpich2 | ||
* ocaml-zarith | * ocaml-zarith | ||
− | * openblas | + | * openblas |
* opencore-amr | * opencore-amr | ||
* openser | * openser | ||
Line 68: | Line 69: | ||
* picprog | * picprog | ||
* qlandkartegt | * qlandkartegt | ||
− | * sooperlooper | + | * sooperlooper |
* traverso | * traverso | ||
− | 2. Find the | + | 2. Find the assembly-language code in that software, and determine: |
* How much assembley-language code is present | * How much assembley-language code is present | ||
− | * Which platform(s) | + | * Is the assembly code in its own file (.s or .S) or inline |
+ | * Which platform(s) the assembler is used on | ||
+ | * What happens on other platforms | ||
* Why it is there (what it does) | * Why it is there (what it does) | ||
− | |||
* Your opinion of the value of the assembler code VS the loss of portability/increase in complexity of the code. | * Your opinion of the value of the assembler code VS the loss of portability/increase in complexity of the code. | ||
3. Blog your results in detail. | 3. Blog your results in detail. |
Revision as of 22:13, 19 February 2018
Lab 6
References
Part A - Class Lab
1. There is a version of the volume scaling problem from the Algorithm Selection Lab for AArch64 which incorporates inline assembler in /public/spo600-20181-inline-assembler-lab.tgz
on each of the AArch64 SPO600 Servers. Copy, build, and verify the operation of this program on one of those servers.
2. Test the performance of this solution and compare it to your previous solution(s). Adjust the number of samples (in vol.h
) to produce a measurable runtime, and adjust your code for comparable test conditions (number of samples, 1 array vs. 2 arrays, and so forth).
3. Find the answers to the questions identified with "Q:" in the comments in the source code.
4. Blog about your results in detail, including your reflections.
Part B - Individual Task
1. Select one of the following open source packages which is not claimed by another person in the class. Put your name beside it in (parenthesis) to claim it.
- amule
- ardour
- avidemux
- blender
- bunny
- busybox
- chicken
- cln
- coq
- cxxtools
- faad2
- fawkes
- gauche
- gmime
- gnash
- gridengine
- groonga
- hoard
- iaxclient
- k9copy
- lame
- libfame
- libgcroots
- libmad
- libmlx4
- lightsparc
- mediatomb
- mjpegtools
- mlt
- mosh
- mpich2
- ocaml-zarith
- openblas
- opencore-amr
- openser
- par2cmdline
- picprog
- qlandkartegt
- sooperlooper
- traverso
2. Find the assembly-language code in that software, and determine:
- How much assembley-language code is present
- Is the assembly code in its own file (.s or .S) or inline
- Which platform(s) the assembler is used on
- What happens on other platforms
- Why it is there (what it does)
- Your opinion of the value of the assembler code VS the loss of portability/increase in complexity of the code.
3. Blog your results in detail.