Vector Fabrics Automatisierte sequenzielle C-Code-Analyse für Multithreading

Mike Beunder

Von vielen Fachleuten wird Multicore und Multithreading als eine der größten Herausforderungen im Software-Bereich gesehen. Um sequentiellen Code möglichst einfach und schnell Multithreading-tauglich zu machen, hat das Start-up Vector Fabrics eine interessante Lösung entwickelt und das zu einem bemerkenswerten Preis.

»Eine Multicore-Hardware stellt hohe Ansprüche an die Software-Entwicklung, da es gilt die Software zu partitionieren, um eine parallele Abarbeitung möglich zu machen«, so Mike Beunder, CEO von Vektor Fabrics. Bislang wird dies händisch gemacht, was einen hohen Zeitaufwand bedeutet. Um diesen Prozess zu beschleunigen, hat Vector Fabrics innerhalb der letzten drei Jahre eine Lösung entwickelt. Herausgekommen ist mit »vfAnalyst« ein cloud-basiertes Tool zur Parallelisierung sequenziellen C-Codes.

Mit diesem ersten Tool einer neuen Familie können Softwareentwickler effiziente Multicore-Lösung schneller als bisher erzeugen. vfAnalyst wird in der »Amazon Elastic Compute Cloud (EC2)« gehostet – einer sicheren Server-Umgebung, die über einen Standard-Webbrowser zugänglich ist. Das Tool wird nach Pay-as-you-go bezahlt, einem Geschäftsmodell, das Anfangskosten minimiert und die Software-/Hardwarewartung für Kunden erübrigt.

Die Entwicklung von Multithread-Programmen aus sequenziellem Code kann bei manueller Bearbeitung zeitaufwändig und teuer sein, vor allem wenn Multithreading nicht genau im Voraus geplant wurde. vfAnalysts grafische Benutzeroberfläche vereinfacht das Auffinden der Programmteile, die parallel ablaufen können. Außerdem wird die Datenkommunikation ermittelt, die sicherstellt, dass der multithreaded Code genauso wie – aber schneller als – der sequenzielle Code läuft. vfAnalyst hilft auch Entwicklern, die bestehenden sequenziellen Code parallelisieren wollen: das Projekt lässt sich durchführen, ohne dabei die Details der genauen Code-Funktion wissen zu müssen.

»Unser Tool führt nicht einfach nur ein Code-Profiling durch; es funktioniert wie eine Art Navigationssystem für die Parallelisierung und zeigt Anwendern die Leistungsmerkmale ihres Programms, die sie bisher selbst nicht erkannt haben«, so Beunder. Durch die browserbasierte Schnittstelle kann die Suche nach zu parallelisierenden Optionen auf drei Schritte vereinfacht werden: Identifizierung der Code-Bestandteile, die durch Parallelverarbeitung profitieren würden, Auflistung der am besten geeigneten Bestandteile zur Partitionierung und Auswahl derjenigen Bestandteile, die den geringsten Kostenaufwand verursachen. Die Analyse erfolgt unabhängig von der Zielplattform, was eine Code-Analyse für Server oder Embedded-Systeme ermöglicht. Bemerkenswert ist der Preis, den Vector Fabrics für die Nutzung von vfAnalyst verlangt. Für 85 Euro kann jeder vfAnalyst ab sofort einen Monat lang nutzen.

Das zweite Tool, vfSoftware, das im Laufe dieses Jahres herauskommen soll, erweitert die vfAnalyst-Analyse um spezifisches Systemwissen. Damit lässt sich speziell Multithreaded-Code für  Multicore-x86-basierte Systeme erstellen.