Maxon setzt auf Intel Softwaretools für optimierte Apps

veröffentlicht von Michael Hülskötter am 16. Dezember 2009 (1) Kommentar

Dass Maxon alles dafür getan hat, ihre Software-Anwendungen wie Cinema 4D für die aktuellen Intel-Prozessoren zu optimieren, darüber habe ich schon vor längeren gebloggt. Und wie es der Zufall wollte (ok, der natürlich keiner war), konnten wir mit Maxon höchstpersönlich darüber reden, wie sie es immer wieder schaffen, dass ihre Anwendungen besonders performant auf Rechnern mit Intel-Architektur laufen.

Ein wesentlicher Punkt ist unter anderem der Einsatz des Intel C++ Compilers, der laut Maxon schon mal ohne nennenswerte Änderungen am Code etwa 15 Prozent mehr Speed bringt. Aber auch der Intel Thread Profiler steht bei Maxon ganz oben auf der Liste, wenn es darum geht herauszufinden, wie sich das parallelisierte Programm verhält, ob also die anfallenden Threads möglichst gleichmäßig auf die vorhandenen Ressourcen verteilt werden (Skalierung ist hier das Zauberwort).

Darüber hinaus kommen VTune Performance Analyzer und Intel Threading Building Blocks zur Sprache. Ok, dann würde ich mal sagen, den Rest solltet ihr euch am besten selbst ansehen. Viel Spaß dabei!

Kategorien : Multicore Tags : , , ,

Video Talk: Was Linux-Entwickler von Moblin haben

veröffentlicht von Michael Hülskötter am 25. November 2009 (2) Kommentare

Zugegeben, das mobiledevcamp in München ist schon wieder ein paar Tage her, aber es ist seitdem viel passiert und daher präsentiere ich erst heute unser Videointerview, das wir mit Fritz Gerneth und Marcel Wagner von Intel am Rande der Konferenz gedreht haben.

Während der fast zehn Minuten kann man als (angehender) Moblin-Entwickler lernen, dass …

  • Moblin natürlich ein Open-Source-Projekt ist und vor allem von OSVs (Operating System Vendor) eingesetzt werden wird.
  • man bereits ein Netbook kaufen kann, auf dem Moblin respektive Ubuntu läuft.
  • Windows 7 auf Netbooks ganz gut aussieht, auf MIDs oder Smartphones sicherlich nicht (und hier kommt dann zum Beispiel Moblin zum Einsatz).
  • es für jeden Formfaktor der kleinen Internetgeräte verschiedene Bedieneroberflächen gibt, je nach Größe des integrierten Bildschirms.
  • es vor allem in Taiwan bereits große Aktivitäten in Sachen moblin-basierte Software-Entwicklung gibt (wenn wundert’s!).
  • es möglich ist, mit dem “Grafikprogramm” Clutter ansprechende Bedieneroberflächen zu “bauen”, was auch bei Netbooks (und anderen kleinen Geräten) von enormer Wichtigkeit ist.
  • sich mit Moblin plattformübergreifende Software-Entwicklung realisieren lässt.

Ach ja: In dem Video ist noch von Moblin 2.0 als aktueller Version die Rede. Mittlerweile wurde die Release 2.1 vorgestellt.

Und jetzt: Film ab!

Kategorien : Mobile Tags : , , ,

Wie Linux-Entwickler von Netbooks und MIDs profitieren

veröffentlicht von Michael Hülskötter am 26. Oktober 2009 (5) Kommentare

Heute Morgen hatte ich die Gelegenheit, mit Martin Mohring ein Telefoninterview zu führen. Mohring ist seit kurzem einer der führenden technischen Köpfe der Linux Foundation und wird am kommenden Samstag auf dem Mobiledevcamp eine Techsession zum Thema OBS halten. Um die Neugier schon mal ein wenig anzuheizen, habe ich Mohring ein paar schlaue Fragen gestellt.

Herr Mohring, was machen Sie eigentlich den ganzen Tag?
Martin Mohring: Wir entwickeln bereits seit 1994 Embedded-Systeme, die auf Linux basieren. Damals war es das Thema Digitales Fernsehen, und zwar in Form der D-Box sowie der zugehörigen Verschlüsselung, die wir im Auftrag der Kirch Gruppe entwickelt haben. Mittlerweile nennen wir uns 5e DataSoft und beschäftigen uns mit linux-basierten Anwendungen, speziell für den mobilen und multimedialen Einsatz. So kümmern wir uns um den openSUSE Build Service (OBS), den wir permanent verbessern. Dabei entwickelt sich OBS immer mehr in Richtung Lifecyle Management. Den praktischen Einsatz von OBS werde ich ja am Samstag auf dem Mobiledevcamp zeigen.

Wir sind aber auch nach wie vor am Thema digitales Fernsehen dran, und das natürlich auch für Embedded-Systeme von Intel, und zwar von Sodaville bis Moorestown. Wir haben nämlich früh erkannt, dass sich die SoC-Komponenten (System-on-a-Chip) sehr gut für Multimedia eignen, und brachten auf einem frühen System openSUSE zum Laufen, was nicht nur Intel überrascht hat. Damit bekommt der Anwender in Zukunft eine Plattform für 3D, HDTV, Telefonie und andere schöne Dinge.

Was machen Sie bei der Linux Foundation?
Mohring: Ich bin für die Linux Foundation im operativen Bereich unterwegs. In dieser Rolle bin ich für das Engineering zuständig. Im ersten Projekt bauen wir ein Build Service für das Linux Developer Network auf, damit in Zukunft zenral verwaltete Upstream-Entwicklungen möglich sind. Hierbei geht es um den Major Sourcecode, den andere Entwickler und Distributoren verwenden.

weiterlesen…

Kategorien : Mobile Tags : , ,

Skalierende Musikprojekte dank Multithreading: Sonar 8

veröffentlicht von Michael Hülskötter am 17. März 2009 (1) Kommentar

Der Name Cakewalk ist wohl hauptsächlich eingefleischten Audio-Freaks ein Begriff. So entwickelt das in Boston, Massachusetts beheimatete Unternehmen Software für Musiker und ähnliche Menschen. Eines der wichtigsten Software-Titel von Cakewalk ist Sonar, ein professioneller Audio-Sequenzer, mit dem sich sowohl Audio- als auch MIDI-Tracks parallel mischen, arrangieren und aufnehmen lassen. Ach ja: Sonar hieß irgendwann mal Cakewalk Pro resp. Cakewalk Pro Audio. Aber das nur so am Rande.

Warum ich das alles erzähle? Nun, ich hatte gestern die exklusive Gelegenheit, mit Noel Borthwick ein ausführliches Telefonat zu führen. Noel ist CTO von Cakewalk, also der führende technische Kopf des Unternehmens. So gesehen hat Noel eine ganze Menge über Sonar und dessen Multithread-Fähigkeiten zu erzählen.

Zunächst einmal gab es ein wenig Geschichtliches. So erfuhr ich, dass Cakewalk Pro Audio etwa 1993/94 entstanden ist und damals schon multithread-fähig war. Ok, natürlich nur auf einer Multisocket-Plattform mit zwei parallel geschalteten Prozessoren, mit deren Hilfe es möglich war, die komplette Bedieneroberfläche auf einen separaten Thread auszulagern und die Audio Engine auf die zweite CPU. Das war sicherlich nicht sonderlich effektiv, zeigt aber, das sich Cakewalk schon seit mehr als 15 Jahren mit dem Thema Multithreading beschäftigt – und das sehr erfolgreich, wie die Firmenhistorie zeigt.

Im Jahr 2001 vollzog Cakewalk dann den Namenswechsel: Aus Cakewalk Pro Audio wurde Sonar und damit ein skalierendes Produkt, das auf Basis einer komplett neu entwickelten Audio Engine die Möglichkeiten des damals aufkommenden Software-Multithreadings erheblich besser ausnutzen konnte als sein Vorgänger. Hierfür war neben dem Redesign der Software auch ein eigener Task Scheduler notwendig, der in Sachen Funktionsumfang dem Task Scheduler der Intel TBB ähnelt. Für eine optimale Skalierung werden also die vorhandenen Ressourcen (Kerne) ermittelt und anhand dessen die anstehenden Aufgaben (Tasks) intern in Threads umgewandelt und zur Laufzeit dynamisch auf die vorhandenen Prozessorkerne verteilt.

weiterlesen…

Kategorien : Multicore Tags : , ,

Multicore-Fähigkeiten mit Spezialtool herausfinden

veröffentlicht von Michael Hülskötter am 9. Februar 2009 (0) Kommentare

Im bayerischen Pilsting-Großköllnbach kennt man sich ziemlich gut aus mit der Archivierung von relationalen Datenbanken. Denn in Pilsting-Großköllnbach sitzt die Software-Schmiede CSP GmbH und Co. KG, die das Archivierungstool Chronos entwickelt hat. Diese Anwendung lagert nicht permanent benötigte Daten in ein Langzeitarchiv aus, um so die vorhandenen Datenbankserver kontinuierlich zu entlasten.

Das Extrahieren dieser Daten geschieht in Echtzeit, also während des laufenden Betriebs. Um eine möglichst reibungslose Archivierung zu garantieren, hat sich die CSP schon sehr früh auf das Multithreaden ihrer Anwendung konzentriert.

Das gesamte Konzept ist also auf parallele Datenverarbeitung ausgelegt. Es findet sogar eine doppelte Parallelisierung statt: Es kommt ein Mini-Cluster zum Einsatz, in dem einzelne Server bestimmte Aufgaben übernehmen. Und innerhalb dieser Server gibt es eine hohe Multithreading-Kultur, die eine skalierende Ausführung der Anwendung sicherstellt.

Chronos ist übrigens vollständig in Java programmiert und findet innerhalb der Java Runtime Environment statt, die standardmäßig mit Java-Threads auskommt. Auf diesem Weg können Java-Anwendungen mithilfe bestimmter Bibliotheken und Klassen parallelisiert werden. Für die komplette Verwaltung sämtlicher Threads hat CSP übrigens einen eigenen Threadmanager entwickelt, der im Hintergrund analog zu den Threading Building Blocks die einzelnen Tasks auf die vorhandenen Prozessoren und Threads verteilt. Für eine bestmögliche Auslastung der Ressourcen.

Wieso können sich die Entwickler von CSP aber so sicher sein, dass Chronos wirklich optimal auf Intel Multicore-Plattformen skaliert? Nun, um das herauszufinden, besorgte man sich in Pilsting-Großköllnbach das kostenlose Tool Concurrency Checker, mit dessen Hilfe festgestellt werden kann, ob eine Anwendung effizient auf Intel Multicore-Plattformen läuft.

Und die Entwickler der CSP GmbH waren ziemlich schnell davon überzeugt, dass der Concurrency Checker das richtige Tool für ihre Zwecke ist. Denn sie waren sehr zufrieden mit der Bedienbarkeit des Programms, da sie für einen ausführlichen Multicore-Test gerade mal einen halben Tag investieren mussten. Danach war den CSP-Programmierern klar, dass sich der Concurrency Checker für ihre Zwecke optimal einsetzen lässt. Und dass Chronos auch das hält, was es verspricht: eine optimale Ausnutzung der vorhandenen Systemressourcen, sprich der Prozessorkerne und Threads.

Kategorien : Multicore Tags : , , ,

Interview: Visual Studio 2010 und seine Multicore-Fähigkeiten

veröffentlicht von Michael Hülskötter am 6. Februar 2009 (1) Kommentar

Während der OOP 2009 gab es die Möglichkeit, mit Microsoft zusammenzusitzen und ein wenig über Visual Studio 2010 und das zugehörige .NET Framework 4.0 zu plaudern. So der Plan! Leider kam es anders, was dazu führte, dass ich am vorigen Mittwoch via Festnetz mit einem der Technikgurus, Dariusz Parys, über diverse Aspekte der Parallelprogrammierung mithilfe des .NET-Framework in der Version 4.0 sprach. Und das ist dabei herausgekommen.

Wie unterstützt das .NET Framework 4.0 die parallele Programmierung?
Hierfür gibt es diverse Komponenten. Es wird sowohl für den Bereich “Managed Applications” – also C# und Konsorten – als auch für native Programmiersprachen (Fortran, C++ etc.) Bibliotheken und ähnliche Dinge geben. Für beide Programmiermodelle wurde die Concurrency Runtime entsprechend aufgebohrt.

Für die .NET-Entwickler gibt es dann zwei neue Modelle, und zwar die Task Parallel Library (TPL) und PLING. Mit der TPL lassen sich Aufgaben abstrahieren, was unter der Oberfläche und mithilfe der Concurrency Runtime zu Threads führt, um deren Verteilung auf die einzelnen Prozessorkerne sich der Entwickler nicht mehr kümmern muss. PLINQ stellt eine parallelisierte Erweiterung von LINQ dar. Und LINQ wiederum ist “eine Komponente von Microsofts .NET-Framework, mit der SQL-, XLink- und XQuery-Anfragen direkt in .NET-Programmiersprachen wie C# 3.0 oder VB.Net 9.0 als Code statt als String eingebunden werden können” (Quelle: Wikipedia).

Aber auch bei den nativen Sprachen gibt es neue Ansätze bezüglich der Concurrency Runtime: Dies ist zum einen die Parallel Pattern Library, die sich mit den Intel Threading Building Blocks vergleichen lässt. Zum anderen bietet Visual Studio 2010 eine Agent Library für C++ und Co, die bestimmte Aufgaben verwalten und ausführen kann.

Was sagen Sie Entwicklern, wenn Sie mit ihnen über die parallele Programmierung reden?
Das hängt davon ab, mit wem ich spreche. Entwickler, die sich zum Beispiel schon länger mit serviceorientierten Anwendungen beschäftigen, in denen separate Aufgaben durch Dienste erledigt werden, verstehen das Konzept der parallelen Programmierung oft schneller als Programmierer, die nur die rein serielle Entwicklung kennen. Wichtig dabei ist die Erkenntnis, dass es in den meisten Anwendungen Programmteile gibt, die man loslösen kann von der restlichen Programmlogik. Ein Beispiel hierfür ist die parallele Speicherung von Daten.

weiterlesen…

Kategorien : Multicore Tags : , , ,

Multicore-Programmierung auf der OOP 2009 [Upd]

veröffentlicht von Michael Hülskötter am 27. Januar 2009 (0) Kommentare

Seit gestern läuft eine der größten Entwicklerkonferenzen im deutschsprachigen Raum, die OOP 2009. Dort geht es um vielfältige Softwarethemen und natürlich auch um die Multicore-Programmierung.

Aus diesem Grund werde ich mich heute und morgen Nachmittag im Messezentrum München herumtreiben und diesbezügliche Informationen zusammentragen. So treffe ich unter anderem die Leute der Dotnetpro, die auf der OOP mit einem eigenem Stand vertreten sein werden. Eines ihrer Themen wird die erste deutschsprachige Multicore-Konferenz sein, die am 23. April diesen Jahres ebenfalls in München stattfindet.

Am Dotnetpro-Stand hoffe ich die Hauptredner des Multicore-Powerday zu treffen, Ralf Westphal und Bernd Marquardt. Mit beiden plane ich kurze Interviews, in denen sie mir hoffentlich ein wenig mehr über ihre Sessions auf der Eintagesveranstaltung im April erzählen werden.

Nach diesen Interviews treffe ich mich mit einer weiteren Koryphäe der Multicore-Programmierung: Walter F. Tichy von der Uni Karlsruhe, der um 17:45 Uhr mit seinem Vortrag “Herausforderung Mehrkernsysteme” dran ist. Im Gespräch mit ihm werde ich versuchen, die scheinbaren Widersprüche aufzulösen, die in seinem Gastbeitrag zu stecken scheinen, den er für die Online-Ausgabe der Computerzeitung geschrieben hat. In seinem Vortrag scheint er ebenfalls ein, zwei diskussionswürdige Thesen zu vertreten:

Der Vortrag skizziert die gegenwärtige Hardwareentwicklung und geht dann auf erste Erfahrungen mit der Parallelisierung nicht-numerischer Anwendungen ein. Insbesondere werden einige der üblichen Parallelisierungsempfehlungen als Mythen entlarvt.

Wie dem auch sei, ich bin schon sehr gespannt, was die Herren Westphal, Marquardt und Tichy zu erzählen haben. Und was sonst noch alles auf der OOP 2009 los ist, sehe ich mir ebenfalls an und werde darüber live und in Farbe berichten. So, stay tuned …

Update: Ich habe während der OOP 2009 zwei Vorträge zum Thema Multicore-Programmierung besucht. Daraus sind 12 Thesen zur Multithread-Entwicklung enstanden sowie eine mehrteilige Mini-Serie zum Thema Multicore-Programmierung (Teil 1, Teil 2, Teil 3).

Kategorien : Multicore Tags : , ,

Lernen mit Crytek: Deshalb ist Crysis erfolgreich

veröffentlicht von Michael Hülskötter am 14. Januar 2009 (0) Kommentare

Director of Technology, Mister Mark Atkinson von CrytekAnfang 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.

weiterlesen…

Kategorien : Multicore Tags : , , ,