95 lines
3.8 KiB
Plaintext
95 lines
3.8 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## A. TISS-Feedback (optional, ~15min)\n",
|
|
"\n",
|
|
"Diese Aufgabe ist optional; wir bitten Sie sich dennoch explizit Zeit zu nehmen, und uns Rückmeldungen zu geben.\n",
|
|
"\n",
|
|
"Bitte nutzen Sie auch die Freitext Felder, diese sind für uns besonders wertvoll.\n",
|
|
"\n",
|
|
"Hier ein paar Anregungen für Ihre Rückmeldungen via Freitext:\n",
|
|
"\n",
|
|
"- Bitte wenn es geht immer kurz Ihre Vorerfahrung erwähnen, z.B. mit \"Vorerfahrung: viel\" oder \"Vorerfahrung: wenig\"\n",
|
|
"- Bitte beziehen Sie gerne auch die vorangehende LV (Python 360.049) in Ihre Überlegungen mit ein.\n",
|
|
"- Bitte beziehen Sie gerne auch explizit auf einzelne Aspekte des diessemestrigen Modus ein (Hörsaal/Hausübungen/Labor Abgaben/Labor Praxisteil)\n",
|
|
"\n",
|
|
"TISS-Fragebogen: https://tiss.tuwien.ac.at/survey/surveyForm.xhtml?dswid=1580&dsrid=261&courseNumber=360050&semesterCode=2024S\n"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## B. Laufzeitmessung für eine Ausgleichungsrechnung (*polynomial fitting*)\n",
|
|
"\n",
|
|
"[taskB.py](taskB.py): gegebener Python-Quellcode zur Ausgleichungsrechnung mit Polynomen (ident zu [360.049/homework8/task3](https://sgit.iue.tuwien.ac.at/360049/homework8/src/branch/main/main.ipynb#user-content-Aufgabe-3:-Ausgleichungsrechnung-mit-Polynomen-(1-Punkt))).\n",
|
|
"\n",
|
|
"[taskB.cpp](taskB.cpp): gegebener C++-Quellcode mit Funktionalität analog zu [taskB.py](taskB.py).\n",
|
|
"\n",
|
|
"Beide Quellcodes berechnen die Koeffizienten eines Ausgleichploynoms für einen generisch erzeugten Datensatz von Funktionswertepaaren (+ Rauschen) im Intervall $[0,5]$ für die Funktion: \n",
|
|
"\n",
|
|
"$f(x) = 2(1 - \\exp^{-x})$\n",
|
|
"\n",
|
|
"**Aufgabe:**\n",
|
|
"\n",
|
|
"1. Inspizieren Sie den gegebenen Programmcode.\n",
|
|
"2. Führen Sie den die Programme aus (die Anzahl an Datenpunkten ist im Quellcode mit 30000 festgelegt).\n",
|
|
"\t```shell\n",
|
|
"\tpython taskB.py \n",
|
|
"\t./taskB \n",
|
|
"\t```\n",
|
|
"3. Gestalten Sie beide gegebenen Programme um, so dass die Anzahl an Datenpunkten als Argument in der Kommandozeile übergeben werden kann, z.B. so:\n",
|
|
"\t```shell\n",
|
|
"\tpython taskB.py 30000 \n",
|
|
"\t./taskB 30000\n",
|
|
"\t```\n",
|
|
"4. Messen Sie die Laufzeit für die Ausgleichungsrechnung für mindestens 5 verschiedene Anzahlen an Datenpunkten,\n",
|
|
"\t- für die Python-Implementierung (taskB.py),\n",
|
|
"\t- für die C++-Implementierung mit Debug Einstellungen (`-O0`), und\n",
|
|
"\t- für die C++-Implementierung it Release Einstellungen\t(`-O3`).\n",
|
|
"5. Erstellen Sie einen Plot der Laufzeiten, dies könnte z.B. so aussehen:\n",
|
|
"\n",
|
|
"\t\n",
|
|
"\t\n",
|
|
"\t\t\n",
|
|
"\n",
|
|
"\n",
|
|
"**Demonstration:**\n",
|
|
"\n",
|
|
"- Welche Bibliothek kommt in der C++-Implementierung (statt numpy) zum Einsatz.\n",
|
|
"- Warum sind die errechneten Koeffizienten nicht exakt gleich (Python vs C++). \n",
|
|
"- Präsentieren Sie Ihre Messungen/Plot\n",
|
|
"- Diskutieren Sie die Laufzeitunterschiede.\n",
|
|
"- Diskutieren Sie die Abhängigkeit der Laufzeit von der Problemgrösse.\n",
|
|
"- Diskutieren Sie mögliche Ursachen für die Abhängigkeit (z.B. Speicherzugriffszeiten, Rechenoperationen)."
|
|
]
|
|
},
|
|
{
|
|
"attachments": {},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"#"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"name": "python",
|
|
"version": "3.12.2"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|