Wieso ist Fortran so schnell?



  • großbuchstaben schrieb:

    Cobol

    Der Trollwettbewerb ist auch erstaunlich langlebig.



  • volkard schrieb:

    großbuchstaben schrieb:

    Cobol

    Der Trollwettbewerb ist auch erstaunlich langlebig.

    Jede Programmiersprache hat ihre Schwerpunkte. Cobol steht für "COmmon Business-Oriented Language". Aha - Hier gehts also nicht um Mathematik - nein - es geht auch nicht um dynamische 10 dimensionale Tabellen - und nein - es geht auch nicht darum 10 recursive Funktionen zu bauen oder mit Makrocode ein Programm völlig unleserlich zu machen.

    Bei Cobol geht es um EDV! Für die, die es nicht wissen: "E lektronische D aten V erarbeitung". Es geht also darum, sehr effizient "Daten" zu verarbeiten. Das macht Cobol seit 50 Jahren wunderbar - und vermutlich noch einige Jahre mehr... 🙂



  • FORTRAN ist nicht schneller als z.B. C oder C++ oder nur unbedeutend durch den möglicherweise geringfügigeren
    Overhead der Benutzeroberfläche. Reine Bibliotheken für Berechnungen dürften etwa gleich schnell sein.

    Es wurde schon gesagt: es kommt mehr auf die Realisierung eines Algorithmus an. Dies gilt vor allem, wenn
    zur Lösung einer Aufgabe Iterationen erforderlich sind.

    Diese Diskussion kann leicht zum Trollthema ausarten! 🕶



  • @berniebutt: Hast du eigentlich den Link auf Stackoverflow gelesen?



  • berniebutt schrieb:

    FORTRAN ist nicht schneller als z.B. C oder C++ oder nur unbedeutend durch den möglicherweise geringfügigeren
    Overhead der Benutzeroberfläche. Reine Bibliotheken für Berechnungen dürften etwa gleich schnell sein.

    Dann siehst Du Fortran als super Sprache zur Realisierung von Benutzeroberflächen an? 🤡

    berniebutt schrieb:

    Es wurde schon gesagt: es kommt mehr auf die Realisierung eines Algorithmus an. Dies gilt vor allem, wenn
    zur Lösung einer Aufgabe Iterationen erforderlich sind.

    Fortran kommt auf Supercomputern und Clustern zum Einsatz, wenn es um die Realisierung von numerischen Methoden geht. Ansonsten ist Fortran praktisch nirgendwo anzutreffen. Neben Fortran findet man auf Supercomputern ansonsten noch C und C++ im Einsatz. Meiner Meinung nach gibt es bei der Performance zwischen diesen Sprachen keine großen Unterschiede, wobei es natürlich Argumentationen gibt, dass ein Fortran Compiler bei der Optimierung mehr Annahmen treffen kann, da die Sprache dem Programmierer weniger Freiheitsgrade lässt. Ich denke, die Entscheidung für eine der Sprachen hängt von anderen Aspekten ab. Vor allem sind C++ und Fortran unterschiedlichen Communities zuzuordnen. Wenn man als Student eines naturwissenschaftlichen Faches in seiner Abschlussarbeit oder Promotion programmiert, dann entscheiden in erster Linie die Fragen, bezüglich welcher Sprache Know-How in der Arbeitsgruppe vorhanden ist, welche Sprache schneller zu erlernen ist und auch ob schon Code in einer bestimmten Sprache existiert. Bei diesen Aspekten fällt die Wahl dann sehr oft auf Fortran. Wenn die Arbeitsgruppe einen Informatik-Hintergrund hat, dann wird die Wahl vermutlich eher auf C++ fallen.



  • Gregor schrieb:

    berniebutt schrieb:

    FORTRAN ist nicht schneller als z.B. C oder C++ oder nur unbedeutend durch den möglicherweise geringfügigeren
    Overhead der Benutzeroberfläche. Reine Bibliotheken für Berechnungen dürften etwa gleich schnell sein.

    Dann siehst Du Fortran als super Sprache zur Realisierung von Benutzeroberflächen an? 🤡

    NEIN, falsch verstanden! FORTRAN unterstützt keine aufwendigen Benutzeroberflächen, also ist der Overhead reduziert.
    Dadurch entfällt dann etwas Rechenaufwand.

    Ansonsten sei niemand mehr FORTRAN zum Lernen angeraten, es sei denn er muss
    alte Sources pflegen. Die C-Sprachen sind moderner. Alles, was man mit FORTRAN
    einst machen konnte, geht mit C genauso nur mit anderer Syntax.



  • berniebutt schrieb:

    NEIN, falsch verstanden! FORTRAN unterstützt keine aufwendigen Benutzeroberflächen, also ist der Overhead reduziert.
    Dadurch entfällt dann etwas Rechenaufwand.

    Warum sollte eine Berechnung langsamer laufen, wenn das System prinzipiell auch eine aufwändige Benutzeroberfläche darstellen könnte? Selbst wenn das System eine aufwändige Benutzeroberfläche gerade dar stellt, ergibt sich kein Overhead.



  • tntnet schrieb:

    berniebutt schrieb:

    NEIN, falsch verstanden! FORTRAN unterstützt keine aufwendigen Benutzeroberflächen, also ist der Overhead reduziert.
    Dadurch entfällt dann etwas Rechenaufwand.

    Warum sollte eine Berechnung langsamer laufen, wenn das System prinzipiell auch eine aufwändige Benutzeroberfläche darstellen könnte? Selbst wenn das System eine aufwändige Benutzeroberfläche gerade dar stellt, ergibt sich kein Overhead.

    Wen interessiert es? Letztendlich hat man in der Anwendungsdomaene von Fortran sowieso keine Benutzungsoberflaechen, auch wenn man die Programme mit C++ schreibt. Was soll man damit? Ich meine, die Nutzungsweise von Supercomputern oder Clustern ist typischerweise so, dass man ein "Jobfile" schreibt, in dem eine Berechnung gestartet wird und das man an ein Queuing-System uebersendet. Das wird dann abgearbeitet, wenn entsprechende Rechenleistung auf dem Cluster verfuegbar ist, zum Beispiel mitten in der Nacht. Wenn dann eine grafische Benutzungsschnittstelle startet, dann ist das nur Resourcenverschwendung. In dem Zusammenhang arbeitet man praktisch nicht interaktiv. Warum sollte ein Cluster auf einen Anwender warten?



  • SeppJ schrieb:

    Die Performance compilierter Programme hängt sehr stark von der ualität der Compiler ab.

    Die Performance hängt aber noch mehr davon ab, wie der Algorithmus an die Zielplattform(CPU etc.) angepasst ist(Cachehits etc.) damit kann man Programmteile auf das 12-35fache beschleunigen. Also mit derselben Maschine kann eine Operation eine Minute dauern oder 2 Sekunden, nur weil der Algo auf die CPU angepasst wurde und nicht weil die Compiler so gut optimiert.

    Hier ist das mal vom wissentschaftlichen Aspekt betrachtet:
    http://www.multimedia.ethz.ch/speakers/lecture/?doi=10.3930/ETHZ/AV-d1c72caf-76ef-4834-b0b5-7350edf25710&autostart=true



  • Diese mehr oder weniger passenden Links auf "Sehr schnelles Rechnen" empfinde ich inzwischen als Linkspamming. Es nervt.



  • Ok, dann kommt es jetzt in meine Signatur 😃



  • SwitchIO schrieb:

    damit kann man Programmteile auf das 12-35fache beschleunigen

    *fp*


Anmelden zum Antworten