-
Data: 2012-03-02 16:27:00
Temat: Re: OpenMP - jest szybciej czy wolniej?
Od: "slawek" <s...@h...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]
Użytkownik "Edek Pienkowski" <e...@g...com> napisał w
wiadomości grup dyskusyjnych:jiqqlu$dvn$1...@i...gazeta.pl...
> Już się ktoś pytał: to na pewno ta pętla? Zmieniałeś jej rozmiar?
Wysłałem właśnie przykładowy program - są co prawda 4 pętle, ale chyba widać
o co chodzi.
!***************************************************
****************************************************
************************
!
! Program test-omp
!
!***************************************************
****************************************************
************************
module main
! stale matematyczne i fizyczne (CODATA 2006)
real*8, parameter :: pi =
3.14159265358979323846264338327950288419716939938D0 ! pi
real*8, parameter :: epsilon0 =
8.85418781762038985053656303171075026060837016660D-1
2 ! przenikalnosc
elektryczna prozni [F/m]
real*8, parameter :: c = 299792458.0D0
! predkosc swiatla [m/s]
integer :: n,m;
! I/O units
integer :: input = 11 ! tekstowy wejsciowy plik z danymi
integer :: output = 12 ! tekstowy wyjsciowy plik z danymi
contains
subroutine setup(vec)
implicit none
complex*16, intent(out) :: vec(:)
integer :: i
do i = 1,n
vec(i) = pi*c*epsilon0;
enddo
end subroutine setup
subroutine solve(v1,v2)
implicit none
complex*16, intent(in) :: v1(:)
complex*16, intent(out) :: v2(:)
integer :: i
!$omp do schedule(static,1000)
do i = 1,n
v2(i) = v1(i)/c**2 + abs(epsilon0) + pi
enddo
!$omp end do
end subroutine solve
end module main
program testomp
use main
implicit none
real*4 stamp0 ! pomiar czasu - stempel 0
real*4 stamp1 ! pomiar czasu - stemper 1
integer, parameter :: nmax = 10000 ! takie duze tablice sa
complex*16 :: vec(nmax,2)
integer :: i1,i2,i,j
complex*16 :: sum
call cpu_time(stamp0)
n = 1000
m = 100000
if(n.le.nmax) then
!$omp parallel
i1 = 1
i2 = 2
call setup(vec(:,i1))
do j = 1,m
call solve(vec(:,i1),vec(:,i2))
i1 = mod(i1,2) + 1
i2 = mod(i2,2) + 1
enddo
!$omp end parallel
else
write(*,*) 'error: dimension(s)'
endif
call cpu_time(stamp1)
write(*,*) 'CPU time = ', stamp1-stamp0
sum = 0.D0
do i = 1,n
sum = sum + 1.D0/(1.D0+vec(i,i1)*vec(i,i1))
enddo
write(*,*) 'just for fun ', sum
end program testomp
Następne wpisy z tego wątku
- 02.03.12 16:40 Edek Pienkowski
- 02.03.12 16:45 Edek Pienkowski
- 02.03.12 16:50 slawek
- 02.03.12 19:11 slawek
- 03.03.12 06:28
- 03.03.12 10:13 slawek
- 03.03.12 11:14 Roman W
- 03.03.12 12:30
- 03.03.12 12:49 slawek
- 03.03.12 12:57 slawek
- 03.03.12 13:12
- 03.03.12 13:32 slawek
- 03.03.12 14:39
- 03.03.12 15:08 slawek
- 03.03.12 15:44 Edek Pienkowski
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-03 Trybik
- 2025-07-04 Renault Symbioz
- 2025-07-04 Architektura IIIRP: Wyjątkowa, a prymitywniejsza niż stodoła pod zaborami
- 2025-07-04 Warszawa => International Freight Forwarder <=
- 2025-07-04 Wrocław => SAP ABAP Developer <=
- 2025-07-04 Warszawa => Mid/Senior IT Recruiter <=
- 2025-07-04 Białystok => Kotlin Developer <=
- 2025-07-04 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-07-04 Warszawa => Specjalista wsparcia IT - analiza techniczna sprzętu IT <
- 2025-07-04 Zakrzewo => Konsultant SAP HCM <=
- 2025-07-04 Łódź => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-04 Szczecin => Key Account Manager IT <=
- 2025-07-04 Warszawa => Technik IT - Konfiguracja i Wsparcie Sprzętowe <=
- 2025-07-04 Warszawa => Technique IT - Hardware Configuration and Support <=
- 2025-07-04 Warszawa => Specjalista ds. Sprzętu IT i Wsparcia Technicznego <=