Open main menu

CDOT Wiki β

Changes

SPO600 Algorithm Selection Lab

230 bytes added, 09:43, 1 November 2023
no edit summary
[[Category:SPO600 Labs- Retired]]{{Admon/lab|Purpose of this Lab|In this lab, you will investigate the impact of different algorithms which produce the same effect.}}
{{Admon/important|x86_64 and AArch64 Systems|This lab must be performed on both x86_64 and AArch64 systems. You may use the [[SPO600 Servers]] or you may use other system(s) -- it might make sense to use your own x86_64 system and [[SPO600_Servers#AArch64:_israel.cdot.systems|israel.cdot.systems]] for AArch64.}}
=== Don't Compare Across Machines ===
In this lab, ''do not'' compare the relative performance across different machines, because various systems have different microarchitectures, memory configurations, peripheral implementations, and clock speeds, from mobile-class to server-class (e.g. Intel Atom vs. Xeon; AMD APU vs. Threadripper; ARM Cortex-A35 A55 vs. Neoverse-V1V2).
However, ''do'' compare the relative performance of the various algorithms on the ''same'' machine.
** What background operations are being performed?
** How does your login on the machine affect performance (e.g., network activity)?
* <span style="background: #ffff00">Isolate the performance of the volume scaling code. </span> This is one of the most important parts of this lab! There are two practical approaches:
** Subtract the performance of the dummy version of the program from each of the other versions, or
** Add code to the program to measure and report just the performance of the volume-scaling code
Blog about your experiments with a detailed analysis of your results, including memory usage, performance, accuracy, and trade-offs. Include answers to all of the questions marked with Q: in the source code.
'''Make sure you convincingly '''<u>prove''' </u> your results to your reader! ''' Re-read the [[#Important.21|section marked ''Important'' above]] and make sure you address the issues explained there. Also be sure to explain what you're doing so that a reader coming across your blog post understands the context (in other words, don't just jump into a discussion of optimization results -- give your post some context).
'''Optional - Recommended:''' Compare results across several '''implementations''' of AArch64 and x86_64 systems. Note that on different CPU implementations, the relative performance of different algorithms will vary; for example, table lookup may outperform other algorithms on a system with a fast memory system (cache), but not on a system with a slower memory system.