Blockseminar: Verteiltes Rechnen und Parallelprogrammierung Sommer Semester 2013 Tim Conrad Staff Tim Conrad AG Computational Proteomics email: conrad@math.fu-berlin.de Telefon: 838-51445 Büro: Raum 138, Arnimalle 6 Sprechzeiten: täglich 11-17h Kurswebseite: http://msproteomics.net/teaching Zeitplan 03.04.2013 Seminar (3W) ~01.05.2013 Projektarbeit (5W) Ausarbeitung Text + Vortrag Zeitraum: April - Anfang Juni (8 Wochen) VOLLZEIT! 1
Topics Session Topic 1 Introduction 2 Concurrency / Threads 3 Parallelism 4 RPC / MPI 5 Grid Computing 6 GPUs 7 Special Topics Topics - Details Course Introduction Rules, Topic Overview, Short Intros Concurrent Programming Threads, Shared Resources, Priorities Grids I History, Technologies, Programming Concepts, Scheduling Grids II Security, Projects, proteomics.net Parallel Programming Patterns I Parallel Programming Patterns II Clusters I History, Architectures, Programming Concepts, Scheduling Clusters II Message Passing, Load-balancing, Distributed Shared-memory, Parallel I/O GPUs Stream Processors Overview, CUDA Data Grids Special Topics Programming Tools, Network Hardware, Protocols Übungszettel 3x Übungszettel Ausgabe jeweils am Montag Bearbeitungszeit: bis zum folgenden Sonntag, 23:59 Abgabe per SVN Pro verspätetem Tag: - 10% der möglichen Punkte 50% der Gesamtpunkte müssen erreicht werden 2x Praktische Einleitung in die Techniken Sleeping Barber (Nebenläufige / Parallele Programmierung) Maze (Cluster Programmierung) 1x Einleitung in Spezialhardware Einfacher Algorithmen auf GPU 2
Projekt Projekt Ab Ende April / Anfang Mai Schriftliche Ausarbeitung (2-3 Seiten) + Web 15 min. Vortrag Definierte Ziele müssen erreicht werden Projekt Selbstständiges Arbeiten (zu Hause oder im Bioinf-Pool) Einzeln oder in Teams Vorher: Erstellung eines Projektkonzepts inkl. Zeitplan (1-2 Seiten + elektronisch in online Projektmanagement Software) Bei Teamarbeit: Wer-macht-was Liste 1x wöchentliches Pflicht -Treffen (Dienstags, ~1h, BioInf Pool) Jede Gruppe 5-10 Minuten Statusreport inkl. unter Verwendung der Projektmanagement Software Projekt Grundidee: Identifiziere geeigneten zeitaufwendigen Teil einer Software und parallelisiere diesen bzw. zerlege ihn in verteilbare Unterprobleme Software: Vorhandenes (open-source) Projekt oder Komplette Eigenentwicklung Bewertungsmaßstäbe für Gesamt + Einzelnote Code Dokumentation Code Qualität Schwierigkeit der gelösten Aufgabe 3
Ausarbeitung Schriftliche Ausarbeitung: In LaTex (Bioinformatics Style) 2-3 Seiten Beschreibung der Konzepte Algorithmen Programmier- Techniken Beiträge der einzelnen Personen Mündliche Präsentation: ~ 15 Minuten, ~ 10 Folien 25% zur Projektnote Demo des Projektes Computing Ressourcen Cluster (GAIAx, x=1..20) 20x 8 Core Rechner (Intel, Linux) je 2.6GHz & 8GB RAM Grid GAIA + ~ 50 Pool Rechner Nvidia Grafikkarte (CHINA) Tesla C870 128 Cores, 1.5 GB RAM Verhaltenskodex Pro (Mit-)Autor einer Datei: /* ************************************************************************ * FREIE UNIVERSITAET BERLIN, Fachbereich Mathematik und Informatik * Erklaerung des Studenten zur Einreichung einer Uebung / Projektes * im Kurs "Verteiltes Rechnen und Parallelprogrammierung" im SS13 * * Autor: [Name] * Matrikelnr: [Matrikelnummer] * Email: [FB Email Adresse] * Erstellt am: [Datum der Erstellung dieser Datei] * * Ich, [Name], erklaere hiermit, dass diese Einreichung von mir * persoenlich erstellt worden ist und nicht (auch teilweise) aus einer * anderen Quelle kopiert wurde, ohne darauf im Quellcode hinzuweisen. * Mir ist bewusst, dass Verstoesse gegen diese Regeln Konsequenzen * nach sich ziehen, bis hin zu einer Bewertung der Einreichung mit * 0 Punkten. ************************************************************************ */ 4
Projekte 1.PCA zur Zeitreihenanalyse (z.b. Klimadaten) 2.Berechnung von Protein/Protein Interaktionen 3.Eigenwertlöser für Google Pagerank 4.Mehrgitterlöser zur Kontinuumsmechanik (z.b. Kontaktprobleme im Knigelenk) 5.Raytracing zur Darstellung von Molekülen 6.Data Grids 7.Physik Berechnungen für 3D Welten 8.Spracherkennung 9.Statistik / Fitting Routinen zur Proteomics Analyse 10.Algorithmen zur Analyse von Proteomics Daten 11.Bilderkennung / -analyse 12 Bemerkungen Seminar ist Vorbereitung auf das Projekt Eigentliche Leistung wird im Praktikum erbracht Folien dienen zur Einführung in die Themen Soll Überblick geben und spätere Vertiefung ermöglichen Course overview 5
Serial Vs. Parallel COUNTER COUNTER 2 COUNTER 1 Q Please Computing Elements Applications P Threads Interface Microkernel Multi-Processor Computing System.. P P P P P Programming paradigms Operating System Hardware P Processor Thread Process 6