Heute so gecodet...

Es gibt 2.379 Antworten in diesem Thema, welches 480.643 mal aufgerufen wurde. Der letzte Beitrag (1. November 2025 um 13:53) ist von Unseen.

  • Davon lese ich zum ersten mal etwas.

    Die TaskFactory ist gar nicht so übel, nur komischerweise wenig bekannt. Ist auf jeden Fall auch wert, sich mal (kurz) mit zu beschäftigen. Damit kann man auch schöne Nebenläufigkeiten machen.

    Ich vermute Du meinst damit Zwischenergebnisse? Da bin ich gerade dran am basteln, damit ich die Berechnungszeit verkürzen kann.

    Nein, race condition = zur Laufzeit. Da gibt es zum Teil minimalste Fehler, an die man erst mal gar nicht denkt. Ich hatte da auch mal ein Problem, das ich parallel lösen wollte (und dann auch gelöst habe). Da hatte ich das Problem, dass ich in der Theorie aus einer Queue Zeugs wieder entnommen habe (.Dequeue). Im Single Thread lief das geil, aber lahm (weil rechenintensiv). Also: her mit allen Kernen, die die Kiste hat :biggrin: Nur hatte ich nicht bedacht, dass die Queue nicht threadsicher ist (das Pendant ist ConcurrentQueue). Also kam es zur race condition zu Doppelberechnungen, deren Grund ich mir erst mal nicht erklären konnte. War das verständlich erklärt? Damit hab ich nämlich gerne mal meine lieben Probleme...

    Früher waren 64k unglaublich viel, heute reicht es nicht mal mehr für "Hello, world!".

  • Ist halt die Frage, was Du erreichen willst. Anfangen, beeindruckende Demos zu schreiben? Dann kann es nicht schaden, weitere Demoeffekte auszuprobieren (Stable Raster etc., codebase64 ist eine gute Quelle). Oder ein Spiel mit Scrolling schreiben? Dann sind andere Dinge wichtiger: eine Tile-Engine ist nicht ohne, Sound-FX etc. auch nicht.

    Für beeindruckende Demos müsste ich erst mal "35 Jahre Demogeschichte des C64" aufarbeiten! :D codebase64 hatte ich schon entdeckt, trotzdem vielen Dank für den Tipp! Der begrenzende Faktor ist ja immer die liebe Zeit, daher bin ich zufrieden kleine Sachen zu machen und vor allem auch fertig zu bekommen. Ein kleines Spiel könnte ich mir aber schon vorstellen.

    Momentan lasse ich Sprites über den Bildschirm fliegen. Damit möchte ich das Trauma verarbeiten, dass die "Maschinen" meiner Heimcomputerzeit (VC-20 & CPC) keine hatten. :D

  • War das verständlich erklärt?

    Teilweise. :)

    Damit hab ich nämlich gerne mal meine lieben Probleme...

    Kenne ich. :D

    Bei mir klappt es mit den Zwischenergebnissen. Ein Kern und es dauert >30min. Alle 16 Kerne, mit 2x Zwischenergebnissen und einer anderen Opitmierung und schon dauert die gleiche Rechenaufgabe <3min. :thumbsup:

    Bitte melde dich an, um diesen Anhang zu sehen. :verehr: .: Mit Bitte melde dich an, um dieses Bild zu sehen.wäre das nicht passiert! :. :prof:  Bitte melde dich an, um diesen Anhang zu sehen.

    :syshack: .: Meine 3D-Drucker Teile auf :. Bitte melde dich an, um diesen Link zu sehen. :strom:

  • Bei mir klappt es mit den Zwischenergebnissen. Ein Kern und es dauert >30min. Alle 16 Kerne, mit 2x Zwischenergebnissen und einer anderen Opitmierung und schon dauert die gleiche Rechenaufgabe <3min. :thumbsup:

    Jeder der 16 Kerne verbraucht nur 3% der CPU Leistung. Das dürfte mit VB.net weitgehend ausgereizt sein. Ich wollte aber eine weitere FOR-Schleife für Berechnungen drin haben. Also nochmal nachgedacht. :idea:Dann kam mir der Gedanke das ich die Schleife auch doppelt durchlaufen könnte, also 16 Prozesse vorwärts und 16 Prozesse rückwärts. Einer der 32 Prozesse wird dann ein Ergebnis liefern. So kam es auch und es dauerte ca. 30 Sekunden. Nun konnte ich wie gewünscht eine weitere FOR-Schleife einbauen. Die benötigt ca. 12min. :thumbsup: Immer noch lang, aber viel besser als vorherige Versuche wo teilweise nach Stunden nix sinnvolles raus kam. Mal schauen ob ich bei den Zwischenergebnissen noch was verbessern kann. :gruebel Noch mehr Prozesse starten macht aber keinen Sinn mehr, weil jetzt die CPU gesamt bei 100% liegt. Mal schauen ob ich verständliche Beispiele in Bitte melde dich an, um diesen Link zu sehen. finde. Meine nVidia 2080 RTX Ti hat viel Power, wäre super wenn ein Teil der Rechenaufgaben auch auf der GPU laufen würden. :)

    Bitte melde dich an, um diesen Anhang zu sehen. :verehr: .: Mit Bitte melde dich an, um dieses Bild zu sehen.wäre das nicht passiert! :. :prof:  Bitte melde dich an, um diesen Anhang zu sehen.

    :syshack: .: Meine 3D-Drucker Teile auf :. Bitte melde dich an, um diesen Link zu sehen. :strom:

    2 Mal editiert, zuletzt von oobdoo (11. März 2024 um 02:00)

  • Ich dachte, OpenCL ist der neue Standard?

    Alternativ gibt es ja bei ebay diese günstigen MS Catapult fpga Beschleuniger Karten.

    Aber evtl kann man sogar beim Algorithmus mehr rausholen. Dafür müsstest Du halt mal sagen, was Du da genau berechnen willst.

  • Aber evtl kann man sogar beim Algorithmus mehr rausholen.

    This. Ich habe in meinem Leben einige Zeit mit Optimierungen verbracht und das ist immer der erste und wirkungsvollste Ansatz. Out-of-the-box Denken rules ^^

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • Ich dachte, OpenCL ist der neue Standard?

    Ob OpenCL oder CUDA ist mir im Grunde egal, wenn ich denn nur gute Beispiele finden würde wie ich das nutzbar machen könnte.

    Alternativ gibt es ja bei ebay diese günstigen MS Catapult fpga Beschleuniger Karten.

    Da dürfte für mich die Nutzung noch schwieriger sein als bei OpenCL und CUDA.

    Aber evtl kann man sogar beim Algorithmus mehr rausholen. Dafür müsstest Du halt mal sagen, was Du da genau berechnen willst.

    Verschachtelte FOR-Schleifen und innen wird nochmal ein MD5 erzeugt.

    Bitte melde dich an, um diesen Anhang zu sehen. :verehr: .: Mit Bitte melde dich an, um dieses Bild zu sehen.wäre das nicht passiert! :. :prof:  Bitte melde dich an, um diesen Anhang zu sehen.

    :syshack: .: Meine 3D-Drucker Teile auf :. Bitte melde dich an, um diesen Link zu sehen. :strom:

  • Ob OpenCL oder CUDA ist mir im Grunde egal, wenn ich denn nur gute Beispiele finden würde wie ich das nutzbar machen könnte.

    Also wenn Du da was Ordentliches findest, das interessiert mich auch. Ich wollte mich schon lange mal mit der GPGPU beschäftigen.

    Früher waren 64k unglaublich viel, heute reicht es nicht mal mehr für "Hello, world!".

  • Wenn Du Java magst, schau Dir mal TornadoVM an.

    Ich glaube, oobdoo hat die gleiche Leidenschaft wie ich, und die nennt sich VB.Net.

    Wobei ich mich immer frage, was schneller ist... Java oder ein Z80 :D:D:D

    Früher waren 64k unglaublich viel, heute reicht es nicht mal mehr für "Hello, world!".

  • Wenn Du Java magst, schau Dir mal TornadoVM an.

    Ich glaube, oobdoo hat die gleiche Leidenschaft wie ich, und die nennt sich VB.Net.

    Wobei ich mich immer frage, was schneller ist... Java oder ein Z80 :D:D:D

    Ich mach ja auch gerade bischen VB.net für nen Kunden, und bekomm daher so bisserl Einblick. Leidenschaft hat sich leider noch nicht entwickelt. Aber so sehr ich z80 auch mag, so gerne benutz ich immer mal wieder Java. Unter den richtigen Umständen kann das sehr fix sein. Und eine Lösung wie TornadoVM, die den Code auf der GPU oder einer FPGA Karte laufen lässt, kann in vielen Fällen ne gute Lösung sein.

  • Ich mag halt die recht einfache Lesbarkeit von VB. Mit Java habe ich auch schon mal Zeug gemacht, aber da ich beruflich hauptsächlich Datenbank-Zeugs programmiere, bevorzuge ich .Net (C# ist für mich genauso schrecklich lesbar wie Java übrigens), denn schon alleine die Parameter sind um Längen komfortabler als mit Java. Wobei sich da inzwischen ja so Einges getan haben kann, das ist ja auch schon ein paar Jahre her.

    Und nachdem ich ja vom 6502 Assembler komme, sind für mich die meisten Sprachen einfach nur schrecklich zu lesen, so nebenbei :wink:

    Früher waren 64k unglaublich viel, heute reicht es nicht mal mehr für "Hello, world!".

  • Was ich an der VB Arbeit hauptsächlich mag, ist, dass VS wirklich versucht, Dinge abzukürzen. So kleine Tippfehler werden automatisch korrigiert, beim Starten des Projekts werden die Files automatisch gespeichert und compiliert z.B. . Sowas bekommt Eclipse nicht hin, was ich nicht verstehe. Quartus ist doch nochmal schlimmer, wie ich finde. Das compiliert ohne Kommentar alte Sources, übersieht massig Tippfehler uvm.

  • bevorzuge ich .Net (C# ist für mich genauso schrecklich lesbar wie Java übrigens)

    Da sind wir auf einer Wellenlänge. :thumbsup:

    Zum Glück gibt es heute Konverter von C#<>VB. Das macht das Coden einfacher.

    Und was ich beim Coden nicht hinbekomme, das kann ich immer wieder gut in

    Excel visualisieren.So wie jetzt wieder. In Excel die Gedanken visualisieren, wie ich

    mit meinem Multiprozessing Problem weiterkommen könnte.

    Bitte melde dich an, um diesen Anhang zu sehen. :verehr: .: Mit Bitte melde dich an, um dieses Bild zu sehen.wäre das nicht passiert! :. :prof:  Bitte melde dich an, um diesen Anhang zu sehen.

    :syshack: .: Meine 3D-Drucker Teile auf :. Bitte melde dich an, um diesen Link zu sehen. :strom:

  • Eclipse ist einfach nur die Pest! Dann gibt es auch noch Tool-Anbieter die da was draufstöpseln um es noch schrecklicher zu machen. Widerlich! Es gab eine Zeit, da musste ich mich als Java-Entwickler prostituieren. Die schlimmste Zeit in meinem Leben. Immerhin hat der Laden mit IntelliJ von JetBrains für eine gute Entwicklungsumgebung gesorgt.

    Seit dem es VS Code gibt, nehme ich nur noch das. Egal ob Python, C, Assembler oder Verilog.

  • Ich bleib dabei, dass ich Java gut find. Auch wenn ich gerade C++ bevorzuge, weil es schneller ist. Oder natürlich gleich Verilog.

    Was machst Du mit Verilog?

  • Java, ja solange es klein und handlich bleibt aber diese riesigen Enterprise Geschichten und JBoss. Nein Danke. Durch meine Vorschädigung hab ich da auch 'ne Aversion entwickelt.

    Verilog: Ich bin in der Chipentwicklung tätig und baue tolle Sachen, damit ihr noch mehr Schnick-Schnack in Eurem nächsten Auto oder Handy habt. :wink:

    Zu Hause hab ich ein kleines iCEBreaker Board mit Lattice iCE40up5k. Das hole ich immer raus, wenn ich im Unternehmen zu lange theoretischen Krams machen soll. Sonst fehlt mir was. :D

  • Java, ja solange es klein und handlich bleibt aber diese riesigen Enterprise Geschichten und JBoss. Nein Danke. Durch meine Vorschädigung hab ich da auch 'ne Aversion entwickelt.

    Ich mag Java gerade für grössere Projekte, weil ich die damit gut strukturieren kann. Macht mir gerade so ab 100k Zeilen aufwärts Spass.


    Verilog: Ich bin in der Chipentwicklung tätig und baue tolle Sachen, damit ihr noch mehr Schnick-Schnack in Eurem nächsten Auto oder Handy habt. :wink:

    Zu Hause hab ich ein kleines iCEBreaker Board mit Lattice iCE40up5k. Das hole ich immer raus, wenn ich im Unternehmen zu lange theoretischen Krams machen soll. Sonst fehlt mir was. :D

    Ich hab auch ein paar Boards daheim. Ich hab hier auch mal ne ganz kleine Einführung geschrieben

    Bitte melde dich an, um diesen Link zu sehen.

    und hätte eigentlich hier im Forum auch gerne einen FPGA Bereich für so allgemeine Entwicklung, aber es gibt wohl nicht genug Interesse an sowas.

  • Ich mag Java gerade für grössere Projekte, weil ich die damit gut strukturieren kann. Macht mir gerade so ab 100k Zeilen aufwärts Spass.

    Ich finde Java echt super. Ich hatte schon 15 Jahre und mehr mit C++ auf dem Buckel aber erst als ich angefangen habe Java zu lernen habe ich Objektorientertes Programmieren gelernt und verstanden. Davor habe ic mich immer gefragt wie ich es schaffe Klassen so zu schreiben dass die wirklich zusammengestöpselt werden können und wiederverwendbar sind. Das habe ich erst durch Java kapiert.

    Ich hatte auch Gelegenheit C# zu programmieren, aber das ist schon heftig. Die Sprache zu lernen ist ja schnell erledigt, aber da gibts soviele Bibliotheken die einem die Arbeit abnehmen und dannn jede Menge Code dadurch verstecken dass ich in unserem Projekt überhaupt nicht durchgeblickt habe wie das funktioniert. Bin froh dass ich das Projekt an eine andere Abteilung abgeben konnte. Die schreiben das jetzt neu - in Python. :D

    Wobei das aber nicht an meinem Code lag, denn ich habe da kaum was dazu beigetragen. Das hat einer geschrieben der wirklich Ahnung von C# hatte. Vorteil ist natürlich dass er in wenigen Stunden die kompliziertesten Sachen gemacht hatte wo ich Tage gebraucht habe.