Αντικατάσταση fortran g95 me intel fortran compiler

...IDE, compilers, κλπ

Συντονιστής: konnn

Αντικατάσταση fortran g95 me intel fortran compiler

Δημοσίευσηαπό stefanostam » 14 Οκτ 2009, 19:24

Καλησπέρα παιδιά
Το πρώτο μου post στην κοινότητα εδώ και θέλω βοήθεια σε κάτι που με παιδεύει πολύ

Προσπαθώ εδώ και καιρό να βρώ έναν fortran compiler ο οποίος να μην δημιουργεί memory allocation error στο μηχάνημα

Είπα να δοκιμάσω τον compiler της intel...Το πρόγραμμα που έχω χρησιμοποιούσε μέχρι τώρα τον g95...Πως μπορώ να κάνω το pc να βλέπει τον compiler της intel σαν τον g95 ώστε να μου τρέξει με αυτόν;;;

Κάποιο link αρχείο θα είναι αλλά δεν ξέρω πως να το κάνω..

Καμιά ιδέα

Ευχαριστώ πολύ!!!!
stefanostam
babeTUX
babeTUX
 
Δημοσιεύσεις: 14
Εγγραφή: 14 Οκτ 2009, 19:08
Εκτύπωση

Re: Αντικατάσταση fortran g95 me intel fortran compiler

Δημοσίευσηαπό logari81 » 14 Οκτ 2009, 20:35

stefanostam έγραψε:Προσπαθώ εδώ και καιρό να βρώ έναν fortran compiler ο οποίος να μην δημιουργεί memory allocation error στο μηχάνημα

το memory allocation error πιθανότατα δεν τον δημιουργει ο compiler αλλά ο τροπος που τον χρησιμοποιεις. Αν μπορουσες να μας δωσεις τον κωδικα σου ισως να μπορουσαμε να σου δωσουμε καποια συμβουλή.

Επίσης ο πιο διαδεδομενος compiler για fortran ειναι ο gfortran, δοκίμασε με αυτον.

stefanostam έγραψε:.Το πρόγραμμα που έχω χρησιμοποιούσε μέχρι τώρα τον g95...

τι εννοεις δηλαδη; Ποιο προγραμμα εννοεις;
http://opensourceecology.org/


Λειτουργικό: Ubuntu 10.04 lucid 64-bitΠροδιαγραφές: 4x Intel Core i5 CPU M 450 2.40GHz ‖ RAM 3696 MiB ‖ Lenovo KL3 - LENOVO IdeaPad Y560
Κάρτα γραφικών: ATI Device [1002:68c0]Ασύρματο: wlan0: Atheros Inc. AR928X Wireless Network Adapter (PCI-Express) [168c:002a] (rev 01)
logari81
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6074
Εγγραφή: 14 Μάιος 2008, 10:40
Εκτύπωση

Re: Αντικατάσταση fortran g95 me intel fortran compiler

Δημοσίευσηαπό stefanostam » 15 Οκτ 2009, 11:03

Τι εννοείς ο τρόπος που τον χρησιμοποιώ;Το πρόγραμμα είναι μερικές χιλιάδες γραμμές οπότε τι να πρωτοκάνω cp :P

Έχω δοκιμάσει και gfortran και πάλι έβγαζε το ίδιο error το οποίο συγκεκριμένα είναι αυτο:Operating system error: Cannot allocate memory. Memory allocation failed

Το προγραμμάτακι που θέλω να τρέξω(το οποίο αποτελείται απο πολλά .f αρχεία) είχε γίνει compile με τον g95.Τώρα όμως θέλω να κάνω compile με τον compiler της intel και επειδή το compile γίνεται με ένα makefile θέλω να κάνω την αλλαγή που είπα στο πρώτο ποστ έτσι ώστε όταν το πρόγραμμα καλεί το g95 ουσιαστικά η κλήση να γίνεται στον compiler της Intel...
stefanostam
babeTUX
babeTUX
 
Δημοσιεύσεις: 14
Εγγραφή: 14 Οκτ 2009, 19:08
Εκτύπωση

Re: Αντικατάσταση fortran g95 me intel fortran compiler

Δημοσίευσηαπό logari81 » 15 Οκτ 2009, 11:20

Αφου χρησιμοποιείς Makefiles για να κανεις το compile, καπου μεσα στο Makefile οριζεται κι ο compiler που χρησιμοποιείς π.χ. συνηθως ως:
FC=gfortran
Για το προβλημα που ανέφερες παντως πιθανοτατα προσπαθεις να χρησιμοποιήσεις σε καποιο σημειο περισσότερη μνημη από οση εχεις διαθέσιμη. Το προβλημα αυτο δεν θα σου το λυσει η αλλαγή compiler.
http://opensourceecology.org/


Λειτουργικό: Ubuntu 10.04 lucid 64-bitΠροδιαγραφές: 4x Intel Core i5 CPU M 450 2.40GHz ‖ RAM 3696 MiB ‖ Lenovo KL3 - LENOVO IdeaPad Y560
Κάρτα γραφικών: ATI Device [1002:68c0]Ασύρματο: wlan0: Atheros Inc. AR928X Wireless Network Adapter (PCI-Express) [168c:002a] (rev 01)
logari81
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6074
Εγγραφή: 14 Μάιος 2008, 10:40
Εκτύπωση

Re: Αντικατάσταση fortran g95 me intel fortran compiler

Δημοσίευσηαπό Dimitris » 15 Οκτ 2009, 11:49

Έτσι όπως τα λέει ο logari81 είναι. Αλλά εγώ να ρωτήσω κάτι άλλο: κάνεις πουθενα allocate A(10000000) όπου Α ένας πίνακάς σου και 10000000 ένας πολύ μεγάλος αριθμός; Αν ναι, τότε δε φταίει ο μεταγλωττιστής αλλά το μηχάνημά σου. Για να δεις τα όρια της μνήμης για ένα κέλυφος δώσε:
Κώδικας: Επιλογή όλων
ulimit -a


Αν δε με πιστεύεις δοκίμασε το εξής:
Κώδικας: Επιλογή όλων
call foo()
end

subroutine foo()
real*8, allocatable :: A(:,:)
allocate(A(100,100))
end

και μετά
Κώδικας: Επιλογή όλων
call foo()
end

subroutine foo()
real*8, allocatable :: A(:,:)
allocate(A(100000000000,100000000000))
end


Kαι θα πάρεις το ίδιο σφάλμα. Αυτό σημαίνει ή ότι θα αυξήσεις το όριο με την εντολή ulimit, αλλά να ξέρεις ότι θα προσπαθεί ο υπολογιστής να δεσμεύσει τη μνήμη και θα σέρνεται. Συνεπώς, αν θες το πρόγραμμα να λειτουργήσει σωστά, το ξανασχεδιάζεις ώστε να δεσμεύει σταδιακά τη μνήμη που χρειάζεσαι (είμαι σίγουρος ότι δε χρησιμοποιείς όλα τα δεδομένα ταυτόχρονα) ή αυξάνεις το όριο με την ulimit και βλέπεις πώς τα resources δεσμεύονται μέχρι να μη μπορείς να κάνεις τίποτε. Για ότι απορίες, ακόμη και σχετικά με προγραμματισμό σε fortran, μη διστάσεις να ρωτήσεις.
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: Αντικατάσταση fortran g95 me intel fortran compiler

Δημοσίευσηαπό stefanostam » 16 Οκτ 2009, 17:18

Υπέθεσα ότι φταίει ο compiler αφου διάβασα αυτό εδώ: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40508

Ψάχνω να αλλάξω compiler επειδή δεν ξέρω πως να κάνω compile τη gfortran απο το source έτσι ώστε να ακολουθήσω τις οδηγίες απο το link που παρέθεσα.(συγκεκριμένα να αλλάξω το format.c και έπειτα να κάνω την εγκατάσταση χειροκίνητα)...

Αν με βοηθούσατε στο πως να κάνω την εγκατάσταση θα ήταν πολύ χρήσιμο.

Σε λίγο θα κάνω και αυτά που μου είπατε νωρίτερα να δω τι βγάζει.Παρεπιπτόντως το πρόγραμμα τρέχει κανονικότατα σε pc me 2gb μνήμη...
stefanostam
babeTUX
babeTUX
 
Δημοσιεύσεις: 14
Εγγραφή: 14 Οκτ 2009, 19:08
Εκτύπωση

Re: Αντικατάσταση fortran g95 me intel fortran compiler

Δημοσίευσηαπό logari81 » 16 Οκτ 2009, 17:44

κατι δεν καταλαβες καλα νομιζω απο το bug που παρεθεσες. Απόσο διαβασα, το bug αυτό δεν ειναι αιτία το προβλημα που εχεις εσυ στο προγραμμα σου.

stefanostam έγραψε:Σε λίγο θα κάνω και αυτά που μου είπατε νωρίτερα να δω τι βγάζει.Παρεπιπτόντως το πρόγραμμα τρέχει κανονικότατα σε pc me 2gb μνήμη...


σε pc με πόσο μνημη προκυπτει το πρόβλημα;

Φρόντισε να αλλαξεις το προγραμμα σου ωστε να διαχειρίζεται πιο έξυπνα την μνημη.
http://opensourceecology.org/


Λειτουργικό: Ubuntu 10.04 lucid 64-bitΠροδιαγραφές: 4x Intel Core i5 CPU M 450 2.40GHz ‖ RAM 3696 MiB ‖ Lenovo KL3 - LENOVO IdeaPad Y560
Κάρτα γραφικών: ATI Device [1002:68c0]Ασύρματο: wlan0: Atheros Inc. AR928X Wireless Network Adapter (PCI-Express) [168c:002a] (rev 01)
logari81
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6074
Εγγραφή: 14 Μάιος 2008, 10:40
Εκτύπωση

Re: Αντικατάσταση fortran g95 me intel fortran compiler

Δημοσίευσηαπό stefanostam » 16 Οκτ 2009, 18:03

Σε pc με 1 Gb εμφανίζεται το error...Το ίδιο error με το παιδί στο site που παρέθεσα δεν έχουμε;;;Τι δεν καταλαβα καλά;
stefanostam
babeTUX
babeTUX
 
Δημοσιεύσεις: 14
Εγγραφή: 14 Οκτ 2009, 19:08
Εκτύπωση

Re: Αντικατάσταση fortran g95 me intel fortran compiler

Δημοσίευσηαπό Dimitris » 16 Οκτ 2009, 19:08

Βλέπεις που έρχεσαι στα λόγια μας; Σε 2 g τρέχει ενώ σε 1 g όχι.

Το bug δεν έχει να κάνει με το παράδειγμα που αναφέρω παραπάνω. Όταν πάω σπίτι θα δοκιμάσω το bug report σε linux.

Εν πάσει περιπτώσει η εγκατάσταση της gfortran γίνεται:
Κώδικας: Επιλογή όλων
sudo apt-get install gfortran

και της g95 αν κατεβάσεις το εκτελέσιμο, το αποθηκεύσεις στο ~/bin και προσθέσεις το ~/bin στο PATH. Για τον intel compiler δεν έχω ιδέα.
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: Αντικατάσταση fortran g95 me intel fortran compiler

Δημοσίευσηαπό Dimitris » 16 Οκτ 2009, 20:06

Λοιπόν, τo bug αναφέρθηκε σε macbook-pro. Δοκιμάζω τον κώδικα του bug σε linux και στις πρώτες 12 επαναλήψεις δεν έχει αυξηθεί ούτε κατα ένα byte η κατανάλωση μνήμης. Οπότε για άλλη μια φορά είναι όπως τα λέμε. Δες στον κώδικά σου που γίνεται allocate ενός μεγάλου πίνακα. Δοκίμασε με μικρότερο πρόβλημα για να πεισθείς, αν θέλεις. 99.9% είναι όπως τα λέμε.
Κώδικας: Επιλογή όλων
grep allocate *

Για να βρεις σε ποιά σημεία του κώδικα γίνεται allocate, και καλή διασκέδαση με το debugging. (Aυτή είναι η τέχνη του προγραμματισμού που αναφέρω κάπου αλλού...)

ΥΓ. 14 επαναλήψεις και καμία αλλαγή. 16 και στα ίδια.
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Επόμενο

Επιστροφή στο Εφαρμογές για Ανάπτυξη Λογισμικού

cron