szczer lab (2)


Identyfikator - litery, cyfry, pierwszy znak litera, max 6 znaków

Komentarz - zajmuje cały wiersz (C / * / !) W jednym wierszu co najwyżej 1 instrukcj lub deklaracja; brak „;” i innych separatorów

Etykiety - ciąg do pięciu cyfr. Spacje pomijane z wyjątkiem stałych tekstowych

Tekst programu w segmentach:

- segment główny - pr gł

- segment pomocniczy - podprogramy

- koniec segmentu - „end”

Typy danych

Zapis: .true. .false.

Stałe: Parametr(ident=wyr)

Zmienne: Ident.typu lista.id.zmiennych.oddzielona.przecinkami

Tablice: id.typu id.tablicy(zakres,zakres.1….zakres.n) zakr.dolny=1

Np.: real tab(0:10)

Tab1(5)

Zmienne globalne - Common

Np.: common /nazwa strefy 1/ lista zmiennych1

/nazwa strefy 2/ lista zmiennych2

common lista.zmiennych

common // lista zmiennych

Inne

3**2 == 3^2

a.eq.1.or.b.gt.2 == ((a=1) or (b>2))

Read

read f,lista we (f-formatowanie)

read *, lista.we

Print

print f,lista.wy

print *,lista.wy

Struktura

program identyfikator

.

.

end

Procedury

subrontine nazwa.proc(lista.par.formalnych) (<= moze być bez par, bez nawiasow)

0x08 graphic
deklaracje

return (<= koniec procedury)

end

Funkcje

id.typu function nazwa.f-cj(lista.param.formalnych)

.

return

end

Operatory relacji

Fortran 77 g77

= .eq. ==

<> .ne. /=

< .lt. <

> .gt. >

<= .le. <=

>= .ge. >=

Podprogram

wywołanie

call nazwa_procedury (lista parametrów)

parametry

są przekazywane prze zmienne

Fazy tworzenia programu równoległego

  1. co program ma realizować

  2. opracowanie algorytmu - jak wykonać zadania, jak rozdzielić prace między wiele procesorów = zrównoleglanie

  3. implementacja w języku wysokiego poziomu

OpenMP - 1) zbiór dyrektyw kompilacji opisujących równoległość w kodzie źródłowym (Fortran 77, C/C++) 2) biblioteki podprogramów dostępnych dla równoległych aplikacji

Wątek (thrend)

Wątek główny (master thrend)

0x08 graphic

Wątek głowny

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
1 2 3 4

wątki poboczne (slave thrends)

sekcja krytyczna

0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic
S.K

0x08 graphic
0x08 graphic
S.K S.K

S.K

Redukcja - operacja w której zmienna za pomocą operatora dwuargumentowego wiąże się iteracyjnie z inną wartością i wynik jest zapisywany z powrotem w tej samej zmiennej

z=z+w

ZALEŻNOŚĆ DANYCH

  1. zależność sterowania

0x08 graphic
0x08 graphic
S1: if (A>B) then S1 S2

S2: X=Y

endif

  1. zależnośc danych

odwołanie do zmiennej programu

występuje między dwiema instrukcjami wtedy gdy w obu instr. Następuje odwołanie do tej samej zmiennej i wynikiem wykonania przynajmniej jednej z nich jest nadanie tej zmiennej nowej wartości

w konsekwencji wykonanie instr. Odwołującej się do zmiennej może nastapić dopiero po zakończeniu wykonywanej instr. Która odwoływała się do tej zmiennej wcześniej

0x08 graphic
S1: A=B+C przemianowanie zmiennych

S2: D=A*2

Podział zależności danych

a) zależność przepływu

b) przeciwzależność

c) zależnośc wyjść

0x08 graphic
S1: P=P+Q+R

S2: S=P/2

S3: P=T*T

0x08 graphic
S1: A=X+Y

0x08 graphic
S2: B=C*A przeciwzależności

S3: X=W-V

S4: A=X-Y

Po zmianie

0x08 graphic
S1: A1=X+Y

S2: B=C*A1

0x08 graphic
S3: X1=W-V

S4: A=X1-Y

Pętla

- zależności wewnątrzitracyjne - źródło I ujście w tej samej iteracji

- zależności międzyiteracyjne - źródło i ujście w różnych iteracjach


do I=1,10

A(I)=X(I)

Y(I)=A(I)

enddo

it 1: A(1)=X(1)

Y(1)=A(1)

It 2 A(2)=X(2)

Y(2)=A(2)

It 10 A(10)=X(10)

Y(10)=A(10)

do I=2,10

A(I)=X(I)

Y(I)=A(I-!)

enddo

it 1: A(2)=X(2)

Y(2)=A(1)

It 2 A(3)=X(3)

Y(3)=A(2)

It 10 A(10)=X(10)

Y(10)=A(9)


do I=2,100

S1: a(i)=b(I*2)+x(i)

S2: c(i)=a(i)/2,0

S3: f(i)=C(i+1)-a(i)

S4: d(i+1)=c(i)*c(i)

S5: x(i)=d(i)+c(i-1)

S6: x(i+2)=e(i)+f(i)

enddo

zależność

tablica

typ

rodzaj

S1 S2

A

przepływu

wewnątrziteracyjna

S1 S3

A

przepływu

wewnątrziteracyjna

S1 S5

X

przeciwzależność

wewnątrziteracyjna

S2 S4

C

przepływu

wewnątrziteracyjna

S2 S5

C

przepływu

międzyiteracyjna

S3 S2

C

przeciwzależność

międzyiteracyjna

S3 S6

F

przepływu

wewnątrziteracyjna

S4 S5

D

przepływu

międzyiteracyjna

S6 S1

X

przepływu

międzyiteracyjna

S6 S5

X

wyjść

międzyiteracyjna

INNE

= return - sedment pomocniczy



Wyszukiwarka

Podobne podstrony:
spis lab I sem 2010
III WWL DIAGN LAB CHORÓB NEREK i DRÓG MOCZ
Diagnostyka lab wod elektrolit
ZW LAB USTAWY, OCHRONA
LAB PROCEDURY I FUNKCJE
sprzet lab profilografy
sprzet lab mikromanometry
Mechanika Plynow Lab, Sitka Pro Nieznany
Lab 02 2011 2012
PO lab 5 id 364195 Nieznany
lab pkm 4
MSIB Instrukcja do Cw Lab krystalizacja
lab [5] id 258102 Nieznany
lab 8 9 1
lab 3 2 9
IE RS lab 11 solutions
5 MDE lab nr 5 ogniwa fotogalwaniczne

więcej podobnych podstron