Moin zur Folge 14 von einfach komplex ja Moin, wir sind heute
wieder in unserem Büro. Burkhard und ich, Burkhard, Wie
fandest du das letzte Woche mit Timo gemeinsam aufzunehmen?
Ja, hat super Spaß gemacht. Ich glaube, wir werden das
Konzept nochmal übernehmen, irgendwie, dass wir Gäste
einladen, war richtig gut und ich glaube, es ging auch mit der
Qualität und dem Remote Aufnahmen habe ich einigermaßen
gemeistert. Schauen wir mal heute sind wir
wieder im gewohnten Setup hier, richtig da gehen wir auch so.
Ich fand es super cool und weiß noch nicht h 13 IT Sicherheit
mit Timo Billigkeit. Heute soll es wieder etwas
technischer werden. Auf Wunsch von Burkhard Ja,
sonst haben wir wollen neben der Software auch mal das Thema
Hardware anreißen, insbesondere die CPU und die GPU.
Was das alles bedeutet, das sprechen wir später noch an die
Themen grundsätzlich oder die Begriffe, die ihr und
insbesondere auch nach dem Podcast kennen und vielleicht
besser verstehen sollte, sind einmal das Programm also was ist
eigentlich ein Programm? Salzburg hat mir das gesagt?
Im Vorgespräch dann die Threads, die sogenannten und die
Läufigkeit und Parallelisierung einmal von Threads.
Von Programmen und von Webservern wenn ich dich richtig
verstanden habe Burkhard ja ja, hast du richtig verstanden?
Das war eine ganze Menge Kauderwelsch.
Wenn man das alles noch gar nicht gehört vorher von daher
gibt es noch mal einen kurzen Überblick darüber, warum diese
Themen wichtig sind und und und, was es sich da handelt, bevor
wir dann richtig einsteigen. Software und Programme sind ja
ganz, ganz unterschiedlich. H riesenspektrum ich kann
einfaches Skript haben, was mal irgendwie was weiß ich nen ne
Excel Tabelle umsetzen in anderes Format das läuft einmal
durch so fertig hab ich gar keinen Anspruch an ob das jetzt
eine Minute. Oder 2 ist mir egal.
Ich habe andere Anwendungen wie Weboberfläche, wo es vielleicht
irgendwann kommt, vielleicht ein bisschen.
Was läuft nicht ruckelt? Und dann habe ich ganz andere
Anwendungen schon mal gesprochen sowie Machine Learning, KI oder
auch Krypto Mining Beispiele nennen, wo es, wo es ziemlich
ziemlich drauf ankommt, dass das auch schnell passiert und wo
richtig viel zahlen quasi richtig viele Floating Point
Operations man sagt Flops ausgeführt werden müssen in
möglichst kurzer Zeit ja und deswegen habe ich habe also
quasi ein Riesenspektrum an. Ja, an Requirements an die an
die Hardware auch die jetzt so n Stück Software haben muss ja und
dafür gibt es dann verschiedene erstmal ne Software verschiedene
Mittel und Wege es zu realisieren und es gibt aber
auch verschiedene Hardware, auf denen ich das dann quasi
ausführen lassen kann und so weiter das soll n bisschen sein.
Heute denke ich OK es geht darum, ja mal zu beschreiben,
wie bestimmte Arten von Programmen eigentlich operieren
und welche Verfahren dabei irgendwie auch zum Einsatz
kommen. Genau wie sieht das denn tun und
wie die Rechenoperationen ausgeführt werden hintereinander
sequentiell oder oder? Parallel als solche Themen OK,
wir fangen wir an, also magst du vielleicht mal erklären, was so
ein Thread ist oder nee, wir wollten glaube ich Programm
sogar anfangen, ne einfach mal ganz stumpf was ist denn
eigentlich ein Computerprogramm? Ja genau kann man's erzählen
also oder fangen wir nochmal an was überhaupt die CPU ja die die
Central Processing Unit ja das hat jeder schon mal gehört C
ohne.co Gehalt eigentlich nichts so ja so Arbeitsspeicher
manchmal nee, das ist genau nicht der Arbeitsspeicher
Arbeitsspeicher, der speichert quasi die Daten und die CPU
führt quasi die Rechnungen aus, die in dem am Ende haben.
Wir hatten auch mal anfangen und so weiter.
Und es müssen im Prinzip ja 10 immer wieder neu
zusammengerechnet werden, aus verschiedensten Tausenden
Gründen und das passiert in der CP und der Antrag Processing
Unit ja, der Speicher erhält quasi deine ganzen Daten, die
die zur Laufzeit anfallen und überhaupt ja.
Genau und im einfachsten einfachsten Falle haben wir halt
n Programm was was halt, wenn es dann startet, wenn es quasi wenn
es läuft benutzt halt. Die CPU ja, und zwar im
einfachsten Falle ein, benutzt einen Kern der CPU und zwar
sequentiell. Also wenn wir jetzt kein
spezielles Programm haben ganz wir haben einfach durchläuft ja
wenn du jetzt programmierst, dann passiert tatsächlich
Schritt für Schritt. Das wird entweder kompiliert und
umgesetzt in Maschinensprache oder das Macht Interpreter.
Aber am Ende arbeitet die CPU sequentiell Schritt für Schritt
diese ganzen Anweisungen ab, die quasi im Quelltext des des des
dieser dieser Software quasi festgelegt sind OK und kann dann
wenn du nichts Spezielles machst auch erstmal nur einen einen
Kern. Sagt man der CPU benutzen ja
früher gab es früher ganz früher hatten die CPU sowieso nur einen
Kern, deswegen hätte man da jetzt nicht so drauflegen
müssen, aber heute du kannst das Gerät also wenn du heute
irgendwie im Internet guckst so und willst einen Laptop kaufen
oder Desktop auch egal, dann findest du das immer, dass da
irgendwie steht ja das ist ein Dual Core oder Quad Core oder
sogar was weiß ich noch mehr octacore und sofort?
Genau, und das heißt eigentlich, dass du im Prinzip gar nicht nur
eine CPU hast, sondern tatsächlich 4 oder 8 oder noch
mehr gleichzeitig. Und zwar physikalisch im Prinzip
kann man sich so vorstellen, also das sind quasi die kleine
Chips prozessoreinheiten quasi und dann hast du da nicht nur 1
sondern halt n ja, nachdem wieviel Geld du auch in der
Tasche hast ja OK und ein Programm belegt dann immer einen
eine CPU genau für einen ja wahrscheinlich heutzutage sehr
kurzen Zeitraum, weil die ja in sich dann auch sehr schnell
sind, aber parallel passiert erstmal nichts auf einer CPU nee
genau also genau du könntest quasi also wenn du ich sag mal
was du hast einen Dual Core, also 2 CPUS und jetzt lassen wir
kurz mal weg, dass die immer so ne Art Hypertrading
typischerweise haben und so weiter.
Sagen wir mal Deinen Computer hat quasi 2 CPUS und die
Schreibprogramm was, das kann ja irgendwie quatschen, so dass
nichts Ernstes sein, aber was irgendwie Rechnung macht in
einer Schleife zum Beispiel und in diese CPU voll auslastet,
dann würdest du quasi wenn du deine Windows oder Linux guckst
wie ist die Auslastung von der C würdest du quasi nur 50% sehen
insgesamt wenn du 2 hast, weil die anderen 50% das kennt dein
Programm dann erstmal nicht, wenn s ganz trivial geschrieben
hast. Ja, das ist sowieso so, dass die
CPUS ist halt praktisch mehr zu haben.
Aber es gibt ja. Es ist ja nicht nur dein
Programm aktiv während während irgendeiner sondern zig andere
Sachen aus deiner noch offen ganz viele Tabs und so weiter
und die CPUS die teilen sich quasi einfach die Arbeit auf ja
und es ist auch nicht so, dass die CPU dann nur dein Programm
macht, aber wenn du das Halt laufen hast und es hat viel zu
tun dass also gibt es C viel Arbeit, dann geht die natürlich
hoch in der in der Prozent Auslastung so der hat schon also
das versteh ich jetzt so, dass die ja sowieso immer was zu tun
hat genau und das System am Laufen zu halten mit
irgendwelchen ja weiß ich nicht Prozess oder Programm, die
vielleicht auch zum Betriebssystem.
Hör richtig, wenn du jetzt sagst dein Programm, du meinst du wenn
ich jetzt 1 starte und ja genau genau also man versucht
natürlich die Betriebssysteme auch, dass die ich sag mal, dass
die unterschwellige Nutzung der CDU möglichst gering gehalten
wird, denn das verursacht ja auch Stromkosten und so weiter.
Ne also wenn die CPU stark läuft und zieht dann Rechner viel mehr
Strom an der Stelle ja und verbraucht beim Laptop ist da
kritisch, ja dann wenn du ständig den Laptop auf vollen
100% laufen lässt, dann dann ist dein Akkulaufzeit wahrscheinlich
nur noch ein Zehntel von der eingegebenen.
Ja das ist so und deswegen versucht man, dass man quasi
wenn nicht gerade irgendwas Schwerwiegendes an Rechnungen
ansteht. Das ganze System relativ leise
im Hintergrund mit wenig CP Last läuft ja, das will man
eigentlich optimieren, ne soweit verstanden.
Ja genau und wenn man dann aber, wenn man jetzt quasi, also wenn
man jetzt mal n Programm hat, was man wo du einfach mehr Power
braucht mehr Rechenpower und das passiert dann, ich hab schon
bisschen geübt bestimmte Bereiche wenn du zum Beispiel in
der Bildverarbeitung unterwegs bist oder in der Bioinformatik,
wo extrem viele Daten also ich kenne vielleicht so ja, also
wenn zum Beispiel eine Genomanalyse irgendwas ist ja
Wahnsinn, was da an den A also das sind ja immer die einzelnen
Buchstaben g und so weiter und dann aber Millionen ja
Milliarden davon irgendwie durchsetzt und das muss
angeguckt werden, ne? Dann musst du extrem viel
gerechnet werden, ne? Oder auch Krypto Mining ist ja
so ein Thema Kryptowährung das hat man auch schon gehört, da
gibt es ja auch diese. Diese Algorithmen mit der mit
dem Blockchain und so weiter Proof of Work da steckt schon
work schon drin, also da müssen immer wieder kryptographische
Hashes gerechnet werden ist extrem rechenintensiv.
Da brauchen wir vielleicht gar nicht genau erklären, was das
bedeutet, aber das ist ne genau rechenintensive Rechenintensiver
und dann die letzte vielleicht die letzte Kategorie, also unser
ganzes Machine Learning und vor allen Dingen die KI also ne KI
beziehungsweise n Gehirn künstliches Gehirn sag ich immer
gerne zu trainieren ist halt extrem rechenintensiv, da gab es
noch ne andere Folge haben gesagt dann immer wieder in
Loops. Und ständig wieder müssen diese
Gewichte quasi ausgerechnet werden und angepasst werden
gegen den Trainingsdaten und so weiter.
Das braucht extrem viel Rechenleistung und und da, da
willst du das vielleicht dann nicht nur auf einem Kern
irgendwie sequenziell hintereinander andauernd
rechnen, da kommst du da nicht da kommst du nicht weiter OK,
dann würde man quasi lange vorm Computer sitzen, immer sehr
lange vor dem Computer sitzen, genau also es gibt tatsächlich
also könnte man sich theoretisch vorstellen, man hat nur eine CPU
mit einem Kern und man macht dort sag ich mal eine
rechenintensive also was ist Krypto Mining zum Beispiel?
Geht das denn also? Man muss nur lange warten oder
kann sich vorstellen überhaupt nicht also du kommst, du kommst
schon ans Ziel, aber also, es gibt die hatten das mal, ich hab
das auch mal selber gemacht, als ich noch im Max Planck Institut
promoviert, haben wir Bildverarbeitung gemacht, da war
das Problem, dass du Millionen von kleinen einzelmolekül
aufnahmen hattest, so kleine Bildchen einfach so
briefmarkengröße, aber halt richtig viel davon und die
mussten quasi berechnet werden und 3 d rekonstruiert werden.
Das kannst du alles machen mit einer CPU dann dauert das Halt
20000 Jahre oder irgendwas bist du eine Rechnung durch hast?
Also das wird schon irgendwann auch fertig, aber das ist dann
halt trotzdem nicht mehr praktikabel, weil Promotion wird
in 3 Jahren durch haben und nicht nur einmal gerechnet.
Ja alles klar, jetzt gerade interessiert.
Und wenn du dann nicht spezielle Hardware benutzt oder spezielle
Techniken der des Multithreading oder des mehrfachen Programmes
aufrufen und so weiter, also Parallelität quasi wenn du das
nicht nutzt, kommst du da nicht ans Ziel ja OK, jetzt hast du
die Begriffe Multithreading reingeschmissen und wir wissen
noch gar nicht was n Thread ist wissen wir noch nicht genau und
Parallelität. Das und und und Hardware also 33
Themen 2 bis 3 Themen auf der Software Seite des Threading und
auf der Hardware Seite, vielleicht in C oder irgendwas
anderes, was ich benutze ja genau die jetzt aufdröseln ja
dröseln wir auf, also fangen wir, man kann halt quasi wenn
man Software entwickelt, dann kann man.
Heute eigentlich fast in jeder Programmiersprache stimmt nicht
ganz. Fast in jeder Programmiersprache
kann man aktiv sagen soll, was auf.
Diesen Teil des Programms diese Rechnungen, die möchte ich, dass
du die Ausführst in einem anderen Thread zum Beispiel ne
also du schreibst ein Programm da startet ein Programm hat
immer n Main Thread heißt das quasi, das ist also quasi
einfach ein ausführungs Strang kannst du dir vorstellen und
dann kannst du sagen jetzt liebes Programm bitte diesen
Teilaspekt. Und man sagt auf dem deutschen
Nebenläufig also quasi man kann sich vorstellen wie sowieso ne
Schiene in einer weiche so und das eine geht weiter und
nebenläufig passiert noch was anderes gleichzeitig ja und dann
kannst du quasi was ausgliedern, quasi während du in einem
Programm bist und dann machst du einen Thread auf, sagt man einen
weiteren Thread der berechnet zum Beispiel irgendwas ja.
So und jetzt, wenn du bei der CDU bist, dann kannst du das, du
kannst es, technisch kannst du beliebig viele Threads
aufmachen, aber faktisch wirklich gleichzeitig kann nur
so viel passieren wie der Hardware das erlaubt also ich
sag mal was du hast ein Dual Core mit Hyper Threading mit
zweifachem Hypertrading, dann hast du quasi im Prinzip 4 4
strenge die du gleichzeitig bespielen kannst zur Verfügung
mal ganz von der Hardware gesehen, dann könntest du also
dein Programm aufteilen das s 4 Threads gleichzeitig benutzt und
dann machst du halt quasi 4 Rechnungen gleichzeitig
tatsächlich nebeneinander passieren dann wirklich
gleichzeitig ja obwohl wir nur 2 Kerne haben, genau wo wir nur 2
Kerne haben. Dieses High wenigstens ich
glaube im globalen Sprech du hast vielleicht nachgeguckt
simultaneous Multi threading genau danke, dass der Begriff
genau simultanes Multi Ding, das ist quasi ja, das sind das, da
kann ich dir jetzt nicht ganz genau sagen.
Wie funktioniert moderne Technologie?
Aber es wirkt so, als hättest du nicht nur 2 sondern tatsächlich
auch 4 also dein Programm passieren quasi 4 Stränge
gleichzeitig, das ist schon mal besser als nix, da kannst du
dann machen und wenn du das nutzt tatsächlich Programm,
schreibst dann tatsächlich sagen wir du hättest 2 Kerne mit
diesem zweifachen Trading und du schreibst Programm was alle
diese 4 Threads voll bespielt, dann ist dein Rechner auch am
pusten so. Dann hat er 100% CPU Last, dann
geht es ins Eingemachte. Genau.
Das ist schon mal nicht so schlecht und aber für viele
Anwendungen immer noch nicht ausreichend da und da kommen die
GUN bisschen ins Spiel. Und jetzt muss man einmal was
ist überhaupt u ist die Graphical Processing Unit ja die
Grafikkarte. So und die Grafikkarte hat einen
eigenen Prozessor, also wie der der CPU ist quasi das das das
Gehirn von einem Computer, sag ich mal und die Grafikkarte GPU
ist quasi das Gehirn von der Grafikkarte, die dann quasi die.
Ja, dies ist eigentlich dafür gedacht gewesen natürlich, dass
du dann einen Output hast Display an die Grafikkarte ist
ja auch das kennt man ja auch hinten normalerweise das HDMI
displayport was, was nicht alles so dann steckst du halt dein
Bildschirm dran soll ich kurz unterbrechen?
Das ist gar nicht allen so klar, dass wenn ich dann HDMI Kabel
dranstecke, dass das quasi ein Eingang ist, die Grafikkarte zur
Verfügung stellt. Also mir war das zum Beispiel
ganz lange gar nicht klar, dass das direkt miteinander
zusammenhängt und hat dann jeder Rechner eine Grafikkarte heute
wahrscheinlich schon früher war das auch so weiß ich nicht.
Ja also es gibt also man kennt sich.
Die Gamer, Kollegen und so weiter, die hatte ja das ja ja
genau, also im Prinzip technisch hat eigentlich jeder Rechner
eine Grafikkarte, aber manchmal ist es so, dass du bei diesen
ganz einfachen Rechnern ist quasi die Grafikkarte nicht mehr
so sichtbar als einzelne Grafikkarte tatsächlich, sondern
ist quasi mit auf dem Mainboard, wie man es nennt, also wie
immer. Wenn du den Laptop aufschraubt
oder auch wenn du wenn du normalen Rechner reinguckst,
mindestens ein Mainboard, ne große so große Platte und
manchmal ist die Grafikkarte damit drauf gelötet, sondern du
siehst sie nicht wirklich ja, dann hat sie auch meistens nicht
so viel Power, aber wenn du vielleicht hast gesehen, also im
Fernsehen oder irgendwas also wenn die Gamer kommen und dann
gibt es da muss man eine Firma nennen oder muss eigentlich 2
nedja also die Nvidia Grafikkarten so das ist so ein
richtiges Ding, ne also so weiß ich nicht so groß wie ein Buch
oder ja, genau so. Ja ein kleines Buch, sondern ein
Handbuch und dann auch schön dich ja und das ist ein
richtiges Stück. Hardware und da steckt halt die
GPU drin. Und der Zyklus eigentlich hast
du ein Programm CU verarbeitet. Dein Programm und diese ganzen
Rechnungen schicken quasi alles grafisch ist an die GPU weiter
und die GPU verarbeitet. Dann rechnet dann quasi was muss
auf dem Bildschirm geändert werden?
Wie in den Pixel aus und so weiter und schickt es an das
Display ja, so war es bis dahin und dann gab es eigentlich ja,
ich hab das noch miterleben dürfen zwar cool, das war genau
da am Max Planck ging das los, dass Nvidia ausrief.
Es gibt jetzt eine neue Programmiersprache tatsächlich
die ich dann überhaupt mal erlaubt, ganz also für
Softwareentwickler quasi. Auf der Grafikkarte Programme zu
schreiben, das war normalerweise Aufgabe von Betriebssystem.
Du kamst normalerweise du hast normalerweise nichts auf der
Grafikkarte zu suchen gehabt, als Entwickler ja und
tatsächlich war das auch also das sind die Programmiersprache
nennt sich Q ich will ihn nennen.
CUDA liest vielleicht im Internet, wenn man irgendwie
hier spricht, dass es die gibt es immer noch wird, meistens
abstrahiert durch höhere Sprachen ist so also relativ ja
so wie C also relativ hardwarenahe komplizierte nicht
so einfache Programmiersprache. Und da hat er losging mit CUDA
und ich damit auch programmiert hab versucht quasi meine meine
bildverarbeitungs Algorithmen auf der Grafikkarte zu
schreiben, habe ich natürlich nicht gemacht so und ganz lustig
und dann aber man teilt sich ja quasi dann eine Rechnung.
Sein Computerprogramm mit der tatsächlichen Ich hatte nur eine
Grafikkarte in meinem Rechner so ja und dann hatte ich irgendwie
n Fehler programmiert und dann sah der Entwicklungszyklus auf
einmal so aus, dass ich dann irgendwie das Programm gestartet
hatte dann habe ich irgendwo reingeschrieben der Grafikkarte
wo es hingehört und hatte über C 64 dann Bildschirm einfach an zu
Summen und so weiter. Zwischen hab farbenspektrum da
gehabt und so weiter, dann ist alles abgeschmiert der
Grafiktreiber ist gestorben und ich muss diesen Rechner neu
starten, quasi um wieder zurückzukommen und ich habe eine
ganze Woche lang hab ich n Fehler gesucht und hab jeden Tag
irgendwie. Sogar Arbeit, die Rechner
angemacht hab Programm neu programmiert dann hat wieder
geblinkt und gekritzelt und so weiter und muss wieder neu
booten. So ja und man Professor kam
schon was machst du denn da die ganze Zeit so was soll ich
machen? So schmiert mir die Grafikkarte
die ganze Zeit ab ja, so waren die Anfänge.
Das ist natürlich viel besser geregelt, aber aber da sieht man
mal wie und das ist halt tatsächlich die Grafikkarte.
Damals war das noch nicht in Bereiche unterteilt und spielst
halt mit deinem mit deinem Grafik Output der Notfall OK was
war denn der Anlass für Invidia? Die Grafikkarte sag ich mal
freizugeben. Für Entwickler also dort die
Rechenleistung auch nutzbar zu machen.
DHN ganz neuen Markt aufgemacht damals war ne die hat natürlich
den Gaming Markt so für die da sind sie ja heute noch ganz dick
also es gibt ja auch hochqualitative mit extrem
krasse Grafik, spiele die Echtzeit diesen diese ganzen
Egoshooter Engines und so weiter, ne da sind die Spiele
sind heutzutage ja das stimmt ja, aber die bedürfen besonders
viel Rechenleistung so ne, aber das ist halt alles so im Gaming
im Gaming Bereich. Da kommt ja da kommen die
Grafikkartenhersteller eigentlich sowieso her.
OK, das heißt die Grafikkarten. Hatten vielleicht auch schon
mehrere Kerne oder waren besonders gut besonders schnell
besonders viele Rechner genau dazu habe ich noch gar nichts
gesagt, genau das meine ich jetzt ne und dann muss irgendwer
gesagt haben Mensch, jetzt reicht uns die CPUS nicht mehr
lass uns doch mal das noch n bisschen auslagern auf die GPUS,
da irgendwelche Rechnungen ja genau also man muss jetzt muss
eine Sache wissen bei GPS. Die kommen grundsätzlich daher
die haben nur ein oder 2 Kerne oder irgendwas die fangen immer
an mit mindestens 500 oder irgendsowas ja also ein
Unterschied ja genau genau und heute ich hab mal geguckt also
die heutigen Grafikkarten die haben also also die Envia Karten
haben so Viertausendsechshundert.
Herne ja oder ne krasse Dinger? Schon über 10000 ja.
Also 10000 quasi wie wie Zehntausende Mini CPUS kann man
sich so vorstellen, ja, die sind dann von der Takt, die sind
nicht so schnell wie die wie die CPU und die hatten früher auch
das Problem, dass sie nicht so viel Speicher quasi direkt zur
Verfügung hatten und auch noch was zu.
Aber die aber das ist halt Parallelität ja, manchmal ist es
dann auch egal, ob jetzt, der eine Prozess wie schnell der
jetzt gerechnet wird, aber wenn ich ein Problem habe, was ich
total super parallelisieren kann und bei Bildverarbeitung
Parallelisieren heißt es gibt bestimmte Probleme, die kann
nicht, da kann ich jedes Pixel von einem Bild ne also jeder
Bildpunkt kann ich einzeln berechnen, ne, wenn ich zum
Beispiel irgendwie wenn irgendwas drehe oder irgendwas
neu transformiere farbveränderung mache oder
irgendwas. Dann gibt es bestimmte
Algorithmen, da kann ich das quasi für jedes Pixel
individuell rechnen ja ohne dass ich Informationen brauche von
den anderen. Von den anderen Pixel nebenher
man nennt das dann Barry Single Parallel also trivial
parallelisieren war ja und dann gebe ich diese Aufgabe halt ab
und an 10000? Mini CPUS.
Und dann mache ich 10000 Pixel in einem Takt, dann macht einmal
schwupp und dann habe ich 10000 Dinge gleichzeitig gerechnet bin
schon fertig so ja, im Gegensatz zu wenn ich einen hätte, dann
müsste ich halt 10000 Rechnungen hintereinander machen, ja so,
das ist der Punkt ja, das macht einen riesigen Unterschied einen
Takt ist immer eine Rechnung. Durchgeführt wird einen Tag ist
quasi eine Evaluierungseinheit ne, das sind diese diese
Gigahertz und so weiter. Das ist der CDU Takt ne also
wenn die quasi macht Tick tick so und in einem Takt wird eine
Operation abgearbeitet. Ja, ich glaube, da haben wir
früher ohne überhaupt ansatzweise Plan zu haben haben
wir unsere Computer. Unsere ersten also im
jugendlichen Alter daran verglichen wieviel Gigahertz
oder klar war ja auch früher, dann hast du ja und man hatte
keinen Plan. Was bedeutet aber mehr und
schneller und besser ja ist auch immer noch so ne also wenn du
natürlich wenn du schnelleren CPU hast, dann wird die
individuelle Operation schneller durchgeführt.
Aber das ist heute nicht mehr nur einziger Messpunkt, sondern
halt auch wenn du, wenn du stark parallelisieren kannst und du
hast Probleme lösen willst. Die gut parallelisiert bar sind
nicht alle. Wir sind leider nicht alle
computeraufgaben gut paralysiert war aber wenn du solche hast,
dann ist es halt auch quasi die Parallelisierung, also wie viele
hast du davon ein Riesenfaktor und kann sogar wichtiger sein
als wie individuell? Schnell ist jetzt einer OK?
Von Anfang an waren die Grafikkarten so aufgebaut, dass
sie viele Kerne zur Verfügung gestellt haben, die jeder für
sich vielleicht langsamer waren als ne Kerner CPU ja, viel
langsamer, tatsächlich aber natürlich, weil das in der
Grafik rendering und so weiter gebraucht wird viele parallel
durchführen können Generationen und dann evia wahrscheinlich
gesagt wahrscheinlich andere Hersteller.
Marti, damals noch es gab eigentlich 2 Video ATI oder ATI
und heute gehört ATI zu AMD in diesem gekauft worden 2006 gab
es sag ich mal von den Kunden her da ne Nachfrage das nutzt
das auch zu nutzen für andere Rechnungen nicht nur für
graphische Themen. Und das hat er wieder
beantwortet. Sie haben, das könnt ihr jetzt
in der Q da als Programmiersprache verwendet und
auf der quasi auf der G programmiert und das hast du
dann gemacht und hast erstmal. Ja, es war noch nicht so einfach
ne genau ja tatsächlich ist dann also mein mein Professor damals
Max Planck Zitat dann sich tatsächlich für sehr viel Geld n
riesiges Grafikkarten Cluster also ganz viele Server, wenn n
richtigen Serverraum und mit Hardware wo halt ganz viel
Grafikkarten drin war und ich glaube wir waren einer der
größten Abnehmer von Grafikkarten via irgendwie für
ne Zeit lang. Und das war ganz spannende Zeit
und wir haben noch viel experimentiert, also kannst du
auch quasi dann ja und da kommt das nächste auf das nächste
Level der Parallelisierung du kannst ja quasi auch klar kannst
du ein Programm starten mit vielen Threads, mit GPUS und
dann kannst du aber auch viele Programme starten gleichzeitig
einfach ja die und den Programmen gibst du sagen wir
mal, du hast du hast ne riesige Wolke an Daten die du irgendwie
durchrechnen willst bearbeiten willst, dann kannst du ja, dann
kannst du auch, dann kannst du noch was anderes machen.
Du kannst du alle Daten ein Programm geben, was dann ganz
viele Threads hat schon mal nicht schlecht.
Du kannst aber auch gleich sagen, diese ganzen Daten, die
gebe ich gleich mehreren Programmen, also ich teile die
Daten auf. In 10 teile und startet 10
Programme und jedes Programm kriegt ein Zehntel der Daten und
rechnet das gibt wieder vorausgesetzt, dass das so geht.
Vom vom Algorithmus her ja und dann komme ich in den nächsten
Parallelisierung Stufe, dann sprechen wir nicht mehr von der
Parallelisierung, sondern im Prinzip von Programm
Parallelisierung ja und das kann ich dann wieder auf verschiedene
Server, also verschiedene Computer verteilen.
Ne ist dann immer noch nebenläufigkeit oder spricht man
von Nebenläufigkeit nur bei den Threads bei den strengen?
Ich weiß nicht, ich weiß nicht genau, wie sich jetzt die
Informatik spricht, da also ich glaube nebenläufigkeit
tatsächlich Threads, aber es ist eine Parallelisierung Technik.
Was ist der Vorteil, dass ich jetzt das auf mehrere Programme,
die dann wieder jeweils jeweils multithreads haben, verteile?
Programm mit ganz vielen Threads?
Ja, ich hab irgendwann ist ja auch irgendwann ist auch mal
Schluss nee also ich kann, ich kann ja auch in einem Rechner
nicht unendlich viele Grafikkarten reinstecken, so OK.
Wenn ich mir Programme habe, kann ich über mehrere Rechner
verteilen. Ja, genau das ist das genau
verstanden Punkt genau ja also also wenn wenn die halt einen
Rechner mit sag ich mal. Du kannst auch 3 oder 4
Grafikkarten einen Rechner reinschreiben so ja und dann
kannst du auch innerhalb von dem Programm dann 4 Karten
ansprechen und so das ist nicht ganz einfach, aber das geht und
dann hast du schon ziemlich Gewalt, wenn die Gewalt immer
noch nicht reicht, dann kaufst du dir das Ding quasi nochmal.
Ja, dann brauchst du aber davor quasi so ein Verteiler.
Ja. Du brauchst einen großen,
verteilten Datenspeicher für Deine für deine datenwolke du
bearbeiten möchtest und dann verteidigst du das unter auf
verschiedene Rechner. Das haben wir damals noch
gemacht, ohne Docker Technologie und so weiter und heute hatten
wir auch schon Erfolge, heute kannst du solche Programme in
einem Container laufen lassen und auch selbst die Container
Technologie unterstützt mittlerweile auch diese
Grafikkarten also die diese Hardware dahinter liegt und dann
kommst du in dieses massiv, dann kann man sich so langsam
vorstellen wie schaffen die das bei bei Google und so weiter so
schnell Ergebnisse zu zu als Suchergebnis zum Beispiel oder
halt auch diese ganzen KI Rechnungen durchzuführen, die
sie bei sich durchführen das ist halt dann die Gewalt, die teilen
dann halt ein Problem einen Datensatz auf und dahinter
stehen dann halt. 1000 Server mit jeweils. 3 Grafikkarten zum
Beispiel drinnen und dann hast du halt insgesamt ne Gewalt vor
und ich weiß nicht wieviel Millionen Threads die dann
gleichzeitig irgendwie an deinen Daten arbeiten, ne und dann
dauert es nicht mehr lange, dann bist du halt trotzdem fertig mit
einer eigentlich eine Aufgabe, die das früher nicht lösen
können, die 10000 Jahre gedauert irgendwas OK krass also so wenn
ich jetzt ne Anfrage mache anchi.pt oder irgendeinen
anderen? Ja, das Service war immer, dann
wird eigentlich das genommen und die Rechenoperationen auf
verschiedenste Server und Grafikkarten genau und Kerne und
Threads richtig verteilt. Ja, wahrscheinlich wäre das
steuert ja genau und wieder zusammengebracht die Ergebnisse
genau das relativ komplex. Also kann man sich vorstellen,
also diese Parallelität gibt es auf verschiedenen Leveln und wir
hatten jetzt die also die GPU und deren Threads ist ein sehr
tiefes Level. Es geht noch ein bisschen
tiefer, sag ich gleich noch zu, aber das ist das tiefste Level.
Dann haben wir das Programm Level und dann noch selber die
Server und so weiter und Prinzip kann man sich vorstellen wie n
ja. Wie ein Baum, der sich immer
weiter verästelt so ja und dann habe ich meine große großen
Daten, die schicke ich dann einfach der Stamm schick ich den
Stamm und der Stamm versteht das alles in jedem jedem Blatt wird
irgendwas gerechnet und kommt wieder zurück.
Ja, weißt du was da für? Personen oder Köpfe hinter
stecken, die sich diese ich sag jetzt mal Architektur, oder?
Diese Art von Berechnungen überlegen also ich muss ja
irgendjemand bestimmen, wie sowas dann verteilt wird, also
was das für Menschen sind Softwareentwickler oder sind das
Architekten oder kann sich vorstellen auch ja also
Softwareentwickler softwarearchitekten genau und
dann auch so gerade im Detail mit den mit den mit dieser
Sprache und so weiter das sind schon extrem krasse Experten,
die sich dann auch die sich sehr gut mit der Hardware auskennen
und so weiter das ist, das geht ja auch alles noch nicht seit
seit. Na ja, also viele, viele Sachen
sind da auch immer noch im Schwung und da gibt es immer
noch mehr. Ich will mal eines sagen,
vielleicht CUS. Das liegt halt nahe und das war
für ein Video und auch damals für ATI halt eine Möglichkeit,
den Markt einfach noch zu vergrößern und für die war das
toll, weil wir als Max Planck Institut natürlich
Grundlagenforschung gemacht haben.
Das war für die natürlich auch eine schöne Werbung, die sagen
guck mal hier, wir können mit den Grafikkarten nicht nur
irgendwie Gaming, sondern wir machen wir tragen was zur
Wissenschaft bei ihr zu und weil wir hier wie zum Beispiel
ausrechnen, wie irgendwie ein Molekül aussieht ja, das haben
wir gemacht. D Rekonstruktion um zu sehen wie
soll zum Beispiel aussieht ja, das war für die für die super
und heute sind die natürlich auch wieder Big Business, weil
die künstliche Intelligenz. Das wird halt heute stand heute
soviel ich weiß Google, wenn du mit Googles Ressourcen rechnest
und ganz viele Grafikkarten dahinter, ja, ob das jetzt ein
Video ist MD weiß ich nicht er ist auch egal, aber die sind
wieder im Einsatz. Ja, und es geht auch hin man
kann halt noch tiefer gehen. Es gibt die sogenannten FPS,
will das Wort nur mal sagen Field Programmable Gate Arrays.
Das ist quasi so eine Art. Ja, so ein Zwischending zwischen
ich, ich Designer mir tatsächlich Hardware und das
wird auch manchmal gemacht dann die Asic, dass die Applications
Pacific Integrated Circuit, das heißt, ich mache mir eine ein
Stück Hardware, quasi eine Art Spezial CPU oder so halt asic
ja. Wo die Hardware und der Chip dem
Softwareproblem direkt entworfen wurde.
Ja, das kann ich natürlich nur machen, wenn ich was ich
Algorithmus habe, wirklich relevant ist, damit irgendwie
die Kosten deckt ja. Ein Beispiel dafür Krypto Mining
Bitcoins in China stehen Farmen zu groß wie Fußballfelder, nur
mit Rechnern. Die kannst du für nix benutzen,
die können nicht rechnen, aber das sind spezielle A 6 drinnen,
die nur dieses Mining dieses Lösen dieser Kryptographischen
Hashes wichtig für die Bitcoin Erstellung quasi das das können
die das Level und darüber gibt es die FPS, da kannst du quasi
so zwischen Ding du kannst dir programmieren, kannst auch sehr
stark parallelisierte Sachen machen und Google kommt gerade
raus und etwas Neues das nennt sich das haben die TPU getauft
Tensor. Processing Unit also quasi auch
ein Chip, den du mit deinem Computer quasi eindocken kannst
oder eindecken können sollst, der quasi hoch spezialisiert ist
für KI Training, so die A 6 da sind die meisten großen Firmen
dran auch Tesla und so weiter, dass sie sich für ihre
speziellen Aufgaben da. Sag mal Hardware, Chips, Design
und dann produzieren lassen, also genau das ist schon etwas,
mit dem man sich dann auch differenziert heutzutage ja und
da m tiefer reingeht, um noch schneller, besser effizienter,
ja die Rechenleistung bereitzustellen ne?
Hier haben wir bestimmen. In Zukunft wird es immer mehr.
Ich glaube, das Thema wird ja, das wird so in Schwung nehmen,
dass wir da auch spezielle Hardware sehen und n krasser
Weise ist ja schon so, dass er dass er Nvidia jetzt auch ihre
Grafikkarten, die Grafikkarten, die besonders geeignet für diese
KI Rechnung und die werden gerade wieder mit einer KI
optimiert. Also die Hardware wird von der
KI optimiert, damit die KI wieder besser drauf läuft, so
also alles ganz schön so aber ja kommt mir wird langsam klar,
warum das Thema so relevant ist. Ja, ich war anfangs skeptisch
muss ich zugeben, dass ich schon Threads und nebenläufig
Nebenläufigkeit insbesondere gehört habe ja genau, aber es
zieht sich durch ja also zieht sich durch das Prinzip ja und
dann versteht man auch so Effekte und du hast vielleicht
jetzt mal ein bisschen von der Marketing oder Business sieht es
waren ja mal die Grafikkarten total teuer und du konntest gar
keine Grafikkarte mehr bekommen von Nvidia, weil alles
weggekauft warum, weil die Kryptowährungen gerade auf dem
Höchststand waren. Jeder wie wahnsinnig
Grafikkarten gekauft und zu Hause irgendwie mit meinen
wollte, weil, das ist ja auch so nette also bei der bei dem
Krypto Mining geht nicht irgendwann fertig zu werden, da
geht es darum, als Erster fertig zu werden, um zu gewinnen, sonst
machst du keine Bitcoins heran, ganz grob gesprochen, ne?
Und deswegen kauften alle wie die wahnsinnigen Grafikkarten,
weil es sich lohnte quasi der also die Bitcoin Währung war so
hoch, dass du das wieder schnell raus hattest, was die
Grafikkarte kostete. Jetzt wo die wieder im Keller
sind, gibt es auch wieder grafikkartenmarkt.
Ja, das kann man einmal zusammen mit einem anderen Podcast
Interview gehört vielleicht oder sowas da hat.
Einer war im Interview von einem großen Europäischen meiner also
eine Firma, die sich nur auf das Mining spezialisiert hat,
gesagt, die Konten für ungefähr $10000 in Bitcoin produzieren.
Und damals war er bei $60000 inzwischen sehr gutes Geschäft.
Ja, genau jetzt weiß ich nicht 20000 oder immer noch ein gutes
Geschäft, aber das ist ja nur der größte Anbieter ja, ich
denke mal das. Kleinere Anbieter das das ist
nicht so gut hinkriegen und die sind auch so krass, dass die
dann irgendwie ganze Rechenzentren Flugzeuge packen
und und ein anderes Land fliegen, weil der Strom
irgendwie einen Bruchteil von einem Cent günstiger als
politisch völlig verrückt, aber wir schweifen ab, wollte ich zum
Besten geben genau du wolltest doch mal den Arbeitsspeicher
ansprechen da hast du gesagt ja, dann kommen wir später nochmal
drauf genau gut. Ich hab nämlich hätte ich jetzt
auch gesagt jetzt nicht vergessen genau ja.
Genau das jetzt noch ein bisschen, aber vielleicht
nochmal also die ganz am Anfang war das.
Mit den Grafikkarten auch n bisschen schwierig, weil die
Grafikkarten brauchen, wenn Du darauf rechnen möchtest.
Dedizierten. Speicher ja, also
grafikkartenspeicher und und so die also ich so angefangen hab.
Mit der gab es noch mal so, ja, die guten Karten hat ein
Gigabyte 2 Gigabyte dediziertem Speicher und das ist ja noch
nicht ne Menge, das teilst du ja auch noch auf mit dem was sie
noch so tun zu tun haben ja. Und ganz oft willst du auf der
Grafikkarte sind das immer so Matrix Multiplikationen im
Prinzip der Vektoralgebra gerechnet ja und das Tensor ich
weiß nicht, ob es schon erwähnt hat.
Tensor Flow ist das so heißt ja, dass die KI Bibliothek von
Google Nintendo ist ja eigentlich nichts anderes als ne
als eine Matrize im hoch dimensionalen Raum ja, und wenn
du, wenn du ja so grob gesprochen und so und wenn du
und wenn du wenn du wenn du KI Training machst, dann ist es im
Prinzip ist es quasi vektoralgebra Matrix
Multiplikationen hoch und runter.
Die ganze Zeit, das können die Grafikkarten besonders gut und
wenn du jetzt aber Geschwindigkeit aufnehmen
willst. Es muss einmal wissen du musst
quasi deinen. Dein Programm startet immer erst
mal im CPU das das ist so ja, du kannst es dann auslagern in die
GP aber startet in der CDU. Das heißt der Speicher wird auch
erstmal im Rahmen der CPU angelegt und dann muss er
transferiert werden. Über den sogenannten PCI erst
mal P Express und 4 und 5 und Datenübertragung und so weiter.
Da kommt das Thema, das ist quasi die Schnittstelle zwischen
CP und GPUS dieser PCI Express ist diese PC Express
Schnittstelle die manchmal wenn man recht hat und das ist nicht
ganz unwichtig, denn das braucht ja auch eine gewisse Zeit.
Du musst einmal das t Daten übertragen vom CPU RAM in den
GPU RAM ja und dann da rechnen, dann kommt das die Rechnung
wieder in DM zurück und dann muss das vom G RAM wieder zurück
c Rahmen, damit das ausgewertet werden kann und so weiter ja zum
Final ja dann spricht von arithmetischer Dichte ja, wenn
jetzt deine Rechenoperationen nicht genug sind, sodass quasi
das braucht nämlich Zeit. Die Übertragung damals, das wird
jetzt alles viel besser. Deswegen kommt das jetzt auch
so. Damals waren die PCI Express
Dinge noch nicht so schnell. Das heißt du hast halt Zeit
verloren. Bei dem ganzen Prozedere, dass
du das machst. Das braucht ein bisschen, was du
da hast ja hat sich das manchmal nicht gelohnt, ja, und deswegen
ist das heute alles super, das ist alles total schnell und du
hast halt bei den Grafikkarten ich habs nochmal gelesen die
haben halt bis zu 48 Gigabyte dediziertem Arbeitsspeicher der
Grafikkarte, ja 48 Gigabyte, die Kosten dann auch also es sind
hier so die die krassen Dinger von von n Video.
Ich hab mal eine hier, ich hab sowas nicht, aber die Kosten
hier achttausendsechshundert Euro ein so ne Karte ja, das ist
irgendwie so, dass der entweder ATX 8000 oder so die gerade so
die kriegst du ja. 48 Gigabyte und das ist natürlich praktisch
dann jetzt eine riesen Matrix riesenproblem kannst du dann
schon also große Teile von deinem Modell für die KI kannst
du dann einmal in einem auf die Grafikkarte laden und dann macht
es halt rums rums Rums, ein paar Takten mit Zigtausenden von
Threads. Gleichzeitig wird Durchgenudelt
und dann kommt wieder zurück und dann kriegst du richtig später
also ja letzte Frage damit wir den Bogen n bisschen vielleicht
auch wieder zum Thema saß wie sehr spielt das Thema für dich
eine Rolle in in deiner Tätigkeit als Programmierer
einer? Wecker einer saß Anwendung, wie
wir sie haben SAP Anwendung machst du darüber Gedanken oder
kommt das erst zum Tragen, wenn wir mal Zehntausende User
gleichzeitig auf der Plattform hätten?
Also inwieweit denkst du da jetzt drüber nach oder oder oder
denkst du voraus? Wie kann man sich das
vorstellen? Wir haben hauptsächlich
Netzwerkintensive. Probleme wir müssen halt viele
Netzwerkanfragen machen, vielleicht ein bisschen Pfeile,
also IO sagt man Input Output und so weiter, das heißt, wir
kommen nie, wir kommen immer zurecht mit wenig Threads.
Also unser Problem unsere Bilder und so weiter ist halt einfach
kein arithmetisches Number crunching, wie man sagt.
Problem also wir machen also wenn wir nicht gerade selber
Modell trainieren, ne, aber das ist ja wohl noch experimentellen
arbeiten, dass wir auch KI integrieren so dann ja, aber
ansonsten müssen wir nicht über sowas nachdenken.
Wir haben auch keine GS braucht man normalerweise auch nicht und
wir und die Lastverteilung von von für Netzwerke und und und. 2
und so weiter ist flüssig läuft das machst du halt über auf viel
höherem Level, das machst du quasi über die Containerisierung
über die Clouds, also werden wir wir skalieren, indem wir einfach
mehrere Anwendungen quasi anmachen ja OK, ich verstehe das
heißt alles, was wir an Software haben oder bereitstellen ist
nicht so Rechenintensiv sind keine rechenintensiven
Bestandteile drin, dass man das berücksichtigen müsste, genau
größere. Genauso muss auch man muss sehr
aufpassen also das, das machst du ja auch nicht soeben nebenbei
bei einem Trading. Das hab ich nicht, dass wir
nochmals kurz die letzte kurz letztes Ding so da wird ja auch
heute schon viel mehr geholfen als früher, aber es ist so wenn
du wenn du halt gleichzeitig läufst und dann aber wieder du
brauchst trotzdem wieder Austausch von Informationen
will. Die gleitenden musst, irgendwann
müssen die das Bild von der vielleicht sagst du eine und
dann teilst du auf 4 deine hats irgendwie 4 Waggons oder sowas
und so und dann dann fahren die alle alle gleichzeitig
nebeneinander auf hier erschienen.
Irgendwann müssen sie wieder zurückkommt, die zurückgeht,
weil du musst die Information irgendwie zusammen und irgendwie
als Ganzes dem Nutzer oder dem Pfeiler zur Verfügung gestellt,
ne. Und da wird schwierig, da musst
du aufpassen, denn jedes Programm, egal was geht halt
sterben, wenn du gleichzeitig meinst du müsstest die Stelle im
Speicher schreiben und das passiert ganz schnell.
Das machst es gibt ein Konzept, das heißt Mutex oder sehen wir
vorher muss halt aufpassen, dass du, dass du Sachen Lockst quasi,
dass jetzt die das gleichzeitig nicht irgendwelche Sachen weg
kommen können und so weiter also man muss als Programmierer
extrem vorsichtig sein und aufpassen, dass da nichts schief
geht. So deswegen ist also wenn du.
Wenn du so richtig, wenn du richtig selber in die Tasten
haust und schreibst du Software, die in sich inhaltlich Thread
ist, muss extrem aufpassen, das kann kann schwer schief gehen
und die sind extrem schwer zu debuggen.
Die Probleme, weil die nämlich nicht.
Nicht immer gleich auftreten, weil du das kannst du nicht
beeinflussen was hast denn du weißt nämlich nicht wie schnell
sind die wirklich? Und jedes Mal, wenn das Programm
neu starten, das alles wieder anders, vielleicht gerade eben
was anderes noch macht. So ist der n bisschen langsamer,
nächste und nur in den einen von 10000 Fällen ist gerade so blöd
getimt, dass die tatsächlich gleichzeitig aufeinander treffen
und an der Stelle hast du keinen Schutz eingebaut und der
Software macht er eine ganze Anwendung crashed.
Was passiert einem Nutzer von 10000 einmal?
Irgendwann so ja, und dann denkst du n scheiß kriegst du
graue Haare, denkst du verflixte Kiste, was hier los ist und du
kannst das nicht nachstellen, weil nicht passiert, weil es so
selten passiert zum Beispiel also das hat alles das hat so
also als Softwareentwickler ist das n?
Die sind auch sehr gefragt, die sich sehr gut auskennen, wenn
man so low Level was machen will, dann muss man genau
wissen, was man tut. Das ist gar nicht so einfach,
ja, alles klar. Danke Burkhard gibt es noch
letztes Thema oder irgendwas, was du hinzufügen möchtest?
Ansonsten machen wir den Deckel drauf.
Ich glaube, wir machen drauf prima dann vielen dank, euch
fürs Zuhören falls ihr es noch nicht gemacht habt und euch der
Podcast gefällt, dann empfiehlt es doch mal jemanden aus eurem
Netzwerk oder gibt uns eine Bewertung auf Spotify, Apple
oder wo auch immer da freuen wir uns drüber.
Also danke fürs Zuhören. Danke Burkhard zunächst Tschüss.
Hamburg. Vielen Dank fürs Zuhören dieser
Folge von einfach komplex die Folge gefallen dann lass uns
doch ne gute Bewertung da oder Teile die Folge mit jemanden aus
deinem Netzwerk für Kritik zufolge Anregungen und Fragen
für neue Folgen freuen wir uns auf deine Email an Podcast
Dateien w Punkt com Abonniere jetzt unseren Podcast um keine
Folge mehr zu verpassen bis zum nächsten mal Tschüss aus Hamburg
h.