Difference between revisions of "SPO600 Inline Assembler Lab"

From CDOT Wiki
Jump to: navigation, search
(Part A - Class Lab)
(Part B - Individual Task)
Line 27: Line 27:
 
=== Part B - Individual Task ===
 
=== Part B - Individual Task ===
  
{{Admon/important|After Memory Architecture|Do this part of the lab after the class on Memory Architecture.}}
+
<!-- {{Admon/important|After Memory Architecture|Do this part of the lab after the class on Memory Architecture.}} -->
  
 
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 (Lawrence)
+
* amule
* ardour (Ray Gervais)
+
* ardour
* avidemux(Shiv Gajiwala)
+
* avidemux
* blender(Mohammed Maniar)
+
* blender
* bunny (laily)
+
* bunny
* busybox (laily)
+
* busybox
 
* chicken
 
* chicken
* cln (Len)
+
* cln
 
* coq
 
* coq
 
* cxxtools
 
* cxxtools
 
* faad2
 
* faad2
 
* fawkes
 
* fawkes
* gauche (Eugueni)
+
* gauche
 
* gmime
 
* gmime
 
* gnash
 
* gnash
Line 50: Line 50:
 
* iaxclient
 
* iaxclient
 
* k9copy
 
* k9copy
* lame (Timothy Moy)
+
* lame
 
* libfame
 
* libfame
 
* libgcroots
 
* libgcroots
Line 59: Line 59:
 
* mjpegtools
 
* mjpegtools
 
* mlt
 
* mlt
* mosh (John)
+
* mosh
 
* mpich2
 
* mpich2
 
* ocaml-zarith
 
* ocaml-zarith
* openblas(Andrey)
+
* openblas
 
* opencore-amr
 
* opencore-amr
 
* openser
 
* openser
* par2cmdline (Dang)
+
* par2cmdline
 
* picprog
 
* picprog
 
* qlandkartegt
 
* qlandkartegt
* sooperlooper (Quang)
+
* sooperlooper
 
* traverso
 
* traverso
  

Revision as of 12:33, 29 November 2017

Lab icon.png
Purpose of this Lab
This lab is designed to explore the use of inline assembler, and its use in open source software.

Lab 7

References


Part A - Class Lab

1. Here is a version of the volume scaling problem from the Algorithm Selection Lab for AArch64: spo600_20173_inline_assembler_lab.tgz. Download, build, and verify the operation of this program on AArchie.


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 assembler in that software, and determine:

  • How much assembley-language code is present
  • Which platform(s) it is used on
  • Why it is there (what it does)
  • What happens on other platforms
  • 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.