Programmierung von Multicore-Rechnern



Ähnliche Dokumente
Projektseminar Parallele Programmierung

Die Komponenten in Ihrem Computer

Einstieg in die Informatik mit Java

OpenMP am Beispiel der Matrizenmultiplikation

Staatlich geprüfter EDV-Führerschein

Verwendung des Terminalservers der MUG

Zellulare Neuronale Netzwerke

Hyper-V Grundlagen der Virtualisierung

Einführung in PHP. (mit Aufgaben)

Hochleistungsrechnen für Wissenschaft und Wirtschaft im internationalen Verbund

Industrie-PCs Full-Size - PICMG - ATX - Rack/Wall-Mount - Kundenspezifisch

Bei unserem letzten Ausflug in die Welt der Highend Mainboards konnten wir bereits feststellen das Intel seine Hausaufgaben gemacht hat.

Angebote refurbished PC s

Nebenläufige Programmierung

Angewandte Informatik

IT-Infrastruktur, WS 2014/15, Hans-Georg Eßer

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Dialekte der Klimaforschung

Windows Server 2008 (R2): Anwendungsplattform

1. Technik moderner Geräte

Installationsvoraussetzungen

Systemvoraussetzungen für Autodesk Revit Produkte (gemäß Angaben von Autodesk)

Mikrocontroller Grundlagen. Markus Koch April 2011

Moderne parallele Rechnerarchitekturen

Virtuelle Maschinen. von Markus Köbele

Allgemein: Das Mainboard

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

gibt es verschiedene Betriebssysteme die je nach Gerät und Nutzer installiert werden können.

Contents USB BIOS Flashback 1. Wählen Sie die entsprechende UEFI BIOS-Datei aus

Simulation von räumlich verteilten kontinuierlichen Modellen

Programmieren was ist das genau?

Im Original veränderbare Word-Dateien

Inhaltsverzeichnis. BüroWARE Systemanforderungen ab Version Generelle Anforderungen SoftENGINE BüroWARE SQL / Pervasive. 2

Systemanforderungen für MuseumPlus und emuseumplus

Zweite Umfrage zur Bedarfsermittlung von Ressourcen zum wissenschaftlichen Rechnen an der TU Dortmund

Grundlagen der Informatik

enerpy collaborative webased workflows collaborative webbased groupware INDEX 1. Netzwerk Überblick 2. Windows Server 2008

SEH WHITEPAPER USB-TO-NETWORK (UTN) Nutzung von nicht-netzwerkfähigen USB-Outputgeräten (GDI-Drucker, Multifunktionsgeräte, Kopierer) über das Netz

Maximalwerte für die Konfiguration VMware Infrastructure 3

Systemvoraussetzungen myfactory

Fragestellung: Wie viele CPU Kerne sollte eine VM unter Virtualbox zugewiesen bekommen?

Online-Publishing mit HTML und CSS für Einsteigerinnen

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Windows 7 sichern. !!! Funktioniert nicht auf allen Rechnern!!! Getestet mit Externer USB 3.0 Festplatte 500 GB an USB 3.0 Schnittstelle.

Hard- und Softwarevoraussetzungen MBS5

Fragen und Antworten. Kabel Internet

Computeria Urdorf. Treff vom 16. Januar Was ist ein Computer?

1 Einzelplatzversion. 1.1 Hardware. 1.2 Software* Stand Juli 2014

step Electronic GmbH

Merkmale des Betriebssystems Windows XP

Hard- und Softwarevoraussetzungen MBS5

Fragen zur GridVis MSSQL-Server

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

SECURE DOWNLOAD MANAGER

conjectcm Systemvoraussetzungen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Übungsblatt 1: a) 5. Aufgaben: Rohentwurf analoges Lehrbuch

Secure Download Manager Übersichtsleitfaden Vertraulich Version 2.2

Einführung in Eclipse und Java

1.5 Arbeiten mit der CD-ROM

Die Hardwareausstattung unserer Schule

RED CAD APP. Elektro Stromlaufplan Grundrisszeichnen Symbolcreator

Paragon Online WinPE Builder Service

C:\WINNT\System32 ist der Pfad der zur Datei calc.exe führt. Diese Datei enthält das Rechner - Programm. Klicke jetzt auf Abbrechen.

Systemanforderungen ab Version 5.31

Lubuntu als Ersatz für Windows

Anleitung zur Nutzung des SharePort Plus

High Performance Datenerfassung Tests am Beispiel WEGA

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

LabView7Express Gerätesteuerung über LAN in einer Client-Serverkonfiguration. 1. Steuerung eines VI über LAN


Beschrieb mobiler Schulungsraum

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Einsatzbedingungen FAMOS 3.10

ArchiCrypt Datenschutz Suite

Übungen zur Softwaretechnik

Von Bits, Bytes und Raid

Installationsleitfaden zum Fakturierungsprogramm

2. Programmierung in C

Grundlagen der Parallelisierung

Gamer-PC-zusammenstellen.com Einen Gamer PC zusammenstellen. Checkliste und Anleitungen

2. Grundlagen der technischen Software - Beispiel: MathCAD 2.1 Einführung 2.2 Grundlagen an Beispielen

Wagner EDV Recycling

zur WinIBW Version 2.3

Rechner Architektur. Martin Gülck

Sichere Festplattenlöschung

Aufgaben zum Datenmanagement

Verwaltung der MSATA-SSD bei HP Envy Ultrabook 4 und Ultrabook 6 mit Intel Smart Response Technologie

PROLAG WORLD 2.0 PRODUKTBESCHREIBUNG SERVERSYSTEM, CLUSTERSYSTEME FÜR PROLAG WORLD

SSDs im Einsatz mit MicroStation

INDEX. Netzwerk Überblick. Benötigte Komponenten für: Windows Server Windows Server 2008 R2. Windows Server 2012

Lerndokumentation Netzteil / PSU

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

ARAkoll 2013 Dokumentation. Datum:

Transkript:

Programmierung von Multicore-Rechnern Prof. Dr.-Ing. habil. Peter Sobe HTW Dresden, Fakultät Informatik/Mathematik www.informatik.htw-dresden.de Gliederung: Ein Blick auf Multicore-Prozessoren/ und -Rechner Weshalb? Nutzbarmachung durch Computerprogramme Multicore-Programmierung Profitierende Anwendungen Freital, 18.09.2012

Herkömmliche PCs Klassische Computer (insbes. PCs) bestehen aus: einem Prozessor (CPU, core) sockel Arbeitsspeicher (RAM) Grafikkarte (GPU) spezialisierter E/A-Bus zum Anschluss von Festplatten E/A-Bus, z.b. zum Anschluss einer Netzwerkkarte externe Interfaces, z.b. USB auf Mainboard mit einem Chipsatz

Ein Blick auf Multicore Multiprozessor-Computer (früher nur spezielle Server-PCs) bestehen aus: mehreren Prozessoren (CPU-1) (CPU-2) (CPU-3) (CPU-4) sockel sockel sockel sockel Arbeitsspeicher (RAM) Grafikkarte (GPU) spezialisierter E/A-Bus zum Anschluss von Festplatten E/A-Bus, z.b. zum Anschluss einer Netzwerkkarte externe Interfaces, z.b. USB auf Mainboard mit einem Chipsatz

Ein Blick auf Multicore Multicore-Computer (heute schon fast alle PCs/Notebooks) bestehen aus: selten mehreren Prozessor-Chips, dafür aber Chips mit mehreren Prozessorkernen (cores) (CPU-0 CPU-1 CPU-2 CPU-3) sockel Arbeitsspeicher (RAM) Grafikkarte (GPU) spezialisierter E/A-Bus zum Anschluss von Festplatten E/A-Bus, z.b. zum Anschluss einer Netzwerkkarte externe Interfaces, z.b. USB heute 2 bis 8 Kerne üblich

Weshalb werden Multicore-Prozessoren entwickelt? hohe Integrationsdichte bei Halbleitertechnologie, d.h. man kann immer mehr Funktionseinheiten auf einem Chip unterbringen Leistungssteigerung über höhere Taktfrequenz nicht mehr möglich Besser: mehrere einfache Prozessorkerne als ein hochkomplexer Kern benötigt? mehr Verarbeitungsleistung für einzelne Anwendungsprogramme, z.b. für schnellere Anzeige großer Fotos Video-Dekodierung Computerspiele gleichzeitiges Ausführen mehrerer Programme In den meisten Programmen werden mathematische Verfahren auf großen Datenmengen ausgeführt. Diese Datenmengen kann man aufteilen und parallel durch mehrere CPUs verarbeiten.

Nutzbarmachung durch Computerprogramme Anwendungsprogramm 1 z.b. Webbrowser Anwendungsprogramm 2 z.b. ein Simulator Anwendungsprogramm 3 z.b. Foto-Konvertierung Betriebssystem Rechner-Hardware mit mehreren CPUs

Multicore-Programmierung Programmierung und Programmiersprachen entwickelten sich aus sequentieller Sichtweise heute (noch?) vorwiegend sequentielle Programmiersprachen: Java, C, C++, C#, Objective-C, Fortran, Cobol Multicore Programmierung durch Erweiterung sequentieller Programmiersprachen Steuerung der Parallelarbeit durch Zugriff Betriebssystemfunktionen und Sammlungen von Unterprogrammen, meistens basierend auf s.g. Threads Teilautomatische Parallelisierung durch Übersetzerprogramme, OpenMP Frameworks und Ausführungsrahmen mit eingebauter Erzeugung und Steuerung paralleler Threads, z.b. Intel TBB, OpenCL

Multicore-Programmierung

Multicore-Programmierung thread_create thread_join

Multicore-Programmierung # omp parallel for for-zyklus

Multicore-Programmierung class MatrixVectorMult { public: void operator () (const blocked_range<size_t> &r) const { for( size_t j=r.begin(); j!=r.end(); j=j+1 ) { c[j]=0.0; partitioner parallel_for originales Problem }; for (i=0; i<n; i++) c[j] = c[j] + A[j][i] * b[i]; } Zeit parallel_for(blocked_range<size_t>(0,n), MatrixVectorMult(A,b,c), auto_partitioner); Threads

Multicore-Programmierung

Profitierende Anwendungen Wissenschaftliche Berechnungen: Lösung großer Gleichungssysteme Numerische Lösung von Differentialgleichungen z.b. für die Wettervorhersage Verschlüsselung- und Entschlüsselung Bildverarbeitung Videokomprimierung Automatische Objekterkennung in Bildern Computerspiele Webserver, -browser