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
Sc hin: TRN
: H THNG
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
TRN
ng dn:
NH
[II]
LỜI CẢM ƠN
c hi c s ng d
ca thng d
ng di h
H i li ci:
- ThS.Cnhng dng H th
S Khoa hc ng dn trc ti
- Thn Kim Li, ch nhim B
ng dng - ni h
- KS. - u Bin
i h
- KS. Nguy - Ging
i h
- c bit n ba m n
, tu kin thun
lc ti gian thc hi ,
ng thi li cc ti S Khoa H Ngh
H u kic t, cung cp s
lic hin t
.
Trần Công Huấn
B
ng &
i h
[III]
TÓM TẮT
u v x ng ng
d mc thc hi
i thut ng dng H Th S
Khoa h H i gian thc hin t n
31/5/2014. G
- u v , h
- u v
- u v thu y.
- u v
- u v thut
ng C sharp.
- u v liu ca DEM.
- u v n ArcEngine cn
h tr hin th, cp nh lin
dng d liu.
t qu c:
-
c mt.
- ng d tt qu nhanh nh
th nhm tit kim thi s dng.
- chuyn d liu dng file text sang dn th
d ling dng.
[IV]
MỤC LỤC
LI C II
T III
MC LC IV
DANH MC T VIT TT VII
DANH MC BNG BIU VIII
DANH MNH IX
PHN 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
PHN 2. TNG 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
PHT 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
PHN 5. KT LUN NGH 87
5.1. Kết luận 87
5.2. Kiến nghị 87
PHU THAM KHO 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 (Viu h th
ng).
H
cao s).
CPU: Central Processing Uint (B x
Thunh ).
[VIII]
DANH MỤC BẢNG BIỂU
Bt s a k- cute v th 21
Bi gian ca 3 thu-AND, Boolean-AND 1,
Boolean-AND - 2 26
Bc 45
Bng 3.2.1.2: S c 46
Bng 3.4: Thi gian ca 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 hin t 18
ng vi 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
to DEM t b 49
50
a x trong ArcGis 51
u sut CPU khi thc hin t 62
u sut CPU khi thc hi 63
ling con 64
n d liu sang dng raster 72
d liu th nghin my 74
a phn my theo D8 75
cao 76
[IX]
n file text 77
nh 4.3.3: File text hin th 78
c t\ 78
79
t qu 79
ng d 80
80
t qu 81
n file text sang dng raster 81
dng chn sang dng raster 82
n th 82
n file raster hin th 83
a vi th x 90
m ngu 91
n nht gia t th con chm
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 (vit tt ngung trong
ng dc s dng r mt bao gm
nh t ng ca khu v ho thng
c t ng. Tt c nhn ving
y, y
c bit quan tr u khicng carbon, ch
try b mt c.
u khoa hn v d li
ln t v tinh hot qu ti th cho ta kt
qu c c th ho ng.
Mn t n
i th ti
n s dng thu t
ng kt qu t.
.1t raster
1.2: C a DEM
[2]
Vi nh xu
y cho h thng t mt DEM l
c u v x trong GIS ng ng dng
thu mt.
1.2. Mục tiêu nghiên cứu của đề tài
Thit k ng mt ng dng s dng thu
c, ng dc l
ng Visual Studio. M th c
- u v x t ng
- L ng Visual Studio.
- u v y.
- t mt 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 to
1.3.2. Phạm vi nghiên cứu
- c bao gi r th c. C th
C th t s n ci s v ng
y.
thi d liu.
Th li
Kh
- Lm: Coding shapre, x D8, s dn
.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 mn vic nhi
d lic x ng thi bi mt hay nhiu b x gii quyt m
- Siêu máy tính:
n. Tt c
i. Loi th nht
vi x c thit kt vi rt nhiu b vi x x a phi. Loi
th hai n thng (supercomputer) vi x
t ca mi b x i cc cao.
- Song song về dữ liệu (data parallelism): s dng nhi x
thc hig m d liu.
- Song song điều khiển (control parallelism):
d ling thi.
- Dây chuyền (Pipelining): u chng ni tip
nhau, mi chc thc hin bi mt b ph u ra ca b
pha b phn tip theo.
- Tăng tốc (speedup): c ca thu s gia thi gian
thc hing xu nht ca thut tn t tt nhi gian
thc thin cng cng via thu
[4]
Định lý Amdahl. Gi l n t ng s
c t ca mi b vi x
.
- Hiệu quả (Efficiency) ca thung c / S
b x
- Giá (cost) ca m
S ng b x
Tth n (vi gi thit rng vic thc hin
mn m thi gian).
2.1.2. Các mức độ song song (Level of parallelism)
Vic thc hi u m
Chng hn, n nc lp,
giao vic thc hin 10 vic hic
song song cao nh thc hic li
ta gi m m
c hin mi m tng hiu qu thc hii tip
t a. Chia vic thc hin m n
thc hin m ht
qu ct qu cc thc hin bi mt
c thc hin song song. Ta gi mc
m(subprogram level). Trong mi
nh (statement) cn
thc hin thc hi m
ng mi bao g
nh -operation). Chng hng ni dung hai biv
c thc hiu:
[5]
1. Load A to accumulator
2. Add B to accumulator
3. Store the content of the accumulator to variable C
N thc 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 hin
gi gi sau.
Ví dụ: :
For i:=1 to n do
x[i]:= x[i]+1;
Thi gian ca thc hin tun t: O(n)
thc hi
n b x
1
, P
2
n
. B x
i
thc hi x c hin
ng thi gian ca thc hin 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];
(Thuc hin ving s = x[1]+
D th
c thui
gian O(log n).
M c thc hi. Chng hn
lnh:
Y = A(i) + B(j) + C(k)
t qu
ct gi thc hi x
c g song song tha
2.1.3. Phân loại các kiến trúc song song
Mt trong nh c nhc t a Flynn 1972. Michael
n loi d i lnh
liu (data):
[7]
i ki
- SISD
tun t i mi thm ch mt lc thc hin.
- MIMD u
l ng thi x u d lit
thm.
- SIMD (Single Instruction stream, Multiple Data stream)
x t lc thc hing th li
i din Machine CM-200 ca IBM.
- MISD (Multiple Instruction stream, Single Data stream). Ki
t d liu.
- HYBRID m ca c ba lo Lo
dc bi dng nhng tin b v mt m trong
thit 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 quyn ghi.
x c hong tht nh.
- CREW ng thc quy
l ng thi, ng th
nh.
- ERCW c quyng th
b x ng thng thi t m
nh.
- CRCW (Concurent Read Concurng th
th ng th.
Viu b x ng thc m t
k cng thc t ng thi thc hin
vic ghi vt v n gii quy i
quyn:
- ECR (Equality Conflict Resolution): Ch thc hin ghi nu tt c x
- i quyi b x
mt ch s x th t t s c
ghi.
- i quy
u b x t v t
trong s c hic vic ghi.
Sc mnh cn theo th t u
nht, rt vm sau. t tn mc
t. Ct mc x trong t thc hi
[9]
Vn t, vin thi gian c .
i b x c thc hic sau:
1. Qu x
2. Tp phi b x t phn.
G x
b x c hi
n thi gian.
phn, mi ph m x
n ti gian thc hin s
Tng c phc t
u s d
phi thc hic qu x c x t
phc tgim xung ch . Mu x xut
hin nhiu ln trong tp, s u b x a kt quu
thc hi
M u nh ch to ph bin hin nay l
ti
vic d
2.1.5. Dùng công nghệ EREW mô phỏng các kiến trúc CRCW, CREW
ng vi ng thi: c ng thi
ph d c x
y ri thi gian thc hi.
[10]
ng ving thi: Gi s nh tr
x cng
thc ti
1. Kim tra xem c
2. Ndng.
2 ch tn thi gian c hng sm tra th nh
dii
th
l
l
Ta thy sau m tra kc ki
hi thi gian c i tr cho ving.
2.1.6. Họ máy MIND
c g
t kin t l
Li:
- 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 gm nhi t n ng
2.1.6.1 kia h thng. Mm
ca h thng:
- x c quyn truy c cc b c
- t gi x c thc hi Chuy
(message passing)
- H th x x
ng truyn mng tr i.
- K thut l c t ng v ng lp
- c g i m NORMA (no remote memory access
xa). Ta thy mi b x
t cc b c quyn truy
c xa (remi v x
cc quyn truy c
H i b nh
Processor
(B x
Processor
(B x
. . .
Local memory
(B nh cc
b)
Local memory
(B nh cc
b)
Interconnection network
(Mt)
send()
receive(
)
[12]
2.1.6.2. Hệ đa xử lý dùng chung bộ nhớ (Multi processor system with Shared
Memory)
n vi nhiu b x
ch i xng SMP (symmetric multi processing). Kia h thc
Mt s m ca h thng:
- x truy nh
- c gi x c thc hi
s b x
mun gi d liu cho
, d li
a ch cho
s c ta ch ly d liu v.
- a h thi nh, ch c x
- K thut l
- c gi m UMA (uniform memory access model:
qui ch t da ch
thng nht).
H nh
Ta s thy h b
u da 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 mt vi b x cc b ca
- S truy cp t c thc hin nh truy nhp
mng. Nh vy, tt c cc b c gom la ch
logic duy nh x truy nhp ma
ch chung
- c g NUMA (non uniform memory access
model: qua ch chung theo nhiu da ch
thy mi b x cc b (local memory) c
truy nhh xa cc 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.
kt qu s c ct 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 kin logic. Nu ki
1
, s
2
c thc hi
1
2
c thc hin.
d:
For variable = s to e step h
s
1
s
2
end for
nh s
1
, s
2
c thc hin v ca variable l + h,
s + n khi s + k.h > e.
dng c i dng sau:
While cond do
s
1
s
2
end while
nh s
1
, s
2
c lp li chu ki
Vic thc hi nh lnh For-in-
th vit theo hai c
C
For variable = 1 to n do in parallel
s
1
s
2
End parallel