java-forum.org - Java programmieren aus Leidenschaft
Java 6 Einstieg und professioneller Einsatz
Alter Preis: 34,90 EUR
Jetzt: 0,00 EUR

zzgl. Versandkosten

Zurück   java-forum.org - Java programmieren aus Leidenschaft > Java - Programmierung > Allgemeine Java-Themen

Allgemeine Java-Themen Allgemeine Themen, die nicht in andere Fachforen und nicht zu den Java Basics passen

Thema geschlossen    
Themen-Optionen Thema durchsuchen Ansicht
Alt 06.11.2007, 11:56   #1 (permalink)
Osix2000
Nicht angemeldet
 
Fachbeiträge: n/a
Standard Geschwindigkeit Fortran und Java

Hallo,

Eine Frage, was meint ihr zum Vergleich Fortran und Java....

Macht es Sinn eine naturwissenschaftliche Berechnung in Fortran nach Java umzuschreiben ?

Ja, klar, ich weiß, daß man das nicht so pauschal beantworten kann.

Es geht halt, um ein dreidimensionales Feld mit einigen hunderttausend Zellen, die bearbeitet werden müssen.

Das Fortran Programm ist "gewachsen" und recht chaotisch...

Aber dennoch: Ich erinnere mich ans Studium wo es hieß, das Fortran zwar veraltet, aber eine sehr effiziente Sprache sei, und superschnell bei Berechnungen, weil der Code sehr Assembler nah ist.

Kann Java nicht einschätzen, wie schell das ist bei Rechenoperationen und natürlich auch schleifen und if abfragen...

Ob ich da viel mit Objekten machen kann ist schwierig, ich würde das eher fast "prozedural" nachprogrammieren...

Hat jemand eine Idee, oder weiß was dazu ?
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 06.11.2007, 12:57   #2 (permalink)
Java-Forum Team
Moderator
 
Registriert seit: 06.01.2007
Fachbeiträge: 16.761
Abgegebene Danke: 0
Erhielt 1.640 Danke für 1.485 Beiträge
Sumbjektiv-Unfundiertes Gelaber:

Schneller wird es dadurch vermutlich erstmal nicht. Ob es "Sinn macht", kann man schwer sagen - zumindest wäre so ein Umschreiben ja vielleicht ein Anlaß, das ganze neu zu strukturieren und zu optimieren, so dass eventuelle Vorteile durch den "besseren" Code entstehen. Aber es "so-wie-es-ist" einfach stupide runter-abzutippen, und jedes Fortran-Statement 1:1 in ein Java-Statement zu übersetzen ... höm. Würde ich mir wohl nicht antun ....
Marco13 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 06.11.2007, 14:02   #3 (permalink)
osix2000
Nicht angemeldet
 
Fachbeiträge: n/a
Standard Hallo,

mit "nachprogrammieren" meinte ich ja nicht EXAKT, jede zeile nachprogrammieren...für alle 13-jährigen muß ich das noch dazusagen

Sondern schon zu schauen, wo man was effizienter gestalten kann, aber alle subroutinen zu übernehmen...
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 06.11.2007, 14:09   #4 (permalink)
Java-Forum Team
Moderator
 
Registriert seit: 13.09.2007
Fachbeiträge: 12.754
Abgegebene Danke: 215
Erhielt 810 Danke für 721 Beiträge
Zitat:
aber alle subroutinen zu übernehmen...
Seit wann gibt es in Java "subroutinen"?

So wie sich das anhört, versuchst du dann wirklich die prozedurale Struktur von Fortran in Java abzubilden, und dass geht schief, immer.

Also: Entweder komplett neu aufsetzen und ein OO Konzept entwerfen, das die festgestellten Anforderungen erfüllt, oder ganz bleiben lassen.

Performance wird ja wohl kaum ein Kriterium für eine Portierung sein, oder?
Meist will man damit etwas altes neu strukturieren.
maki ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 06.11.2007, 16:46   #5 (permalink)
Java-Forum Team
Moderator
 
Registriert seit: 06.01.2007
Fachbeiträge: 16.761
Abgegebene Danke: 0
Erhielt 1.640 Danke für 1.485 Beiträge
Nun. Man kann auch in Java prozedural programmieren. Ob man das nun "subroutine" oder "private static final synchronized void"-Methode nennt ist wurscht. Was daran "schief gehen" soll ist mir nicht ganz klar. Man kann natürlich alles 1:1 übernehmen, oder bestimmte Dinge anders strukturieren. Wenn es reines Numbercrunching ist, wird Fortran erstmal sicher schneller sein. Wenn das, was dort berechnet wird, sich irgendwie in ein sinnvolles Obektorientieres Konzept packen läßt (d.h. OHNE Klassen wie "ComputationInput" und "ComputationOutput"), wäre eine Portierung vielleicht nicht verkehrt, weil schönerer, wartbarerer Code dabei entsteht. Was besser ist (oder wie groß die Vor/Nachteile sind) kann man so erstmal nicht sagen.

Übrigens fände ich es ziemlich blöd, jedes Jahr meinen Nicknamen ändern zu müssen.
Marco13 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 06.11.2007, 17:07   #6 (permalink)
Java-Forum Team
Moderator
 
Registriert seit: 13.09.2007
Fachbeiträge: 12.754
Abgegebene Danke: 215
Erhielt 810 Danke für 721 Beiträge
Marco,

wenn du mal "Java" Code liest, der von Leuten geschrieben wurde die nix mit OO am Hut haben und die dachten, man könne das wie in C++ machen, also einfach C schreiben, wirst du wissen was ich meine

Unwartbar, unverständlich, nur sehr schwer falls überhaupt zu verändern... das meine ich mit schiefgehen.

Das man bei diesen dünnen Fakten gar keine Aussage machen kann was schneller ist, ist klar.

Nebenbei bemerkt wird "Performance" von vielen Leuten in ihrer Wichtigkeit überschätzt
maki ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 06.11.2007, 17:26   #7 (permalink)
Java-Forum Team
Moderator
 
Registriert seit: 06.01.2007
Fachbeiträge: 16.761
Abgegebene Danke: 0
Erhielt 1.640 Danke für 1.485 Beiträge
Jo. Wenn man objektorientiert programmiert, dann verwendet man Klassen. Umgekehrt gilt die Implikation NICHT. Das ist mir klar. Aber da man nicht weiß, worum es geht, ist nich klar, inwiefern eine Umstrukturierung möglich, gewünscht oder sinnvoll ist....
Marco13 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 06.11.2007, 17:33   #8 (permalink)
Stammbenutzer
Kilobyte
 
Registriert seit: 24.11.2006
Fachbeiträge: 168
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Ich denke auch es macht keinen großen Sinn, dass Programm prozedural auf Java zu portieren. Wenn dann sollte man die Anforderungen aus dem Fortran-Programm ableiten und ein Objektorientiertes Design entwerfen. Das ist ein großer Aufwand der sich nur lohnt wenn das Programm weiter gewartet und erweitert werden soll. Dabei sollte dann falls nicht vorhanden eine genaue Spezifikation und ein programmiersprachenunabhäniger Entwurf erstellt werden.

Ich gebe maki im übrigen Recht das sehr häufig Performanz überschätzt wird und dagegen Wartbarkeit (Portabilität, Änderbarkeit, und auch Prüfbarkeit) und Bedienbarkeit oft unterschätzt werden.
nebulo ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 07.11.2007, 09:50   #9 (permalink)
Osix2000
Nicht angemeldet
 
Fachbeiträge: n/a
Standard Tja.

Es geht aber hier um wissenschaftliche Rechnungen.... "Numbercrunching" ja, einige dreidimensonalen Felder (100 x 100 x 100) an denen was berechnet werden soll... da wird differnziert, integriert und noch andere mathematische Operationen verwendet... Vektor-Faltungen, die in Subroutinen ausgelagert sind.

Da läßt sich nicht so einfach ein sauberes Objektmodell entwerfen...
Andererseits kann man mit der Komfortabilität von Java einiges eleganter machen als in Fortran, und ich frage mich
halt, wie effizient das wird.

Wir würden es ja in Fortran lassen, aber es soll eine webfähige Anwendung werden...
Da bleiben zwei Möglichkeiten.... Ein Wrapperframework drumrumstricken (Es sind mehrere einzelne Fortranprogramme, die sich ganz altmodisch über ASCII-Dateien austauschen) oder die einzelnen Programme gleich in Java neu schreiben.

Geschwindigkeit ist ebenfalls höchste Priorität, deshalb meine Frage...

@marco: Soso, dann bist Du also 1913 geboren Auch nicht schlecht. Ein 94-jähriger der Java programmiert...
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 07.11.2007, 10:00   #10 (permalink)
Java-Forum Team
Moderator
 
Benutzerbild von SlaterB
 
Registriert seit: 13.11.2005
Fachbeiträge: 31.675
Abgegebene Danke: 0
Erhielt 2.570 Danke für 2.531 Beiträge
fang doch klein an, suche dir eine abgeschlosse Teil-Operation von 100 Zeilen
und lasse die in Fortran + Java 1 Mio. durchlaufen um einen ganz groben Eindruck zu erhalten
__________________
Hansa wird Meister.
SlaterB ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 07.11.2007, 10:54   #11 (permalink)
Java-Forum Team
Moderator
 
Registriert seit: 06.01.2007
Fachbeiträge: 16.761
Abgegebene Danke: 0
Erhielt 1.640 Danke für 1.485 Beiträge
Hm. Eine Matrix (bzw. ein Tensor) ist ein Objekt. Aber sowas selbst schreiben macht keinen Sinn. Dazu sollte man eher mal auf
http://math.nist.gov/javanumerics/
unter "Libraries" schauen. Dort ist übrigens auch ein Link zu einen Fortran-2-Java-Übersetzer
http://icl.cs.utk.edu/f2j/
Bei solchen automatischen Übersetungen sollte man kritisch sein, aber vielleicht hilft es, schnell und leicht einen Eindruck von der möglichen Performance zu bekommen...

EDIT: Nyehe... die FAQ dazu ist ja geil:
http://icl.cs.utk.edu/f2j/faq/index.html
Marco13 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 08.11.2007, 09:44   #12 (permalink)
Hurga38
Nicht angemeldet
 
Fachbeiträge: n/a
Ich hab den Transpiler f2j mal angelesen.

Ich verstehe aber nicht so recht, ob der alles in Fortran übersetzt oder nur die BLAS LAPACK Sachen....

Hat jemand noch einen anderen Transpiler von Fortran nach Java ?
 
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Thema geschlossen    

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
java geschwindigkeit Bit2_Gosu Allgemeine Java-Themen 16 20.11.2007 09:29
fortran exe über java ausführen jay Allgemeine Java-Themen 4 08.11.2007 10:23
Fortran Funktion mit JNI aufrufen: java.lang.UnsatisfiedLink Sonjaja Allgemeine Java-Themen 2 08.11.2007 10:22
Kommunikation Fortran <-> Java auf Client-Server-Archi Snape Netzwerkprogrammierung 2 04.05.2005 11:19
Fortran nach Java mit f2j Allgemeine Java-Themen 13 01.04.2005 12:34


Lesezeichen

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:32 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de