===== Prüfungsprotokoll "Cluster Computing" und "Parallele Algorithmen" ===== ==== Bemerkungen ==== * Prüfungszeitraum September / Oktober 2008 * Die Fragen gestellt hat Ronald Veldema, entsprechend war Prof. Philippsen Beisitzer. * Ronald hatte eine Liste von Punkten, an der er sich entlanggehangelt hat. Das Gespräch auf Themen zu lenken, die einem gut liegen, war so leider unmöglich. * Leider ist die Prüfung schon wieder zwei Tage her, deshalb ist das Protokoll vermutlich unvollständig. ==== Cluster Computing ==== Ronald Veldema war hier ganz versessen auf MPI, insbesondere auf die verschiedenen ''*send''. * Einstieg: Projekt in Cluster Computing: Als Übungsbetrieb hat je eine 2er Gruppe ein Projekt programmiert. Die Übung bestand dann darin, dieses Projekt vorzustellen. * [[http://en.wikipedia.org/wiki/Message_Passing_Interface|MPI]]: * Unterschiede zwischen ''send'', ''ssend'', ''bsend'' und ''rsend''. Wann (bzw. welche davon) blockiert ein ''*send''? * Was machen ''scatter'' und ''gather''? * Was macht ''reduce''? * Wie wird bei MPI der Empfänger angegeben? (-> Communicator) * Was ist [[http://en.wikipedia.org/wiki/Infiniband|Infiniband]]? (Hier war Ronald mit "Eine Netzwerk-Technologie, die in Clustern oft verwendet wird" eigentlich schon zufrieden und wollte nur auf DMA hinaus.) * Was ist [[http://en.wikipedia.org/wiki/Direct_memory_access|DMA]] und wie funktioniert es? * Page Exchange DMA: Wie funktionierts? * Was muss der Sender (bzw. Empfänger) bei [[http://en.wikipedia.org/wiki/Remote_Direct_Memory_Access|RDMA]] tun? * Was ist "BSP"? (Im Script findet sich Bulk Synchronous Parallel.) ==== Parallele Algorithmen ==== * Was ist ein [[http://en.wikipedia.org/wiki/Deadlock|Deadlock]]? Was ist ein [[http://en.wikipedia.org/wiki/Deadlock#Livelock|Livelock]]? Was ist eine [[http://en.wikipedia.org/wiki/Race_condition|Race Condition]]? Unterschiede zwischen den dreien? * Wie kann man diesen Problemen begegnen? (z. B. [[http://en.wikipedia.org/wiki/Mutual_exclusion|Mutex]]) * Beschreibe einen beliebigen Algorithmus für gegenseitigen Ausschluss. (z. B. Ticketing Algorithmus) * Beliebige (wirre) Funktion: Wie berechnet man das Integral von 0 bis *n* via der [[http://en.wikipedia.org/wiki/Finite_element_method|Finite Elemente Methode]]? * Wie könnte man die gleiche Funktion mit der [[http://en.wikipedia.org/wiki/Monte_Carlo_method|Monte Carlo Methode]] integrieren?