• Keine Ergebnisse gefunden

Große Datenmengen

Im Dokument der Determination von Kanten mit (Seite 85-89)

3 N UMERISCHE UND MATHEMATISCHE

3.1 Große Datenmengen

Die Erzeugung und Verarbeitung von 3-dimensionalen Daten führt schon beim Einsatz von normalen TV-Farbkammeras zu erheblichen Datenmengen. So erzeugte die benutz-te Sony XC003P Kamera (siehe Instrumentenverzeichnis) bei einer Digitalisierung mit 3×8 bit und 201 verschiedenen Fokusebenen bereits ca. 264 Megabyte1Daten.

Optimale Datenformate

Im Bereich der Digitalen Bildverarbeitung wurde lange Zeit nur mit dem Datenformat Byte (28= 256 binäre Zustände), d. h. mit ganzen Zahlen zwischen 0 und 255 gearbeitet.

Selbst bei rein binären Bildern mit nur 2 Zuständen je Pixel hatte dieses Datenformat Vorteile bezüglich der Verarbeitungsgeschwindigkeit auf PC2-Rechnern. Diese klassi-sche Ausrichtung der Daten an eine 8-bit-Größe wird mit zunehmendem Dynamikum-fang der digitalen Kameras problematisch. Neuere Rechnerarchitekturen und Prozessor-en sind aber für größere DatProzessor-endurchsätze optimiert und so erfolgProzessor-en Speicherzugriffe und Bus-Operationen mit wesentlich mehr als 8 bit. Daher ist die Aussage, dass eine Verarbeitung von Daten im Byte-Format – bedingt durch die geringere Datenmenge – auch die schnellste Verarbeitung sicherstellt, nicht mehr haltbar. Abb. 3.1 zeigt zwei verschiedene Rechner mit einem

technologischen Unterschied von 5 Jahren. Das System mit dem Pentium-4 Prozessor aus dem Jahr 2002 bestätigt noch die damals übliche Aussage, dass nur mit dem Byte-Format auch die höchsten Verarbeitungsgeschwindigkeiten erreicht werden können. Hingegen zeigten neuere Systeme mit Opte-ron-Prozessoren, dass

Daten-1 Hier in der SI-konformen Bedeutung von 106Byte = 1 000 000 Byte, die umgangssprachlich oft benutzt wird, tatsächlich aber meist die Datenmenge 220Byte = 1 048 576 Byte beschreibt. Im Dezember 1998 hat die International Electrotechnical Commission (IEC) binäre Basen folgender Art vorgeschlagen:

z. B.onemebibyteals 1MiB = 220B = 1 048 576 B undonemegabyte als 1MB = 106B = 1 000 000 B.

Dies ist Bestandteil aktueller internationaler Normen geworden [3.1], wird aber selten benutzt.

2 FürPersonalComputerim Allgemeinen, wobei sowohl IBM-kompatibel PC, aber auch andere Systeme mit Mikroprozessoren – wie z. B. Apple-Macintosh – erfasst werden.

0 50 100 150 200 250 300 350 400 450

Byte - 8bit Word - 16bit DWord - 32bit Float - 32bit Double - 64bit

Datenformat

Rechenzeit [ms]

Opteron @2.0GHz 1Core Pentium 4 @2.5GHz

Abb. 3.1 Rechenzeit für eine Addition von zwei Bil-dern der Größe 4096 × 4096 und das Abspeichern des Er-gebnisses in einem drittem Bild für zwei PCs (siehe In-strumentenverzeichnis) bei verschiedenen Datenformaten.

formate mit einer Größe von 4 Byte, wie DWord1 und Float2 (Abb. 3.3) sich als die schnelleren erweisen. Ein Gleitkommaformat kann sogar schneller sein als alle ganzzah-ligen Formate. Abb. 3.1 zeigt auch, dass durchaus ein neuer Rechner trotz geringerer Taktfrequenz und trotz größeren Datenformates – selbst ohne Ausnutzung paralleler Verarbeitungsmöglichkeiten durch mehrere Prozessorkerne – schneller sein kann als ein Rechner mit einer etwas älteren Technologie aber höherer Taktfrequenz des Prozessors.

Neuere Systeme zeichnen sich auch durch Prozessoren mit zunehmenden Gleitkom-ma-Verarbeitungsleistungen aus. Abb. 3.2 zeigt am Beispiel von drei zur Konfigurati-onszeit jeweils hochwertigen PCs, wie sich im Abstand von 5 Jahren die Verarbeitungs-leistungen erhöhten. So hat sich bei diesen Workstations die Verarbeitungsleistung für ganzzahlige Operationen ca. um den Faktor 17 und für Gleitkommaoperationen ca. um den Faktor 28 gesteigert. Die Abb. zeigt auch, dass die Gleitkommaverarbeitungsleis-tung von PCs aus den 90er Jahren nur etwa 50 % der sonstigen VerarbeiGleitkommaverarbeitungsleis-tungsleisGleitkommaverarbeitungsleis-tung erreichte. Mit zunehmender Anwendung der Video- und Bildbearbeitung wurde die Gleitkommaverarbeitung für das Prozessor-Design wichtiger. So zeigen die beiden neu-eren Workstations bedingt durch eine Befehlserweiterung nur noch einen Abfall der Gleitkommaverarbeitungsleistung auf 84 %.

Von besonderer Bedeutung sind hier Ansätze zur parallelen Verar-beitung, die sonst nur bei Groß-rechner üblich waren. Die SIMD3 -Befehlserweiterungen erlauben die gleichzeitig Bearbeitung von meh-reren gleichartigen Datensätzen mit einem Befehlsaufruf. Mit den Pen-tium IV Prozessoren erfolgte die Einführung von SSE24. Wenn die Software diese Befehlserweiterung benutzt, kann eine besondere Be-schleunigung von Gleitkommaope-rationen erzielt werden.

Abb. 3.3 Gleitkommadatenformate nach dem Standard ANSI/IEEE 754-1985.

1 Ganzzahliger Datentyp in der Programmiersprache C mit einer Datengröße von 4 Byte (Doppelwort).

2 Gleitkomma Datentyp in der Programmiersprache C mit einer Datengröße von 4 Byte als endliche Teil-menge der rationalen Zahlen.

3 Das Akronym steht für die engl. Bezeichnung:SingleInstruction (Stream),MultipleData (Streams).

4 Das Akronym steht für die engl. Bezeichnung:StreamingSIMDExtensions2.

0 5000 10000 15000 20000 25000 30000 35000

2x Pentium II

Abb. 3.2 Vergleich der Verarbeitungsleistungen für ganze Zahlen (MIPS: Millionen Instruktionen pro Sekunde) und Gleitkommazahlen (MFLOPS: Millions of Floating Point Operations per Second) für 3 Workstations aus den Jahren 1997, 2002 und 2007 mit dem Programm Sandra 2008.

Float, einfache Genauigkeit, 32 bit: veeeeeee efffffff ffffffff ffffffff v = Vorzeichen, 1 bit

e = Exponent, 8 bits (Min = 2-126; Max = 2127)

f = Mantisse, 23 bits => Wertebereich etwa 1,175·10-38… 3,403·1038bei 6–7 Dezimalstellen Double, doppelte Genauigkeit, 64 bit: veeeeeee eeeeffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff v = Vorzeichen, 1 bit

e = Exponent, 11 bits (Min = 2-1022; Max = 21023)

f = Mantisse, 52 bits => Wertebereich etwa 2,225·10-308… 1,798·10308bei 15–16 Dezimalstellen

Paralleles Verarbeiten

Auch Abb. 3.2 zeigt wie zuvor Abb. 3.1, dass trotz geringerer Taktrate der Prozessoren eine höhere Verarbeitungsleistung des Systems möglich ist. Verstärkt wird dies, da zu-nehmend Rechnersysteme auch außerhalb des Großrechnerbereiches mit mehreren Pro-zessorkernen ausgestattet werden. Diese Ressourcen können aber nur genutzt werden, wenn die Applikations-Software auch in der Lage ist, die Aufgaben parallel auf ver-schiedene Prozessoren zu verteilen. Abb. 3.4a zeigt, wie ein übliches Softwarepro-gramm, dass nur einen Ausführungsstrang1 besitzt, auch nur die Verarbeitungsleistung eines Prozessorkernes benutzt. Erfolgt hingegen eine Multi-Thread-Programmierung mit einer Parallelisierung der aufwendigeren Berechnungen, so kann – wie Abb. 3.4b zeigt – die gesamte verfügbare Prozessorleistung genutzt werden.

Abb. 3.4a Prozessorauslastung durch ein Abb. 3.4b Prozessorauslastung durch ein Single-Thread-Programm bei 4 Kernen. Multi-Thread-Programm bei 4 Kernen.

Die optimale Parallelisierung der Verarbeitungsaufgaben kann im Einzelnen problema-tisch sein. Mit der 1997 gemeinschaftlich von verschiedenen Hardware- und Compiler-herstellern2 entwickelten Programmierschnittstelle OpenMP wurde die Nutzung von mehreren Prozessorkernen erheblich erleichtert [3.2]. Compiler der Firma Intel unter-stützen diese Schnittstelle seit dem Jahr 2000 (Version 5.0). Beginnend mit der Version 8.0 (Visual Studio 2005) ist OpenMPauch in Microsoft-Compilern verfügbar. Im Rah-men dieser Arbeit wurde bei Notwendigkeit OpenMP eingesetzt, bzw. die benutzten Bibliotheken unterstützten das parallele

Arbeiten auf mehreren Prozessorkernen.

Es ist aber nicht zu erwarten, dass eine Verdopplung der Anzahl der Prozessorker-ne auch praktisch zu eiProzessorker-ner Verdopplung der Rechenleistung führt. Abb. 3.5 zeigt am Beispiel der Nutzung einer Bibliothek zur schnellen Fourier-Transformation, die pa-ralleles Arbeiten unterstützt, dass Faktoren zwischen 1,95 und 1,45 durchaus möglich sind, aber auch ein zusätzlicher Kern ohne

1 In der engl. Fachsprache:thread.

2 Hersteller von Computerprogrammen, die in einer bestimmten Programmiersprache geschriebenen Quellcode oder Quelltext in ein Zielprogramm für das jeweilige Betriebssystem mit seinen speziellen Prozessoren umwandelt. Das kompilierte Zielprogramm kann dann direkt ausgeführt werden.

0 10 20 30 40 50 60 70 80

1 2 3 4

Anzahl der Prozessorkerne

Rechenzeit[ms] 1000 x 1000

1024 x 1024

Abb. 3.5 Rechenzeit für eine vorwärts Fourier-Transformation (complex-float) mit der FFTW-Bibliothek auf dem Auswerterechner mit 2 Dual-Kern Prozessoren.

Effekt bezüglich der Rechenzeit sein kann. Es ist gleichfalls möglich (siehe Abb. 3.6), dass trotz massiv steigender Kernzahl kaum eine Erhöhung der praktischen Verarbei-tungsleistung erzielt werden kann. Dies ist besonders wahrscheinlich, wenn das numeri-sche Problem bezüglich der Datenmenge kleiner wird und somit der Verwaltungsauf-wand zur Parallelisierung und Synchronisierung überwiegt. So zeigt das Beispiel einer Fourier-Transformation der Größe 512 × 512 mit einer relativ kleinen Datenmenge in Abb. 3.6, dass trotz einer Verachtfachung

der Rechenkerne nur ein Faktor von 1,75 erzielt wird.

Die Beschränkung des physischen Spei-cherbereiches von 2 GiB1 bei einem 32 bit-Windows-Systemen ist leicht durch den Einsatz eines 64 bit-Betriebssystems mit einem Bereich von bis zu 128 GiB zu überwinden. Voruntersuchungen bezüglich der Konfiguration des verwendeten Aus-wertesystems mit einem 64 bit-Betriebssystem und einer 64 bit-Version

des Softwaretestprogramms, das der Abb. 3.1 zugrunde liegt, ergaben keine signifikan-ten Geschwindigkeitsunterschiede. Trotzdem wurde auf die Installation eines 64 bit-Betriebssystem verzichtet, um ein breiteres Einsatzspektrum der Workstation – auch für ältere 32 bit-Software und periphere Geräte– erhalten zu können.

Diese Untersuchungen beschränken sich auf Problemstellungen und Hardware, die für diese Arbeit von Bedeutung waren. Eine Verallgemeinerung ist problematisch. Eine lineare Steigerung der praktischen Verarbeitungsleistung mit der Anzahl der verfügba-ren Prozessoverfügba-ren für komplexere Aufgaben ist aber höchst unwahrscheinlich.

1 Eigentlich eine 4 GiB-Grenze des Adressraumes, aber einerseits ist der Adressbereich über 2 GiB teil-weise für spezielle Komponenten reserviert und andererseits kann ein Windows-32 bit-Prozess ohne spezielle Erweiterungen nur 2 GiB verwalten.

0 1 2 3 4 5 6

1 2 3 4 5 6 7 8

Anzahl der Prozessorkerne

Rechenzeit[ms] 512 x 512

Abb. 3.6 Rechenzeit für eine vorwärts Fourier-Transformation (complex-float) mit der FFTW-Bibliothek auf einem Rechner mit 2 Quad-Kern Prozessoren Intel E5345.

Im Dokument der Determination von Kanten mit (Seite 85-89)