uni

University stuff
git clone git://git.margiolis.net/uni.git
Log | Files | Refs | README | LICENSE

doc.tex (4252B)


      1 \documentclass{article}
      2 \usepackage[utf8]{inputenc}
      3 \usepackage[greek,english]{babel}
      4 \usepackage{alphabeta}
      5 \usepackage{fancyhdr}
      6 \usepackage{listings}
      7 \usepackage{mathtools}
      8 \usepackage{xcolor}
      9 \usepackage{biblatex}
     10 \usepackage[left=1cm,right=1cm]{geometry}
     11 
     12 \lstset {
     13         basicstyle=\ttfamily,
     14         columns=fullflexible,
     15         breaklines=true,
     16         keepspaces=true,
     17 	showstringspaces=false
     18 }
     19 
     20 \title{Εργαστήριο Παράλληλων Συστημάτων - Εργασία 1}
     21 \author{Χρήστος Μαργιώλης}
     22 \date{Δεκέμβριος 2022}
     23 
     24 \begin{document}
     25 
     26 \begin{titlepage}
     27         \maketitle
     28 \end{titlepage}
     29 
     30 \renewcommand{\contentsname}{Περιεχόμενα}
     31 \tableofcontents
     32 \pagebreak
     33 
     34 \section{Κώδικας}
     35 
     36 Ο κώδικας έχει σχόλια μόνο στα σημεία που θεώρησα ότι μπορεί να προκύψει κάποιο
     37 «μπέρδεμα».
     38 
     39 \lstinputlisting[language=C]{ex1.c}
     40 
     41 \section{Προβλήματα}
     42 
     43 Δεν κατάφερα να υλοποιήσω τον υπολογισμό του ελάχιστο με χρήση αλγορίθμου
     44 δυαδικού δέντρου (ερώτημα d2.2).
     45 
     46 \section{Βοηθητικό script}
     47 
     48 \lstinputlisting[language=sh]{randinput}
     49 
     50 Το script \lstinline{randinput} (δεν τρέχει σε Windows) δέχεται ως είσοδο τον
     51 αριθμό των νημάτων, καθώς και το $N$. Στην συνέχεια τυπώνει (με την
     52 συγκεκριμένη σειρά) τον αριθμό των νημάτων, το $N$, και $N$ τυχαίους αριθμούς.
     53 Αυτό είναι χρήσιμο στο να μπορούμε να κάνουμε δοκιμές με διαφορετικά δεδομένα
     54 (ειδικά για μεγάλες τιμές $N$) χωρίς να πρέπει να δώσουμε τα δεδομένα
     55 χειροκίνητα.
     56 
     57 Η χρήση του script έχει ως εξής:
     58 
     59 \begin{lstlisting}
     60 usage: randinput nthreads N
     61 \end{lstlisting}
     62 
     63 Παρακάτω φαίνεται μία ενδεικτική χρήση:
     64 
     65 \begin{lstlisting}
     66 $ ./randinput 2 3
     67 2
     68 3
     69 8
     70 0
     71 1
     72 5
     73 1
     74 2
     75 0
     76 4
     77 8
     78 \end{lstlisting}
     79 
     80 'Αρα έχουμε 2 νήματα, έναν πίνακα $3x3$, τα στοιχεία του οποίου είναι:
     81 \[[[8, 0, 1], [5, 1, 2], [0, 4, 8]]\]
     82 
     83 Τώρα, μπορούμε να διοχετεύσουμε την έξοδο του script σε ένα αρχείο και να το
     84 δώσουμε ως είσοδο στο κύριο πρόγραμμα:
     85 
     86 \begin{lstlisting}
     87 ./randinput 2 3 > input.txt
     88 \end{lstlisting}
     89 
     90 \section{Ενδεικτικά τρεξίματα}
     91 
     92 \textit{Σημειώνεται ότι το πρόγραμμα τρέχει κανονικά και χωρίς αρχείο για είσοδο.}
     93 
     94 Για 2 threads και $A = 4x4$:
     95 
     96 \includegraphics[width=\textwidth]{res/run1.png} \\
     97 
     98 Για 4 threads και $A = 10x10$:
     99 
    100 \includegraphics{res/run2.png} \\
    101 
    102 Για 3 threads και $A = 100x100$. Παρατηρούμε ότι το συγκεκριμένο τρέξιμο
    103 είχε δεδομένα τέτοια ώστε να μην πληρείται η προϋπόθεση του να είναι ο πίνακας
    104 αυστηρά διαγώνια δεσπόζων:
    105 
    106 \includegraphics[width=\textwidth]{res/run3.png} \\
    107 
    108 Στα παρακάτω τρεξίματα ο πίνακας θα είναι $1000x1000$, θα έχει τα ίδια
    109 στοιχεία, αλλά κάθε τρέξιμο θα έχει διαφορετικό αριθμό threads, ωστέ να
    110 παρατηρήσουμε τις διαφορές στην ταχύτητα εκτέλεσης του προγράμματος ανάλογα με
    111 τον αριθμό των threads.
    112 
    113 Παρατηρούμε ότι όταν τα threads είναι περισσότερα από 1, η ταχύτητα εκτέλεσης
    114 σχεδόν υποδιπλασιάζεται.
    115 
    116 Για 1 thread:
    117 
    118 \includegraphics[width=\textwidth]{res/run4.png} \\
    119 
    120 Για 2 threads:
    121 
    122 \includegraphics[width=\textwidth]{res/run5.png} \\
    123 
    124 Για 3 threads:
    125 
    126 \includegraphics[width=\textwidth]{res/run6.png} \\
    127 
    128 Για 4 threads:
    129 
    130 \includegraphics[width=\textwidth]{res/run7.png} \\
    131 
    132 \end{document}