Tải bản đầy đủ (.pdf) (106 trang)

Nghiên cứu về xử lý song song trong GIS và xây dựng ứng dụng song song hóa thuật toán định dòng chảy trên bề mặt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.34 MB, 106 trang )



BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH




TIỂU LUẬN TỐT NGHIỆP

NGHIÊN CỨU VỀ XỬ LÝ SONG SONG TRONG GIS VÀ XÂY
DỰNG ỨNG DỤNG SONG SONG HÓA THUẬT TOÁN ĐỊNH
DÕNG CHẢY TRÊN BỀ MẶT


Sc hin: TRN
: H THNG
 2010  2014


 H 
[I]


NGHIÊN CỨU VỀ XỬ LÝ SONG SONG TRONG GIS
VÀ XÂY DỰNG ỨNG DỤNG SONG SONG HÓA
THUẬT TOÁN ĐỊNH DÕNG CHẢY TRÊN BỀ MẶT






TRN




ng dn:


NH




[II]
LỜI CẢM ƠN

c hi c s ng d
ca thng d
ng di h
H i li ci:
- ThS.Cnhng dng H th
 S Khoa hc  ng dn trc ti
 
- Thn Kim Li, ch nhim B 
ng dng - ni h
- KS.  - u Bin
i h
- KS. Nguy  - Ging  
i h

- c bit n ba m n
, tu kin thun
lc ti gian thc hi ,
ng thi li cc ti S Khoa H Ngh
 H u kic t, cung cp s
lic hin t 
 .

Trần Công Huấn
B 
ng & 
i h 
[III]
TÓM TẮT

 u v x ng ng
d mc thc hi
i  thut  ng dng H Th S
Khoa h  H i gian thc hin t n
31/5/2014. G
- u v , h 
- u v 
- u v thu y.
- u v  
- u v thut 
ng C sharp.
- u v  liu ca DEM.
- u v n ArcEngine cn
 h tr hin th, cp nh lin
dng d liu.

t qu c:
-  
c mt.
- ng d tt qu nhanh nh
th nhm tit kim thi s dng.
-  chuyn d liu dng file text sang dn th
d ling dng.

[IV]
MỤC LỤC


LI C II
T III
MC LC IV
DANH MC T VIT TT VII
DANH MC BNG BIU VIII
DANH MNH IX
PHN 1. M U 1
1.1. Tính cấp thiết của đề tài 1
1.2. Mục tiêu nghiên cứu của đề tài 2
1.3. Đối tƣợng và phạm vi nghiên cứu 2
1.3.1. Đối tƣợng nghiên cứu 2
1.3.2. Phạm vi nghiên cứu 2
PHN 2. TNG QUAN V THU 3
2.1. Đại cƣơng về tính toán song song 3
2.1.1. Một số khái niệm và thuật ngữ 3
2.1.2. Các mức độ song song (Level of parallelism) 4
2.1.3. Phân loại các kiến trúc song song 6
2.1.4. Mô hình SIMD (PRAM) 8

2.1.5. Dùng công nghệ EREW mô phỏng các kiến trúc CRCW, CREW 9
2.1.6. Họ máy MIND 10
2.1.6.1. Hệ đa xử lý với bộ nhớ phân tán (Multi processor system with
Distributed Memory) 11
[V]
2.1.6.2. Hệ đa xử lý dùng chung bộ nhớ (Multi processor system with
Shared Memory) 12
2.1.6.3. Hệ đa xử lý với bộ nhớ dùng chung phân tán (Multi processor
system with distributed shared memory) 13
2.1.7. Ngôn ngữ mô tả thuật toán song song 13
2.2. Các mô hình tính toán song song và minh họa 15
2.2.1. Mô hình cây nhị phân (Bimary Tree Model) 15
2.2.2. Mô hình mạng 19
2.2.3. Thuật toán k-cube-Min 23
2.2.4. Thuật toán song song tính tích ma trận 24
2.2.5. Đánh giá hiệu quả của thuật toán song song 26
2.3. Tính toán song song trong .NET và minh họa 34
2.3.1. Task 36
2.3.2. Vòng lặp song song (Parallel Loops) 37
2.3.3. Parallel LINQ 38
2.4. Thuật toán Floyd – Warshall và bài toán tìm đƣờng đi ngắn nhất giữa mọi
cặp đỉnh trên đồ thị 38
PHẦN 3. DỮ LIỆU, NỘI DUNG VÀ PHƢƠNG PHÁP NGHIÊN CỨU 41
3.1. Dữ liệu 41
3.1.1. Mô hình dữ liệu DEM 41
3.1.2. File text độ cao 43
3.2. Thuật toán định dòng chảy trên bề mặt địa hình 44
3.2.1. Giới thiệu thuật toán phân tích dòng chảy D8 44
3.2.1.1. y 44
3.2.1.2.  y 45

3.2.2. Giới thiệu các công cụ tìm dòng trong ArcGIS 46
[VI]
3.2.2.1. ArcSWAT 46
3.2.2.2. Bộ công cụ tìm dòng chảy tích lũy trong ArcGIS 49
3.3. Cài đặt thuật toán D8 (tuần tự) 52
3.3.1. Đọc dữ liệu (đọc file text độ cao) 52
3.3.2. Xác định hƣớng dòng chảy theo D8 53
3.3.3. Tính toán tích lũy dòng chảy (D8) 56
3.4. Tại sao phải cài đặt thuật toán song song 59
3.5. Cài đặt thuật toán song song D8 63
3.5.1. Đọc dữ liệu 64
3.5.2. Xác định song song hƣớng dòng chảy theo D8 65
3.5.3. Tính toán song song tích lũy dòng chảy theo D8 67
PHT QU U 74
4.1. Giới thiệu dữ liệu thử nghiệm 74
4.2. Nhóm công cụ xây dựng trong chƣơng trình 75
4.3. Các kết quả thực hiện đƣợc trong 2 ứng dụng phân tích hƣớng dòng chảy76
PHN 5. KT LUN NGH 87
5.1. Kết luận 87
5.2. Kiến nghị 87
PHU THAM KHO 88
PHỤ LỤC 90

[VII]
DANH MỤC TỪ VIẾT TẮT

GIS: Geographic Information System (H th
ESRI: Economic and Social Research Institute (Viu h th
ng).
 H 

 cao s).
CPU: Central Processing Uint (B x 
Thunh ).
[VIII]
DANH MỤC BẢNG BIỂU

Bt s a k- cute v th  21
Bi gian ca 3 thu-AND, Boolean-AND  1,
Boolean-AND - 2 26
Bc 45
Bng 3.2.1.2: S c 46
Bng 3.4: Thi gian ca 2 n t  62
[IX]
DANH MỤC HÌNH ẢNH

t raster 1
 a DEM 1
 song song 5
i ki 7
  i b nh  11
   nh 12
  i b nh  13
 ng 8 s. 16
 c hin t 18
ng vi 3 b x  18
ng 3-cube 20
  22
 thu 35
i DEM 41
m l a DEM 42

 42
 Raster to Ascii trong ArcToolbox 43
 x  44
 to DEM t b  49
  50
 a x trong ArcGis 51
u sut CPU khi thc hin t 62
u sut CPU khi thc hi 63
 ling con 64
n d liu sang dng raster 72
 d liu th nghin my 74
a phn my theo D8 75
  cao 76
[IX]
n file text 77
nh 4.3.3: File text hin th  78
c t\ 78
 79
t qu 79
ng d 80
 80
t qu  81
n file text sang dng raster 81
 dng chn sang dng raster 82
n th  82
n file raster hin th  83
a vi  th  x  90
m ngu 91
n nht gia t th con chm
ngu th con ch. 91

n nh 92
[1]
PHẦN 1. MỞ ĐẦU

1.1. Tính cấp thiết của đề tài
 cao s (vit tt ngung trong
ng dc s dng r mt bao gm
nh t ng ca khu v  ho thng
c t ng. Tt c nhn ving
y, y
c bit quan tr u khicng carbon, ch
try  b mt  c.

u khoa hn v d li
ln t v tinh hot qu ti th  cho ta kt
qu c c th ho ng.
Mn t   n
i  th ti
n s dng thu t 
ng kt qu t.
.1t raster
1.2: C a DEM
[2]
Vi nh xu
 y cho h thng t mt DEM l 
c  u v x trong GIS ng ng dng
 thu mt.
1.2. Mục tiêu nghiên cứu của đề tài
Thit k ng mt ng dng s dng thu 
c, ng dc l  

ng Visual Studio. M th c 
- u v x t ng 
- L  ng Visual Studio.
- u v y.
- t mt thu a

1.3. Đối tƣợng và phạm vi nghiên cứu
1.3.1. Đối tƣợng nghiên cứu
 d p to
 
1.3.2. Phạm vi nghiên cứu
- c bao gi r th c. C th 
 C th t s n ci s v ng
y.
  thi d liu.
 Th li
 Kh
- Lm: Coding  shapre, x  D8, s dn
 .NET Framwork 4.0.
[3]
PHẦN 2. TỔNG QUAN VỀ THUẬT TOÁN VÀ
TÍNH TOÁN SONG SONG

2.1. Đại cƣơng về tính toán song song
2.1.1. Một số khái niệm và thuật ngữ
- Tính toán song song hay xử lý song song (Parallel Computing/Parallel
Processing):  n mn vic nhi
d lic x ng thi bi mt hay nhiu b x  gii quyt m

- Siêu máy tính:  

n. Tt c 
i. Loi th nht  
vi x  c thit kt vi rt nhiu b vi x  x a phi. Loi
th hai  n thng (supercomputer)   vi x 
t ca mi b x i cc cao.
- Song song về dữ liệu (data parallelism):  s dng nhi x 
thc hig m d liu.
- Song song điều khiển (control parallelism):  
 d ling thi.
- Dây chuyền (Pipelining): u chng ni tip
nhau, mi chc thc hin bi mt b ph  u ra ca b
pha b phn tip theo.
- Tăng tốc (speedup): c ca thu s gia thi gian
thc hing xu nht ca thut tn t tt nhi gian
thc thin cng cng via thu






[4]

Định lý Amdahl. Gi   l n t ng s 
c t ca mi  b vi x 
.


  


- Hiệu quả (Efficiency) ca thung c / S
b x 
- Giá (cost) ca m
 S ng b x 
Tth  n (vi gi thit rng vic thc hin
mn m thi gian).
2.1.2. Các mức độ song song (Level of parallelism)
Vic thc hi    u m 
Chng hn, n nc lp,
 giao vic thc hin 10 vic hic
 song song cao nh thc hic li
ta gi m m 
c hin mi m tng hiu qu thc hii tip
t   a. Chia vic thc hin m       n
 thc hin m ht
qu ct qu cc thc hin bi mt
c thc hin song song. Ta gi mc
  m(subprogram level). Trong mi
nh (statement) cn
thc hin thc hi m
ng mi bao g
nh -operation). Chng hng ni dung hai biv
c  thc hiu:
[5]
1. Load A to accumulator
2. Add B to accumulator
3. Store the content of the accumulator to variable C
N  thc hi m song song
 (micro-th  song
2.1.2

Sequential
Processing






Program Level
Parallelism






Subprogram
Level Parallelism






Statement
Level
Parallelism







Operational
Level
Parallelism






Micro
Operational
Level Parallelism
2.1.2.  song song
M  hin
gi gi  sau.
Ví dụ: :
For i:=1 to n do
x[i]:= x[i]+1;
Thi gian ca thc hin tun t: O(n)
 thc hi
n b x 
1
, P
2

n
. B x 

i
thc hi x c hin
ng thi gian ca thc hin song song: O(1). Thu 

For i:=1 to n do in parallel
x[i]:= x[i]+1
end Parallel
[6]
M  nh.
 
S = 0;
for i = 1 to n do
s = s + x[i];
(Thuc hin ving s = x[1]+ 
D th  
 c thui
gian O(log n).
M c thc hi. Chng hn
lnh:
Y = A(i) + B(j) + C(k)
t qu 
ct gi  thc hi x 
c g song song tha
2.1.3. Phân loại các kiến trúc song song
Mt trong nh   c nhc t  a Flynn  1972. Michael
        n loi d    i lnh
 liu (data):
[7]

















i ki

- SISD    
tun t i mi thm ch mt lc thc hin.
- MIMD        u
l ng thi x u d lit
thm.
- SIMD (Single Instruction stream, Multiple Data stream)  
x t lc thc hing th li
i din Machine CM-200 ca IBM.
- MISD (Multiple Instruction stream, Single Data stream). Ki   
t d liu.
- HYBRID    m ca c ba lo Lo
dc bi dng nhng tin b v mt m trong
thit k.
MultiProcessor

MultiComputer
Multi - MultiProcessor
Data flow machine
Array Processor
SISD
MIMD
SIMD
MISD
HYBRID
(Kiến trúc lại)

Công dụng
đặc biệt
Pipelined vector Processor
Systolic Array
MIMD-MISD machine
MIMD-SIMD machine
Artificial neural network
Fuzzy logic processor
PHÂN
LOẠI
CÁC
KIẾN
TRÚC
SONG
SONG

[8]
2.1.4. Mô hình SIMD (PRAM)
      c g     

Machine  p b nh ng
x  b nh chung. p nh:
- EREW (Excl    c quy  c quyn ghi.
 x c hong tht  nh.
- CREW ng thc quy
 l ng thi, ng th
nh.
- ERCW c quyng th
b x  ng thng thi t m
nh.
- CRCW (Concurent Read Concurng th 
th ng th.
Viu b x ng thc m t
k cng thc t ng thi thc hin
vic ghi vt v n gii quy  i
quyn:
- ECR (Equality Conflict Resolution): Ch thc hin ghi nu tt c  x 
 
- i quyi b x 
mt ch s   x  th t t s c
ghi.
- i quy
u b x t v  t
trong s c hic vic ghi.
Sc mnh cn theo th t u
nht, rt vm sau. t tn mc
  t. Ct mc x trong t thc hi
[9]
Vn t, vin thi gian c .
i  b x c thc hic sau:

1. Qu  x 
2. Tp  phi b x t phn.
G x 







 
b x c hi
 




 








 

















n   thi gian.
 phn, mi ph m x 
n ti gian thc hin s 
Tng c phc t  
u s d
phi thc hic qu x  c x t
 phc tgim xung ch . Mu x xut
hin nhiu ln trong tp, s u b x a kt quu
 thc hi
M u nh ch to ph bin hin nay l 
 ti
vic d 
2.1.5. Dùng công nghệ EREW mô phỏng các kiến trúc CRCW, CREW
ng vi ng thi:  c ng thi  
ph d c x
 y ri thi gian thc hi.
[10]

ng ving thi: Gi s nh tr
x   cng
thc ti
1. Kim tra xem   c
2. Ndng.
 2 ch tn thi gian c hng sm tra th nh
dii 

 th 
 l











 l





















Ta thy sau  m tra kc ki
hi thi gian c   i tr cho ving.
2.1.6. Họ máy MIND
 c g
t kin t l
Li:
- H  i b nh 
- H   nh
- H  i b nh 
[11]
2.1.6.1. Hệ đa xử lý với bộ nhớ phân tán (Multi processor system with Distributed
Memory)
   song song gm nhi   t n  ng
2.1.6.1  kia h thng. Mm
ca h thng:
-  x  c quyn truy c cc b c
-  t gi   x  c thc hi    Chuy  
(message passing)

- H th  x  x
 ng truyn mng tr i.
- K thut l   c t  ng v   ng lp 

-  c g i m    NORMA (no remote memory access
  xa). Ta thy mi b x 
t  cc b  c quyn truy
c  xa (remi v x 
cc quyn truy c

 H  i b nh 

Processor
(B x 
Processor
(B x 
. . .
Local memory
(B nh cc
b)
Local memory
(B nh cc
b)
Interconnection network
(Mt)
send()
receive(
)
[12]
2.1.6.2. Hệ đa xử lý dùng chung bộ nhớ (Multi processor system with Shared

Memory)
n vi nhiu b x 
ch  i xng SMP (symmetric multi processing). Kia h thc
  Mt s m ca h thng:
-  x  truy nh  
- c gi x c thc hi 
s b x 

mun gi d liu cho 

, d li 
a ch cho 

 

s c ta ch  ly d liu v.
- a h thi nh, ch c  x 
- K thut l 
- c gi m UMA (uniform memory access model:
qui ch   t da ch
thng nht).

 H   nh

Ta s thy h  b  
u da ch.
Processor
(Bộ xử lý)
Processor
(Bộ xử lý)

. . .
Interconnection network
(Mạng liên kết)
Interconnection network
(Mạng liên kết)
[13]
2.1.6.3. Hệ đa xử lý với bộ nhớ dùng chung phân tán (Multi processor system with
distributed shared memory)







Hình 1.5. Hệ đa xử lý với bộ nhớ dùng chung phân tích

: H  i b nh 
- V mt vi b x  cc b ca 
- S truy cp t c thc hin nh  truy nhp
mng. Nh vy, tt c  cc b c gom la ch
 logic duy nh x  truy nhp ma
ch  chung 
-  c g       NUMA (non uniform memory access
model: qua ch  chung theo nhiu da ch
thy mi b x  cc b (local memory) c
truy nhh  xa  cc b c
x  c qu  a ch 
2.1.7. Ngôn ngữ mô tả thuật toán song song
c h ng: Variable = expression.

  kt qu s c ct gi nh
ng:
if cond then
s
1

s
2

Processor
(Bộ xử lý)
Processor
(Bộ xử lý)
. . .
Local memory
(Bộ nhớ cục bộ)
Local memory
(Bộ nhớ cục bộ)
Interconnection network
(Mạng liên kết)
[14]

Else

1


2



Endif
u kin logic. Nu ki
1
, s
2

c thc hi
1

2
c thc hin.
d:
For variable = s to e step h
s
1

s
2


end for
nh s
1
, s
2
c thc hin v ca variable l + h,
s + n khi s + k.h > e.
 dng c i dng sau:
While cond do
s

1

s
2


end while
nh s
1
, s
2
c lp li chu ki
Vic thc hi nh lnh For-in-
th vit theo hai c
C
For variable = 1 to n do in parallel
s
1

s
2


End parallel

×