Lập trình song song

Một phần của tài liệu (LUẬN án TIẾN sĩ) giải hệ phương trình kích thước lớn và điều kiện xấu trên bó máy tính 62 46 35 01 (Trang 34)

Chương 1 Kiến thức chuẩn bị

1.1. Nguyên lý tính toán song song

1.1.2. Lập trình song song

Dựa trên các kiến trúc cơ bản của máy tính song song ta có các mơ hình lập trình song song tương ứng

• Mơ hình lập trình chia sẻ bộ nhớ dựa vào luồng.

• Mơ hình lập trình truyền thơng báo.

Lập trình với kiến trúc máy tính bộ nhớ chia sẻ

Với các hệ thống chia sẻ bộ nhớ mơ hình lập trình để phát triển ứng dụng dựa trên luồng với hai thư viện chuẩn là POSIX, OpenMP. Tuy nhiên thư viện POSIX (Pthread) ít hộ trợ thực hiện các thao tác song song dữ liệu thường hay

xảy ra trong các tính tốn khoa học. Vì vậy OpenMP là chuẩn thường được sử dụng hơn đối với các hệ thống chia sẻ bộ nhớ. Q trình song song hóa chương trình với OpenMP được thực hiện bằng cách chèn vào trong mã nguồn các định hướng biên dịch (directive hoặc pragmas). Các định hướng biên dịch được sử dụng để xác định các đoạn chương trình được thực hiện song song. Số lượng các luồng sử dụng được xác định thơng qua các biến mơi trường. Do đó, khơng giống như Pthread, người lập trình khơng cần quản lý thời gian thực hiện của các luồng. Lập trình viên khơng cần quan tâm đến phân hoạch khối lượng tính tốn cũng như ánh xạ các tác vụ cho các luồng. Lập trình viên chỉ cần xác định định hướng biên dịch để thể hiện một vùng song song, ví dụ #pragma omp parallel đối với ngơn ngữ lập trình C/C++ và cặp !$omp parallel, !$omp end parallel đối với ngơn ngữ lập trình Fortran. Ngồi ra OpenMP trừu tượng cách thức phân chia khối lượng tính tốn cho các tác vụ cũng như việc gán các tác vụ cho các luồng tương ứng. OpenMP cung cấp một số cấu trúc hỗ trợ cho quá trình đồng bộ hóa ẩn mà lập trình viên chỉ cần xác định nơi đồng bộ hóa xảy ra.

Lập trình với kiến trúc máy tính bộ nhớ phân tán

Với các hệ thống DM-MIMD, mơ hình lập trình truyền thơng điệp (Message Passing) dựa trên tiến trình với hai thư viện tiêu biểu: PVM (Parallel Virtual Machine) và MPI (Message Passing Interface) thường được sử dụng để phát triển các ứng dụng song song. Mơ hình lập trình truyền thơng điệp cịn được nghiên cứu áp dụng cho các hệ thống có bộ nhớ dùng chung (ví dụ như các hệ thống Nec SX-6, Cray, SV1ex). Hiện nay, PVM đã khơng cịn được tập trung phát triển. Trong khi đó, MPI ngày càng nhận được sự chú ý của các nhà cung cấp với các phiên bản LAM/MPI, MPICH. Trong tương lai không xa, phiên bản thống nhất OpenMPI của cộng đồng mã nguồn mở (MPI Forum) được xem là có nhiều triển vọng.

Trong mơ hình truyền thơng điệp với thư viện MPI, các tiến trình được quản lý tự động ẩn, chúng ta khơng cần tạo, lập lịch, hủy bỏ các tiến trình. Thay cho các việc này chúng ta chỉ cần sử dụng câu lệnh mpirun với tham số là số tiến trình chúng ta cần tạo và tùy chọn ánh xạ các tiến trình lên trên các bộ xử lý. Sau đó dựa trên các thông tin này, cơ sở hạ tầng thực thi (runtime infrastructure) sẽ thực hiện việc quản lý các tiến trình.

Phân hoạch khối lượng tính tốn và ánh xạ thành các tác vụ phải được thực hiện bởi lập trình viên. Lập trình viên phải quản lý các tác vụ được tính tốn bởi mỗi tiến trình. Ví dụ, với một mảng dữ liệu 2 chiều cho trước, chúng ta sử

dụng chỉ số định danh của tiến trình để xác định vùng dữ liệu mà tiến trình này sẽ thực hiện tính tốn. Việc trao đổi dữ liệu giữa các tiến trình thơng qua cơ chế truyền thơng điệp trong đó dữ liệu được chia sẻ bằng cách mỗi tiến trình gửi thơng điệp dữ liệu tới các tiến trình khác. Có hai nhóm các thao tác truyền thơng điệp trong MPI đó là: truyền thơng điểm tới điểm và truyền thơng theo nhóm. Các thao tác truyền thơng điểm tới điểm như MPI_Send/MPI_Recv thực hiện trên từng cặp tiến trình trong khi các thao tác truyền thơng theo nhóm như MPI_Bcast thực hiện trên nhiều tiến trình hoặc MPI_Barrier được sử dụng để đồng bộ các tiến trình, đảm bảo dữ liệu tồn cục khơng bị phân tán.

1.1.3 Đánh giá hiệu quả của tính tốn song song

Để đánh giá hiệu quả của tính tốn song song, trong thực tế ta quan tâm đến một số thông số sau

Hệ số tăng tốc Sp: Ký hiệu T1 và Tp lần lượt là thời gian thực hiện cùng một chương trình lần lượt trên một bộ xử lý và pbộ xử lý tương ứng. Khi đó tốc độ tăng tốc Sp :=T1/Tp (Đơi khi T1 được định nghĩa như thời gian tốt nhất để giải bài toán trên một bộ xử lý với các thuật toán khác nhau). Hệ số tăng tốc phản ánh với cùng một bài toán, thời gian xử lý bằng chế độ song song nhanh gấp bao nhiêu lần thời gian xử lý bằng chế độ tuần tự.

Hiệu năng tính tốn song songEp=Sp/p: Thơng số này được đánh giá thông qua độ đo trực tiếp và phản ánh hiệu suất sử dụng của mỗi bộ xử lý trong mơ hình tính tốn song song. Trong trường hợp lý tưởngTp =T1/p. Nhưng trong thực tế chúng ta không hy vọng đạt được tốc độ lý tưởng do vậySp≤ p.

Ngoài cách đo theo thực tế, Sp cịn có thể được tính theo lý thuyết dựa trên quy tắc Amdahl như sau: Cho Fs và Fp tương ứng là tỷ lệ thời gian thực hiện phần chương trình tuần tự và song song của một chương trình. Ta cóFp+Fs=1

và thời gian thực hiện chương trình song song Tp trên p bộ xử lý là tổng thời gian thực hiện tuần tựT1Fs và phần song songT1Fp/p

Tp=T1(Fs+Fp/p).

Hệ số tăng tốc Sp=1/(Fs+Fp/p)với ý nghĩa sự tăng tốc của một chương trình đa xử lý trong tính tốn song song phụ thuộc vào tỷ lệ phần được song song hóa và được giới hạn bởi 1/(Fs)thời gian cần thiết để thực hiện phần tính tốn tuần tự của chương trình.

Trong trường hợp xét thêm thời gian truyền thông với giả thiết rằng tổng thời gian truyền thơng của chương trình trên p bộ xử lý là Tc cố định. Khi đó thời gian thực hiện chương trình song songTp trên pbộ xử lý là:

Tp =T1(Fs+Fp/p) +Tc.

Chúng ta giả thiết rằng chương trình được song song hoàn toàn với nghĩa Fp=1. Ta nhận được

Sp= T1

T1/p+Tc.

Để Sp gần đạt tới p chúng ta có TcT1/phay pT1/Tc. Điều này có nghĩa số

lượng bộ xử lý được sử dụng không nên vượt quá tỷ số giữa thời gian thực hiện tuần tự với tổng thời gian truyền thông.

Quy tắc Gustafson cũng có thể được dùng để tính Sp, theo đó chương trình được chạy trên pbộ xử lý thì hệ số tăng tốc Sp =p−(p−1)Fs.

Từ các thông sốSp vàEp ta nhận thấy hiệu suất của việc tính tốn song song chỉ cao khi tỷ lệ xử lý bài toán thành phần, tức là phần song song được, cao đáng kể so với phần được xử lý tuần tự cũng như tổng thời gian truyền thơng.

1.2 Bài tốn kích thước lớn, điều kiện xấu và bàitốn đặt khơng chỉnh tốn đặt khơng chỉnh

1.2.1 Bài tốn kích thước lớn

Nhiều bài tốn của khoa học, cơng nghệ, kinh tế, sinh thái, vv... đưa về hệ phương trình vi phân thường, phương trình đạo hàm riêng và phương trình tích phân. Bằng phương pháp rời rạc hóa, trong đó tích phân được thay bởi các tổng hữu hạn nhờ cơng thức cầu phương, toán tử vi phân được thay bằng các toán tử sai phân, chúng ta quy bài tốn giải phương trình trong khơng gian hàm về giải hệ phương trình đại số tuyến tính hoặc phi tuyến. Kích thước của các hệ phương trình này thường rất lớn do ta sử dụng các bước lưới nhỏ để tăng độ chính xác của các công thức cầu phương hoặc của các lược đồ sai phân. Sau đây là một số ví dụ cụ thể.

Ảnh ba chiều xuất hiện trong một số ứng dụng của khoa học và cơng nghệ, như sử dụng kính hiển vi tiêu cự chập (confocal microscopy), xử lý ảnh y-sinh học (biomedical imaging), vv... Hiện tượng một ảnh bị mờ trong quá trình xử lý được mơ tả bởi phương trình tích chập:

Z

R3

h(ξ−ξ0,η−η0,γ−γ0)f(ξ0,η0,γ0)dξ0dη0dγ0=g(ξ,η,γ), (1.1) trong đó f biểu diễn ảnh rõ, cịn gbiểu diễn ảnh bị làm mờ. Nhân hlà một hàm trơn, được gọi là hàm trải điểm (point-spread funtion). Bài tốn tìm hàm f biết hvà g bằng cách giải phương trình tích chập (1.1) là bài tốn đặt khơng chỉnh, vì nghiệm f nếu tồn tại cũng không phụ thuộc liên tục vào dữ liệu g.

Giả sử các hàm f,g triệt tiêu ngồi hình hộp đơn vị Ω⊂R3. Sử dụng lưới đều với bước1/m để rời rạc hóa phương trình (1.1) ta thu được hệ phương trình sau:

Ax=b, A∈Rm3×m3, x,b∈Rm3, (1.2)

trong đó các véctơ x và b là rời rạc hóa của các hàm f và g tương ứng và chứa cấp độ xám của các điểm ảnh được xếp theo thứ tự từ điển. Ma trận Alà rời rạc hóa của tốn tử tích phân trong (1.1), xác định bởi hàm trải điểmhvà công thức cầu phương để tính gần đúng tích phân. Ma trận A có nhiều giá trị kỳ dị gần không với những thang bậc khác nhau, bởi vậy nó quá điều kiện xấu (severely ill-conditioned) và có thể suy biến. Mặt khác trong thực tế, vế phảib chỉ được cho với sai số, tức là thay vì chobta chỉ biết véctơb˜ :=b+d, trong đódlà véctơ nhiễu với các thành phần chứa sai số đo đạc và sai số truyền ảnh.

Hệ (1.2) thơng thường là một hệ kích thước rất lớn. Ví dụ với ảnh xám 3 chiều cóm=100, cịn cấp độ xám của ảnh là một số nguyên nằm trong khoảng

[0,255] thì ma trận của hệ (1.2) đã có kích thước106×106.

Ví dụ 2.Giải gần đúng hệ phương trình tích phân bằng phương pháp trùng khớp. Xét hệ phương trình tích phân loại 1

b

Z

a

Ki(t,s)x(s)ds= fi(t) i=1,2, . . . ,N, (1.3)

trong đóKi(t,s)và fi(t)tương ứng là các nhân và hàm liên tục cho trước. Xét cơng thức cầu phương

b R a h(t)dt= M ∑ l=0 γlh(tl) +r,trong đóa≤t0<t1< . . . < tM ≤blà các điểm lưới,γ0, . . . ,γM là các trọng số và rlà sai số của công thức cầu phương. Đặtxil:=xi(tl), fij:= fi(tj),áp dụng phương pháp trùng khớp (collocation

method) cho hệ (1.3) và sử dụng cơng thức cầu phương nói trên chúng ta nhận được hệN(M+1)phương trình tuyến tính với M+1ẩn.

M

l=0

γlKi(tj,tl)xil = fij j =0,1, . . . ,M,i=1,2, . . . ,N, (1.4) NếuM lớn thì hệ phương trình (1.4) thu được có kích thước lớn và q xác định.

Ví dụ 3. Bài tốn biên cho phương trình vi phân thường và phương trình đạo hàm riêng.

Để đơn giản chúng ta xét bài tốn biên hai điểm cho phương trình vi phân thường

f(t,x,x0,x00) =0, t0<t <T, g(x(t0),x0(t0)) =0, h(x(T),x0(T)) =0.

Thay đạo hàm cấp 1 và cấp 2 bằng các tỷ sai phân tương ứng, ta đưa bài toán biên hai điểm trên về hệ 3 đường chéo các phương trình phi tuyến có dạng

               F1(x1,x2) =y1, Fi(xi−1,xi,xi+1) =yi, i=2, . . . ,N−1 FN(xN−1,xN) =yN. (1.5) Hệ (1.5) là thưa và kích thước lớn.

Tương tự như vậy, việc giải bài toán biên hai điểm bằng phương pháp bắn bội (multiple shooting method) dẫn đến hệ phương trình phi tuyến kích thước lớn. Vấn đề này sẽ được trình bày kĩ hơn khi đề cập đến bài toán điều kiện xấu. Trong mục 2.4 chúng ta sẽ đưa bài tốn biên cho phương trình đạo hàm riêng- đại số tuyến tính về hai hệ phương trình kích thước lớn.

Ví dụ 4.Mơ hình thương mại quốc tế [57]

Giả sử có mnướcCi, i=1, . . . ,mbuôn bán với nhau. Mỗi nướcCi sản xuất ni mặt hàng quốc nội trong nhóm hàng Gi chỉ để tiêu thụ trong nước. Ngồi ra cón0 mặt hàng quốc tế trong nhóm hàngG0được các nước cùng sản xuất và tiêu thụ. Gọi n= ∑mi=0ni là số hàng hóa tiêu thụ trên thị trường nội địa và quốc tế. Mỗi nước đều có nhu cầu sản xuất và tiêu thụ cho các mặt hàng quốc nội, quốc tế của mình. Nhu cầu của thị trường đối với các mặt hàng quốc nội trong nhóm Gi bằng tổng các nhu cầu trong mỗi nướcCi, còn nhu cầu đối với hàng quốc tế

hàng. Khi đó ta sẽ biểu diễn véctơ giáx= (x0,x1, . . . ,xm),vớixi∈Rni

+ là các véctơ giá của các mặt hàng trong nhómGi.

ĐặtF:Rn+\{0} →Rnlà tồn thể lượng cầu vượt cung, thìF(.) = (F0(.), . . . ,Fm(.))

còn Fi(x) =Fi(x0,xi), i=1, . . . ,m là toàn thể lượng cầu vượt cung của nước Ci đối với véctơ giá x. Lưu ý rằng F0(x) =F0(x0, . . . ,xm) vì nhóm hàng quốc tế G0 bao gồm tất cả hàng quốc tế của các nước.

Bài toán cân bằng là tìm véctơ giá x∗= (x∗0, . . . ,x∗m)∈Rn để thị trường sạch, nghĩa làF(x∗) =0.

Như vậy ta thu được hệ phương trình phi tuyến kích thước lớn        F0(x0, . . . ,xm) =0, Fi(x0,xi) =0, i=1, . . . ,m. (1.6)

1.2.2 Bài tốn đặt khơng chỉnh và bài toán điều kiện xấu

Từ giữa thế kỷ 20 đến nay, các thuật ngữ "bài tốn đặt khơng chỉnh" và "bài toán điều kiện xấu" đã trở nên quen thuộc và được thường xuyên nhắc đến trong nhiều lĩnh vực của khoa học, công nghệ và kinh tế. Nhiều bài tốn khơng chỉnh có nguồn gốc vật lý (cơ học lượng tử, âm học, vật lý thiên văn, điện động học, vv...), địa vật lý (thăm dò địa chấn, thăm dò trọng lực, dò siêu âm, vv..) y học (chụp quang phổ, chụp cắt lớp máy tính, vv...), sinh thái học (quản lý chất lượng khơng khí và nước, giám sát khơng gian, vv...), kinh tế (tốn tài chính, điều khiển tối ưu, vv...), vv... đã được tập trung nghiên cứu. Ngay trong tốn học, một số vấn đề của đại số tính tốn, phương trình vi phân thường, phương trình đạo hàm riêng, phương trình tích phân, giải tích hàm, vv... cũng dẫn đến những bài tốn đặt khơng chỉnh. Đặc điểm của những bài tốn này là lời giải có thể khơng tồn tại hoặc không duy nhất, hoặc lời giải không phụ thuộc liên tục vào dữ liệu của bài toán. Những bài tốn đặt khơng chỉnh như vậy rất khó giải trong thực tế vì những sai số nhỏ của dữ liệu và sai số trong q trình tính tốn trên máy tính (sai số làm trịn, sai số tính tốn với dấu phẩy động, vv...) dẫn đến những sai số lớn của nghiệm gần đúng, khiến nó khác xa nghiệm đúng.

Xét phương trình tốn tử

trong đó F là ánh xạ từ khơng gian metric (X,d) vào khơng gian metric (Y,ρ), cịny∈Y là dữ liệu đã cho.

Bài toán (1.7) được gọi là đặt chỉnh theo nghĩa J. Hadamard [90], nếu nó giải được duy nhất với mọi vế phảiyvà nghiệm phụ thuộc liên tục vàoy.

Bài toán (1.7) gọi là đặt khơng chỉnh, nếu nó khơng phải là bài tốn đặt chỉnh, tức là nó có thể vơ nghiệm hoặc vơ định và nghiệm có thể khơng phụ thuộc liên tục vào dữ liệu y. Để giải số bài toán đặt không chỉnh một cách ổn định, người ta phải sử dụng q trình chỉnh hóa, hay hiệu chỉnh bài tốn, tức là thay bài tốn đặt khơng chỉnh bằng một họ bài toán đặt chỉnh phụ thuộc vào tham số, sao cho nghiệm của những bài toán đặt chỉnh hội tụ đến nghiệm của bài tốn đặt khơng chỉnh, khi tham số hiệu chỉnh dần tới không.

Một số kết quả về phương pháp hiệu chỉnh bài tốn đặt khơng chỉnh sẽ được trình bày ở mục 1.2.3.

Xét hệ phương trình tuyến tính

Ax=y, (1.8)

trong đó A là ma trận cấp m×n, x và y là các véctơ n và m chiều tương ứng. Giả sử hạng của ma trận A, rankA = min(m,n). Nếu m<n phương trình (1.8) có vơ số nghiệm cịn nếu m>n phương trình này có thể vơ nghiệm. Khi m=n phương trình (1.8) giải được với mọi vế phải nếu detA6=0. Trong trường hợp

này tồn tại tốn tử (ma trận) ngược A−1 và nó bị chặn do khơng gian đang xét hữu hạn chiều. Như vậy trong trường hợp m=n bài tốn (1.8) có thể đặt chỉnh theo nghĩa Hadamard. Bây giờ ta sẽ phân tích sự phụ thuộc của nghiệm vào vế

Một phần của tài liệu (LUẬN án TIẾN sĩ) giải hệ phương trình kích thước lớn và điều kiện xấu trên bó máy tính 62 46 35 01 (Trang 34)

Tải bản đầy đủ (PDF)

(121 trang)