Grand Central Dispatch (GCD) ist eine Softwaretechnologie und eine Programmierschnittstelle, die von Dave Zarzycki beim Unternehmen Apple entwickelt wurde, um die Unterstützung von mehreren Hauptprozessoren bzw. Prozessorkernen durch Abstraktion zu verbessern.Apple zeigt Entwicklern Mac OS X Snow Leopard, 9. Juni, 2008, englisch Der Quelltext für die Einbindung von Grand-Central-Dispatch-Diensten, libdispatch, wurde am 10. September 2009 von Apple offengelegt.Libdispatch veröffentlicht 10. September 2009, englischsprachig
Grand Central Dispatch wurde ursprünglich entworfen, um Softwareentwicklern unter macOS (ehemals „Mac OS X“), beginnend mit Mac OS X Snow Leopard (10.6, 2009), die Nutzung von mehreren Prozessorkernen zu erleichtern. Dies war nur ein logischer Schritt, nachdem zum Zeitpunkt der Einführung nahezu jeder Apple-Computer mit Mehrkernprozessor vertrieben wurde. Die Grundkonzeption der Technologie ist es, einzelne, zu verarbeitende Aufgaben (Tasks) zu definieren, die dann von GCD verwaltet und auf die verfügbaren Prozessoren verteilt werden. Daraus ergeben sich als Vorteile, dass sich Entwickler für die Implementierung von einfachen parallelen Aufgaben nicht mit den Details von Multithreading auskennen müssen, sowie dass Grand Central Dispatch unabhängig von der Anzahl der Prozessorkerne arbeitet – damit wird der Programmieraufwand für die Entwickler erheblich reduziert., 18. Juni 2008, englisch
Grand Central Dispatch beruht auf den gleichen Prinzipien wie auch Microsofts Task Parallel Library für das .Net-Framework, Suns Concurrency API für Java und Intels Threading Building Blocks.
Portierung auf andere Betriebssysteme
Am 26. September 2009 wurde die Verfügbarkeit von libdispatch unter FreeBSD 8.1 bekanntgegeben., 26. September 2009, englisch Auch MidnightBSD 0.3-CURRENT beinhaltet libdispatch.libdispatch, 14. August 2010, englisch
Der aktuelle Quelltext des libdispatch-Projektes kompiliert und funktioniert auch unter Linux. Er wurde der Debian-Distribution bereits als Paket vorgeschlagen. 10. April 2011, englischPaket: libdispatch0
Windows wird von zwei Forks unterstützt, die auf opensource.mlba-team.de und Github zu finden sind. 22. April 2011, englisch 5. Mai 2011, englisch Es wird angestrebt, libdispatch als ursprünglichen Bestandteil von Cocoa auch in andere Frameworks, wie etwa Qt, einzubinden.Qt Integration, 7. Mai 2013, englisch
Siehe auch Microsoft Task Parallel Library Java Concurrency API Intel Threading Building Blocks OpenCL OpenMP
Weblinks opensource.mlba-team.de Github
Einzelnachweise
Kategorie:Programmierschnittstelle Kategorie:MacOS-Betriebssystemkomponente Kategorie:Parallelverarbeitung