M
Metamorph83
Guest
Das ist korrekt, Multithreading gab es schon lange bevor Multicore CPUs eingeführt wurden. Wer C++ in den 90ern gelernt hat, wird Threadprogrammierung damals schon gekannt haben. Der einzige Unterschied ist, dass die Threads nun auf verschiedenen Kernen ausgeführt werden können und nicht länger nur auf einem, wo sie zeitlich pausiert werden. Andererseits hat sich trotzdem nicht viel verändert. 3000 Threads auf 6 Kernen ausführen oder 500 Threads auf einem Kern. Für Entwickler hat sich dahingehend kaum was geändert, weil sie ja früher schon Nebenaufgaben in Threads gepackt haben. Der Laie glaubt allerdings das sich Software immer einfach so parallelisieren lässt, dabei orientiert sich Software an den Gegebenheiten der Realität, eben jene Ansätze die die objektorientierte Programmierung verfolgt. Der Mensch kann nicht Zuhause essen Kochen und parallel die Zutaten einkaufen. Erst kommt der Einkauf, dann wird gekocht. Der Laie erwartet nun, dass mehrere verfügbare Menschen eben dieses ermöglichen können, nur lässt es sich immer noch nicht kochen, ohne die Zutaten.
Spiele unterliegen halt massiv einer sequentiellen Folge von Aufgaben und Events. Ein Spiel ist nicht gut weil es 100% CPU oder GPU Auslastung erreicht, sondern weil die Immersion gelungen ist.
Assassin's Creed Origins/Odyssey und Battlefield V sind dahingehend Negativbeispiele für horrende Auslastung bei optisch/technischem Mittelmaß. Da winkt dann schon mal die gute alte PS4 mit Horizon Zero Dawn.
Das sehe ich anders, die Entwickler orientieren sich bei der Parallelisierung auf die Hardware/Möglichkeiten der Anwender die bedient werden sollen/müssen und dabei müssen Sie auch erstmal lernen bzw. Erfahrungen sammeln. Es macht keinen Sinn auf enorm viele Threads/Aufgaben parallel bewältigen zu lassen, wenn die Hardware des Users gar nicht mehr als 4c/8t hergibt. Das führt nur dazu, dass das Nutzererlebnis dementsprechend schlecht ist, weil die Hardware überfordert ist, was wieder Umsatzeinbußen bedeuten kann... Das war der Zustand über Jahre hinweg und bis heute sind 4c/(8t) weit weit verbreitet...
Man kann in dem Fall nicht von der Vergangenheit auf die Zukunft projizieren, außerdem hat man diese Diskussionen schon beim Wechsel von 1c zu 2c und dann auch zu 4c geführt. Ich empfinde ACO und BF V als Paradebeispiel für die zukünftige Entwicklung hinsichtlich Parallelisierung...
Beim Kochen gbt es übrigens deutlich mehr Aufgaben, als Kochen und Einkaufen. Das Kochwerkzeug, Pfannen und Töpfe müssen her gerichtet werden, das Rezept bereit gestellt werden und und und, da wäre es von Vorteil wenn das auf einen Schlag geschieht...