Virtuelle Instrumente Parallele Prozesse dank Multicore verarbeiten

Redakteur: Dipl.-Ing. (FH) Hendrik Härter

Der 12. Anwenderkongress von National Instruments VIP ist Geschichte – aber es wurden entscheidende Impulse für die Zukunft in der Mess- und Automatisierungstechnik geboten. Die Zukunft ist parallel. Ist die Software auch in der Lage, parallele Prozesse zu verarbeiten?

Anbieter zum Thema

Die Kongressveranstaltung „Virtuelle Instrumente in der Praxis 2007“ von National Instruments, die mehr als 600 Teilnehmer nach Fürstenfeldbruck bei München lockte, stand in diesem Jahr ganz im Zeichen der Parallelität: „Die Welt ist parallel. Wir Menschen arbeiten parallel. Wir tun viele Dinge gleichzeitig, wir gehen, sprechen und betrachten die Welt – alles auf einmal. Warum beschränken wir uns also auf sequenzielles Denken, wenn wir Computerprogramme schreiben?

Wo uns doch bereits eine Programmiersprache zur Verfügung steht, die es uns ermöglicht, Problemstellungen paralleler Natur zu lösen“. Mit diesen Worten eröffnete Rahman Jamal Technischer Direktor bei National Instruments Central Europe – die R&D-Keynote am zweiten Kongresstag. Ausgehend vom Phänomen der Parallelität wurde dort in Live-Demonstrationen ein Ausblick in die Zukunft des grafischen Systemdesigns gegeben.

Das Problem mit mehreren Kernen

Einfache Singlecore-Prozessoren werden immer mehr durch Multicore-Prozessoren abgelöst. Grund: Gegenwärtig stoßen die Singlecore-Prozessoren an ihre physikalischen Grenzen. Auch lässt sich der Prozessortakt nicht beliebig ins Unendliche erhöhen oder die Integrationsdichte weiter ausbauen. Und ein weiterer Nachteil ist der hohe Stromverbrauch und die damit verbundene Wärmeabgabe.

Ein Lösungsansatz ist der Mehrprozessor-Kern. Durch den Zusammenschluss mehrerer Single-Cores lässt sich die Arbeit besser verteilen – Parallelität, die Anwendungen auf die einzelnen Prozessoren verteilen. So lassen sich gleichzeitig mehr Prozesse erledigen. Schon allein von einem Single zu einem Dual-Core bedeutet eine Verdoppelung. Experten prognostizieren, dass es innerhalb der nächsten fünf Jahre Chips mit bis zu 128 Prozessoren geben wird.

Programmiersprachen müssen parallele Ressourcen verwenden können

Nur was bringen die vielen einzelnen Kerne für Vorteile, wenn sie nicht parallel angesteuert werden können? Wichtig ist, dass zukünftige Programmiersprachen parallele Ressourcen auch verwenden können. Die traditionellen textbasierten, sequenziellen Programmiersprachen, für die ein einzelner Prozessor ausreicht, genügen den gestiegenen Ansprüchen nicht mehr. Und das Prozessor-Modell von Neumann, die Grundlage für sequenzielles Arbeiten, ist in der parallelen Welt und Multicore ungeeignet.

Wenn also bis zu 128 Prozessoren auf einem Chip Platz finden sollen, muss die Programmierung entsprechend anspruchsvoller werden. Zukünftig müssen solche parallelen Programme entwickelt, getestet und gewartet werden. Das hat weitreichende Folgen – bis hin zur Ausbildung von Informatikern und Ingenieuren. Somit ist der Übergang von der textbasierten zur grafischen Programmiersprache naheliegend. Dabei lassen sich Multicore- und Multiprozessorsysteme effizienter integrieren.

Paralleles Arbeiten durch Multitasking und Multithreading

Ein typischer Vertreter von multithreading-fähigen Anwendungen ist die grafische Programmiersprache LabVIEW 8.5 von National Instruments. Alle zu bearbeitenden Prozesse (Tasks) nutzen bei einem Single-Core eine gemeinsame Ressource. Um ein annähernd gleichzeitiges Nutzen der jeweiligen Ressource zu garantieren, wird regelmäßig zwischen den Prozessen gewechselt. Die Aufgabe übernimmt der Scheduler und unterstützt somit Multitasking. Kommen jetzt n+1 Prozessoren hinzu, lässt sich die Last auf die anderen Kerne verteilen.

Die Betriebssysteme beherrschen diese Aufgabe: Sie unterstützen mehrere Kerne und verteilen die anstehenden Prozesse auf die einzelnen Prozessoren. Da sich aber keine Rückschlüsse auf das jeweilige Element einer Applikation ziehen lassen, ist die Ausführung auch nicht echt parallel. Sind hingegen unabhängige Aufgaben zu verteilen, dann kann sehr wohl von Parallelität gesprochen werden. Multitasking fordert die parallele Abarbeitung mehrerer Prozesse, Multithreading das parallele Abarbeiten einzelner Teilstücke dieser Prozesse.

Umsetzung in der grafischen Programmierumgebung

Die auf strukturiertem Datenfluss beruhende Programmierumgebung LabVIEW bietet die unterschiedlichsten Anbindungsmöglichkeiten für messtechnische Anforderungen in der realen Welt. Durch das intuitive Konzept und Abstraktion ist es auf einfache Weise möglich, solche parallelen Strukturen abzubilden. Es erfolgt keine direkte Zuweisung auf die einzelnen Prozessor-Kerne. Für den Programmierer bedeutet das eine vorherige Definition der einzelnen Programmteile. Die grafische Datenflussprogrammierung verkürzt das Prototyping erheblich. Ein ebenfalls entscheidendes Kriterium ist das interaktive und dialogorientierte Entwickeln von Ergebnissen. So lassen sich Multicore-Anwendungen besser einbeziehen.

(ID:231592)