EXASolution ermöglicht Datenanalysen in Quasi-Echtzeit
Über Exasol habe ich in der Vergangenheit ja schon berichtet. Letzte Woche dann wurde aus der Theorie Praxis, und zwar in Form einer Roadshow, auf der Anwender zu Wort und eine kurze Demo zum Einsatz kamen.
Zu den Präsentierenden gehörte Dr. Carsten Bange vom Marktforschungsunternehmen BARC, der eine Menge interessanter Fakten in Sachen Datenaufkommen der Gegenwart und Zukunft zu erzählen hatte. So generierte laut Bange Wal Mart im Jahr 1992 gerade mal ein Terabyte Daten, 2007 waren es schon 1.000 Terabyte – Tendenz stark steigend.
Die Kurzdarstellungen der Herren Alexander Krull von Webtrekk, Michael Kempke von IMS Healthcare und Frank Stoll von Quelle gewährten ebenso interessante Einblicke in ihre Zusammenarbeit mit Exasol und den Einsatz von deren Datenbankanwendung EXASolution. So analysiert IMS beispielsweise mithilfe von EXASolution 960 Millionen Rezeptdaten innerhalb von schlappen 5 bis 12 Minuten. Und auch Webtrekk ermöglicht es Datenanalysen, für die nur wenige Minuten erforderlich sind.
Eines hatten die drei Referenzkunden also gemein: EXASolution hat ihnen bei der Lösung ihrer Probleme wirklich weitergeholfen. Denn neben der wohl recht unproblematischen Implementierung (parallel zur bestehenden Infrastruktur) geht es bei der Exasol-Lösung vor allem um Tempo.
Maxon-Multithreading: Darum ist Cinema 4D so performant
Maxon ist vor allem bei 3D-Designern ziemlich bekannt, denn mit Cinema 4D steht dieser Anwenderschar seit mehr als 15 20 Jahren ein Modeling- und Renderingtool zur Verfügung, mit dem sich hoch komplexe 3D-Gebilde erschaffen lassen. Aber auch Hardware-Redaktionen können mit dem Namen Maxon etwas anfangen: So kann man mit dem kostenlosen Benchmark-Tool CineBench die Rechen- und Grafikleistung eines PCs oder Notebooks testen. Dabei ermittelt CineBench auch die Multicore-Fähigkeiten von Rechnern, indem automatisch alle verfügbaren Prozessorkerne ausgelastet werden. Ein prima Multithreading-Testtool also.
Um Cinema 4D multicore-tauglich zu machen, unternimmt Maxon schon seit vielen Jahren größte Anstrengungen. Das geschieht bereits seit Mitte der 90er Jahre, lange bevor die die ersten Prozessoren mit Hyperthreading auf den Markt kamen. Schon damals galt die Parallelprogrammierung als eine nicht ganz triviale Disziplin, da man vor allem die gemeinsamen Speicherzugriffe und die daraus resultierenden Probleme wie Dead Locks und Data Races in den Griff bekommen musste. Mit Erfolg, wie man an Cinema 4D gut sehen kann.
Doch was hat Maxon alles im Laufe der Jahre getan, damit die Anwendungen auf einem Multicore-System optimal skalieren? Dazu hat Tilo Kühn, Senior Software Developer bei Maxon, eine recht einfache Erklärung parat: Man muss als Entwickler vor allem dafür sorgen, dass die Datenstrukturen von Anfang an so angelegt werden, dass beim parallelen Ausführen der Anwendung die Anzahl der Synchronisation so gering wie möglich ausfällt und es nicht zu Data Races oder ähnlichen Verklemmungen kommen kann. Denn jede Datensynchronisation bedeutet einen Mehraufwand, der den Programmablauf unnötig stört und behindert.
Erfolgsgeschichten in Sachen Intel-Softwaretools
Gerade habe ich auf dem Intel Software Network eine interessante Liste von Anwendungsfällen gefunden, die zeigen sollen, bei welchen Applikationen Intel-Softwaretools erfolgreich zum Einsatz gekommen sind. Dazu gehören unter anderem:
- Die Open-Source-Datenbank MySQL konnte dank der Intel C++ Compiler um 27 bis 42 Prozent schneller gemacht werden. Und zwar sowohl für Pentium-4- als auch Itanium-2-Prozessoren.
- Mithilfe des Intel-Fortran-Compilers gelang es der australischen Swinburne-Universität für Astrophysik, ihre HPC-basierten Anwendungen auf dem zugehörigen Supercomputer nochmals um 22 bis 31 Prozent zu beschleunigen.
- Die Datenbankanwendungen von Oracle laufen sowohl unter Linux als auch unter Windows schneller, da beide Versionen dank der Multicore-Optimierungen der entsprechenden Compiler noch mehr aus der Hardware herausholen.
- Das Erstellen von MP3-Songs mithilfe der Kodierungssoftware Musicmatch Jukebox geschieht dank des Intel C++ Compilers um 37 Prozent schneller als zuvor. Hierzu hat die Profiling-Software VTune Performance Analyzer allerdings auch einen Teil beigetragen.
Neben diesen compiler-basierten Verbesserungen hilft VTune immer mehr Software-Anbietern, ihre Anwendungen für Intel-Prozessoren zu optimieren. Dazu gehört bespielsweise Kaspersky Lab, das seine Antiviren-Software mithilfe des Intel-Tools verbessern konnte. Ebenso konnte Abaqus Inc. dank VTune seiner Simulationssoftware neues Leben einhauchen.
Wer mehr wissen will zu den einzelnen Erfolgsgeschichten, begebe sich auf die zugehörige Webseite. Dort finden sich auch sämtliche Fallstudien in PDF-Form zum Download.
ISC’09: Warum Intel und Nero gut harmonieren
Erst mal gibt’s ein paar Nero-Zahlen: insgesamt 300 Millionen verkaufte Software-Pakete (50 Mio. pro Jahr), 120 Millionen Besucher pro Jahr auf Nero.com.
Die ersten Multithread-Erfahrungen hat Nero mit seiner Brennsoftware vor vielen Jahren gemacht, was der Firma heute noch dabei hilft, neue Software-Titel für die aktuelle Hardware-Generation so zu schreiben, dass sie möglichst gut skalieren.
Nach einer ganzen Menge an marketinglastigen Infos wird’s endlich technisch. Zunächst geht es um die Frage, welchen Herausforderungen sich ein Entwickler gegenüber sieht, wenn er Multimedia-Software möglichst leistungsfähig schreiben will. Dazu gehört unter anderem Realtime-Encoding (und das natürlich parallel) – in möglichst vielen Datenformaten. Aber auch hoch komplexe Codecs, HD-Inhalte, große Datenmengen und DRM-/Sicherheitsaspekte stellen Herausforderungen dar.
Doch wie schafft es Nero, in Multicore-Dimensionen zu denken? Nun, hierfür sind laut Charly Lippoth neue Kenntnisse und ein neues Denken erforderlich. Dazu gehört beispielsweise die Erkenntnis, dass Funktionen möglichst gut auf den vorhandenen Prozessorkernen skalieren müssen.
Aber auch die Programmierung auf Maschinencode-Ebene hilft Nero beim Optimieren der Software, indem beispielsweise SSE-Befehle optimal eingesetzt werden. Ein weiterer Aspekt ist aber natürlich der Einsatz der richtigen Tools.
“Nero unterstützt bereits seit der Version 7 Multithreading”
Das Thema Multithreading steht bei weitem noch nicht überall auf der Agenda, obwohl Mehrkernprozessoren wie der Pentium D den Massenmarkt schon seit etwa vier Jahren bereichern. Umso erstaunlicher ist es, dass nach wie vor nur ein Bruchteil der bestehenden Software zwei oder mehr Prozessorkerne optimal nutzt. Klar, Betriebssysteme wie Windows Vista oder auch das künftige Windows 7 unterstützen von Haus aus Multicore-Plattformen, wirklich effizient skalieren die meisten Softwaretitel aber nicht.
Jedoch gibt es mehr und mehr Ausnahmen von der Regel, wie ich ja hier schon anhand der Beispiele Nik Software, Crytek, Cakewalk und DivX gezeigt habe. Dazu gehört auch Nero, die schon seit der Version 7 ihrer Suiten Multithreading betreibt. Seitdem werden die Software-Titel wie Nero 9 immer weiter optimiert, um eine bestmögliche Ausnutzung der Hardware-Kapazitäten gewährleisten zu können. Hierfür arbeitet Nero sehr eng mit Intel zusammen, um in diesem Bereich optimale Ergebnisse erzielen zu können.
How-to: Deshalb skaliert DivX 7 auf Multicore-Plattformen
Anfang des Monats haben wir über eine Neuerscheinung am Codec-Firmament berichtet, nämlich über DivX Version 7. Das Besondere daran: DivX 7 wurde intensiv auf seine Multicore-Fähigkeiten hin überprüft und optimiert.
Natürlich wollten wir wissen, was DivX alles dafür getan hat, dass Version 7 unter anderem HD-Videos im H.264-Format bei voller Auflösung dekodieren kann, ohne dass es auf einem PC oder Notebook mit Core 2 Duo oder Quad ordentlich ruckelt. Heute kamen die Antworten bei uns an. Und das sind sie (inklusive ihrer Fragen):
Welche Softwaretools kamen zum Einsatz, damit DivX 7 vorhandene Multicore-Plattformen optimal unterstützt?
Antwort: Zunächst einmal haben wir ganz unten angefangen. Soll heißen, dass wir sämtliche DivX-Algorithmen auf Quellcode-Ebene mithilfe des VTune Performance Analyzer auf mögliche Flaschenhälse und damit auf potenzielle Optimierungsarbeiten hin untersucht haben. Das lieferte uns schon mal sehr interessante Anhaltspunkte. Darüber hinaus kamen eigene Tools zum Einsatz, um die Leistungswerte und die Qualität unserer Codecs zu überprüfen.
Skalierende Filter: Nik Software setzt auf Multicore
Wir haben über das Thema schon mal berichtet: Datenparallelität, also das simultane Berechnen von unabhängigen Daten, wie sie beispielsweise in der Bildbearbeitung anfallen. Denn einem Pixelgebilde, das aus mehreren Millionen Bildpunkten besteht, ist es völlig wurscht, ob nun Bildpunkt 1 oder 599 oder 122.921 zuerst oder zuletzt manipuliert wird.
Daher steckt eine ganze Menge Multicore-Potenzial in der Manipulation von Bildern, vor allem dann, wenn es sich um große Digitalfotos handelt. Dabei ist die Parallelisierbarkeit völlig unabhängig vom Format, so dass Bilder im sogenannten RAW-Format genauso von parallelisierten Algorithmen profitieren wie JPEG- oder TIFF-Dateien.
Wie wichtig in solch einem Fall das optimale Zusammenspiel von Hard- und Software ist, hat unter anderem Nik Software erkannt, ein Anbieter von Bildbearbeitungstools, die sich an professionelle Fotografen und ähnliche Menschen richten. Eines der Highlight-Produkte von Nik Software nennt sich Silver Efex Pro. Dabei handelt es um einen Schwarzweiß-Filter für Adobe Photoshop und Apple Aperture, mit dem sich Farbbilder in S/W-Kunstwerke verwandeln lassen. Hierfür setzt Nik Software auf die eigene Manipulationstechnik U Point, die es erlaubt, anhand definierter Bildbereiche (sogenannter Kontrollpunkte) diese separat zu bearbeiten.
Lernen mit Crytek: Deshalb ist Crysis erfolgreich
Anfang Dezember haben Crytek und Ascaron den Deutschen Entwicklerpreis 2008 verliehen bekommen. Acscaron für Sacred 2 – Fallen Angel und Crytek für Crysis. Beiden Spielen liegt eine Menge an Optimierungsarbeit zugrunde. Soll heißen, dass beide Softwareschmieden ihre Erfolgstitel intensiv auf Multicore-Plattformen abgestimmt haben, damit diese bestmöglich auf zwei, vier, acht oder mehr Prozessorkernen skalieren.
In beiden Fällen wollten wir natürlich wissen, welche Anstrengungen unternommen wurden, um die Spieletitel zu parallelisieren. Tja, und heute haben wir Teil eins unserer Fragen zurückbekommen, und zwar von Crysis. Geantwortet hat der Director of Technology höchstpersönlich, Mister Mark Atkinson. Mark zeichnet übrigens verantwortlich für erfolgreiche Titel wie Burnout Revenge und Football Manager 2009, die er vor seiner Zeit bei Crytek mitentwickelt hat.
Software Dev Blog: Mit welchen Tools haben Sie Crysis für Multicore-Plattformen optimiert?
Mark Atkinson: Wir setzen im Wesentlichen eigene Tools ein, um den Quellcode unserer Spieletitel wie Crysis für Multicore-Plattformen zu optimieren. Aber auch externe Anwendungen wie der VTune Performance Analyzer kommen bei uns zum Einsatz. Dieser ist für uns vor allem wegen des Thread Profilers interessant, mit dessen Hilfe wir überprüfen können, in welchem Umfang und in welcher Qualität die Parallelisierung des Spieletitels gelungen ist.
Highend-Datenbanksystem für Cluster-Umgebungen
Wenn sich Analyse-Unternehmen wie die Berliner Webtrekk GmbH daran machen, jeden Tag tausende von Benutzerdaten zu sammeln, zu filtern und auszuwerten, um beispielsweise das Kaufverhalten von Online-Besuchern zu untersuchen, ist eine leistungsfähige Datenbankanwendung erforderlich. Diese muss nämlich jährlich mehrere Milliarden Datensätze verwalten und an andere Systeme möglichst schnell übergeben, damit diese die Daten in Echtzeit berechnen und ausgeben können.
Herkömmliche SQL-Datenbanken stoßen bei der Ausführung solch komplexer Aufgaben ziemlich schnell an ihre Leistungsgrenzen, das betrifft sogar den Marktführer in Sachen relationale Datenbanken, Oracle. Aber mit einer Speziallösung der Firma Exasol lassen sich solche Herausforderungen ziemlich elegant meistern. Deren DB-Lösung EXASolution ermöglicht mithilfe ausgereifter Technologien wie der In-Memory-Technik und einer Shared Nothing Architektur vor allem in Sachen Rechencluster sehr beeindruckende Datendurchsatzraten. Diese sind teilweise bis zu 100-mal höher als vergleichbare Systeme.
Zum Vergleich: Mithilfe des standardisierten Benchmarks TPC-H erreicht EXASolution in Kombination mit einem Cluster von Fujitsu Siemens Computers, der sich aus 80 Servern der Marke PRIMERGY RX300 S3 zusammensetzt, den bis dato noch nie erreichten Wert von rund 1,6 Millionen Datenbankabfragen pro Stunde. Oracle-basierte Systeme kommen hier auf einen Wert von 115.000. Darüber hinaus bietet die Exasol-Lösung einen weitaus besseren TCO-Wert, der ungefähr die Hälfte des Wertes anderer Lösung beträgt.
PowerDirector 7 ist für Core i7-Prozessor optimiert
Es ist jetzt gerade mal zwei Wochen her, dass Intel den Core i7 Prozessor vorgestellt hat, und schon erreicht uns heute eine E-Mail von Cyberlink, dass der taiwanesische Software-Hersteller sein Videoschnittprogramm PowerDirector 7 für den Quadcore-Prozessor optimiert hat.
Das bedeutet primär, dass die Videobearbeitung dank der acht gleichzeitig ablaufenden Threads auf den vier Prozessorkernen einen enormen Leistungssprung erfährt. Darüber hinaus profitiert PowerDirector 7 von der Intel QuickPath-Technologie und dem 8 MByte großen L3-Cache des Core i7 – für noch mehr Tempo beim Videoschnitt.
Der Quadcore-Prozessor ist unter anderem dafür verantwortlich, dass das Vorschau-Rendering schneller geschieht als auf herkömmlichen Quadcore-Rechnern, dass Effekte schneller verarbeitet werden und dass sich optische Medien noch schneller brennen lassen. So ist beispielsweise ein HD-Video, das mit dem rechenintensiven Pencil-Sketch-Effekt versehen wird, in weniger als einer Minute vollständig gerendert. Auf einem Core 2 Quad Q9550 benötigt derselbe Rechenaufwand zwei Minuten. Fazit: Die Wartezeit lässt sich mit dem Core i7 locker halbieren.
Wem diese Infos ein wenig zu dünn sind, der kann sich schon mal auf mehr freuen. Wir wollen nämlich auch wissen, an welchen Stellen Cyberlink Code-Optimierung vorgenommen hat und welche Tools hierfür zum Einsatz gekommen sind. Sobald wir diese Details vorliegen haben, gehen diese online. Versprochen!
Ach ja: Wer mehr zu PowerDirector 7 lesen will, kann dies auf der passenden Webseite tun.
