OpenMP kann nur einen Thread < Fortran < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Das Beispielprogramm "program bsp" aus http://de.wikibooks.org/wiki/Fortran:_OpenMP liefert bei mir nicht das richtige Ergebnis. Bei mir kommt leider immer 1: | Insgesamt gibt es 1 Thread(s)
| 2: | Thread 0 ist aktiv |
Woran kann das liegen?
Hier das Programm:1: | program bsp
| 2: | use omp_lib
| 3: | implicit none
| 4: |
| 5: | ! fork
| 6: | !$omp parallel num_threads(3)
| 7: |
| 8: | ! Das nur 1x ausgeben (beim Master Thread)
| 9: | if( omp_get_thread_num() == 0 ) then
| 10: | write( *, * ) 'Insgesamt gibt es ', omp_get_num_threads(), 'Thread(s)'
| 11: | end if
| 12: |
| 13: | ! Das bei jedem Thread ausgeben
| 14: | write( *, * ) 'Thread ', omp_get_thread_num(), 'ist aktiv'
| 15: | ! join
| 16: | !$omp end parallel
| 17: |
| 18: | ! Ausgabe:
| 19: | ! Insgesamt gibt es 3 Thread(s)
| 20: | ! Thread 0 ist aktiv
| 21: | ! Thread 1 ist aktiv
| 22: | ! Thread 2 ist aktiv
| 23: | ! übersetzen: gfortran -fopenmp -o test.bin bsp.for
| 24: | ! ausführen: ./test.bin
| 25: | end program bsp |
Ich habe das Programm unter Knoppix 6.2.1 mit gfortran und gfortran-4.4 übersetzt. Dasselbe Ergebnis.
Mein PC ist ein Amilo-Notebook mit Dualprozessor.
//Edit: Da ich keine Antwort bekomme, habe ich das Thema Fortran erst mal aufgegeben. Ich arbeite mich jetzt in Java ein. Wurde eh mal Zeit.
|
|
|