2 7 Rings và Meshes sang Hypercube

Một phần của tài liệu Thiết kế giải thuật song song (Trang 47)

Giả sử hypercube có p = 2d bộ xử lý. Giả sử G(i) là số hiệu bộ xử lý gán cho vị trí vòng thứ i, với 0 ≤ i < p. Việc mã hoá G(i) phải có các tiêu chuẩn sau:

1. Các giá trị phải duy nhất, có nghĩa là G(i) = G(j) ⇒ i = j

2. G(i) và G(i+1) phải khác nhau chỉ 1 bít, với tất cả i: 0 ≤ i < p-1 3. G(p-1) và G(0) phải khác nhau chỉ 1 bít

Các tiêu chuẩn này thiết lập lên định nghĩa của mã Gray ( gray code). Có nhiều các xây dựng mã Gray, ở đây ta trình bày xây dựng mã Gray dài hơn từ mã Gray ngắn hơn. Một mã bít Gray là { 0, 1}, tức là G(0) = 0 và G(1) = 1. Giả sử ta có mã Gray d bít, mã Gray (d+1) bít có thể đợc xây dựng bởi liệt kê mã Gray d bit với tiền tố là 0, tiếp theo tiền tố là 1. Sử dụng kỹ thuật này chúng ta xây dựng mã Gray 2 bít nh sau.

0 01 11 10

Từ mã Gray 2 bít ta xây dựng mã Gray 3 bít nh sau: 000 001 011 010 110 111 101 100

Mã Gray ngợc đợc định nghĩa nh sau ; G−1(i) = j khi và chỉ khi G(j) =i Chúng ta sử dụng cả mã Gray và mã Gray ngợc để chuyển đồ thị Ring và Mesh vào trong hypercube

Ví dụ nh, hàm dới đây định nghĩa bộ xử lý kết tiếp của bộ xử lý i trên đồ thị ring có 2d nút. là :

Successor (i) = 0 nếu i = 2d−1

Successor (i) = G(G−1(i) + 1) trong trờng hợp còn lại.

Các hàm viết theo ngôn ngữ C tính toán G(i) và G−1(i) nh sau:

/* i là vị trí vòng, hàm Gray sẽ đa ra số hiệu bộ xử lý chiếm giữ vị trí này */ int gray(i)

{

return ( i ^( i/2)); }

/ * Truyền vào số hiệu bộ xử lý i, hàm gray-inverse sẽ tính vị trí của bộ xử lý này trong dãy mã Gray*/

int gray-inverse(i) {

int answer, mask; answer = i;

mask = answer /2; while ( mask > 0) {

answer = answer ^ mask ; mask = mask /2;

}

return ( answer); }

Hình 2. 17 Nhúng đồ thị Ring 8 nút vào mạng hypercube có 8 bộ xử lý

Bây giờ ta ánh xạ đồ thị mesh nhiều chiều có các kết nối vòng lại vào trong hypercube. Sử dụng mã Gray, với điều kiện kích thớc trong mỗi chiều phải là luỹ thừa của 2. Mỗi chiều của đồ thị mesh sẽ đợc gán một số lợng bit chính xác trong chuỗi mã hoá. Duyệt các nút đồ thị mesh dọc theo chiều này sẽ đợc một vòng tròn. Mã Gray xác định các giá trị gán cho trờng bit.

Ví dụ, xem xét ánh xạ đồ thị mesh 4 ì 8 trong đồ thị hypercube 32 bít. Hai bít đợc dành để mã hoá hàng và 3 bít để mã hoá cột. Mã gray cho ánh xạ đồ thị mesh kích thớc 4ì 8 vào trong đồ thị hypercube 32 nút nh sau:

01000 01001 01011 01010 01110 01111 01101 01100 11000 11001 11011 11010 11110 11111 11101 11100 10000 10001 10011 10010 10110 10111 10101 10100

Hình 2. 18 Nhúng đồ thị Mesh 4ì4 vào mạng hypercube 4 chiều với dilation =1 bởi vì mesh là đồ thị con của hypercube.

Bất kỳ đồ thị mesh với n đỉnh có thể đợc chuyển vào trong đồ thị hypercube có logn chiều với dilation=2.

Chơng này đã tìm hiểu về kiến trúc các mạng kết nối và đánh giá ảnh h- ởng của mạng đến độ trễ và băng thông trong chi phí thời gian truyền thông, cũng nh việc ánh xạ tĩnh từ đồ thị tác vụ vào trong kiến trúc mạng kết nối. Những vấn đề này sẽ ảnh hởng đến chi phí truyền thông trong các tiêu chuẩn đánh giá giải thuật.

Chơng 4 cơ sở đánh giá giải thuật song song

Quá trình thiết kế tạo ra nhiều giải thuật song song cho bài toán, việc chọn ra một giải thuật tối u cần phải dựa vào một số tiêu chuẩn đánh giá. Các tiêu chuẩn đó là : Thời gian thực hiện, khả năng tăng tốc, hiệu quả và tính qui mô của giải thuật.

4. 1 Thời gian thực hiện

Khi tốc độ tính toán đợc coi là nguyên nhân chủ yếu của sự quan tâm trong việc xây dựng các máy tính song song, một độ đo quan trọng trong việc đánh giá là thời gian thực hiện. Nó đợc xác định nh là thời gian giải thuật yêu cầu để giải quyết một vấn đề trên máy tính song song, đó là khoảng thời gian kể từ thời điểm ban đầu đến thời điểm kết thúc. Nếu các bộ xử lý khác nhau, tất cả không bắt đầu và kết thúc đồng thời, khi đó thời gian thực hiện bằng thời gian kéo dài giữa thời điểm bộ xử lý đầu tiên bắt đầu tính toán đến thời điểm bộ xử lý cuối cùng kết thúc tính toán.

Trớc khi thực sự cài đặt một giải thuật song song hay tuần tự đều có sự phân tích về lý thuyết, giải thuật cần bao nhiêu thời gian để giải quyết vấn đề tính toán đã cho. Điều này thờng đợc thực hiện bằng cách tính số các thao tác cơ bản hoặc các bớc mà giải thuật thực hiện trong trờng hợp xấu nhất. Số các bớc nh thế là một hàm của kích thớc đầu vào ( input size ). Các thao tác cơ bản có thể là phép cộng, so sánh hoặc đổi chỗ, truyền dữ liệu. Mỗi thao tác nh vậy yêu cầu một số cố định các đơn vị thời gian trên máy tính đơn bộ xử lý truyền thống.

Khác với giải thuật tuần tự, thời gian thực hiện của giải thuật song song là hàm phụ thuộc vào nhiều tham số nh kích thớc bài toán N, số bộ xử lý, số tác vụ U và các đặc điểm về giải thuật và phần cứng khác.

Nếu gọi T p là thời gian thực hiện song song thì Tp = f( N, U, P, . . . ) Trong suốt thời gian thực hiện, mỗi bộ xử lý sẽ đang tính toán, truyền thông hoặc rảnh rỗi.

T p = ( Tcomp + Tcomm + Tidle) /p. Trong đó :

Tcomp là tổng thời gian tính toán Tcomp là tổng thời gian truyền thông Tidle là tổng thời gian rỗi.

Hình 3. 1 Mô tả quá trình tính toán của 8 bộ xử lý

4. 1. 1 Thời gian tính toán

Thời gian tính toán của giải thuật song song là thời gian dành để thực hiện tính toán. Đối với giải thuật tuần tự thì thời gian này chỉ phụ thuộc vào kích thớc của bài toán nhng với tính toán song song thì việc tính toán lặp trên các tác vụ có thể có. Do đó thời gian tính toán sẽ phụ thuộc vào số tác vụ thực hiện. Đối với mô hình bộ nhớ chung thì số lợng bộ xử lý cũng ảnh hởng đến tốc độ thực thi trên mỗi bộ xử lý.

Thông thờng ta có thể xác định bằng thời gian thực hiện tuần tự cộng với bất kỳ thời gian nào thêm vào do thực hiện song song. Chẳng hạn nh thời gian tính toán lặp lại cùng một công việc trên các tác vụ.

4. 1. 2 Thời gian truyền thông

Thời gian truyền thông của một giải thuật là thời gian các tác vụ dành để gửi và nhận message. Có hai loại truyền thông cần xác định : truyền thông giữa hai tác vụ trên hai bộ xử lý khác nhau và truyền thông giữa hai tác vụ cùng nằm trên cùng bộ xử lý. Thông thờng thời gian truyền bên trong bộ xử lý lớn hơn nhiều so với thời gian truyền giữa hai bộ xử lý, nhất là đối với mô hình máy tính song song multicomputers.

Trong mô hình multicomputers lý tởng thì chi phí để gửi một message giữa hai tác vụ định vị trên bộ xử lý khác nhau phụ thuộc vào hai tham số sau :

Thời gian khởi tạo message: ts là thời gian cần thiết để khởi tạo truyền thông

Thời gian truyền dữ liệu: tw là thời gian cần thiết để truyền đi dữ liệu có kích thớc một word ( 2 byte). tw đợc xác định bởi băng thông vật lý của kênh truyền thông kết nối bộ xử lý nguồn và đích.

Tmsg = ts + L tw

Nếu lợng dữ liệu truyền là nhỏ thì thời gian khởi tạo chiếm phần lớn, còn khi lợng dữ liệu lớn thì thời gian truyền sẽ chiếm tỷ trọng cao.

Hình 3. 2 Mô tả mối quan hệ các tham số trong công thức tính thời gian truyền thông

Thông thờng ts và tw là các thông số đợc tính toán phụ thuộc vào cụ thể kiến trúc máy tính song song.

Hình 3. 3 Bảng xấp xỉ thông số một số máy tính song song ( đơn vị : às)

Tuy nhiên đối với mô hình multicomputer thực tế, ta cần phân tích sự ảnh hởng của hai kỹ thuật định đờng truyền thông là store and forward và circuit-switched cũng nh ảnh hởng của tranh chấp băng thông trên đờng truyền giữa các bộ xử lý.

Trong sơ đồ của cơ chế store and forward, thời gian cần thiết để gửi một message từ một bộ xử lý tới một bộ xử lý khác tăng tuyến tính với số bớc nhảy ( hops) mà message phải tạo ra để đến đợc đích. Ngợc lại, thời gian cần thiết để gửi một message từ một bộ xử lý tới một bộ xử lý khác trong lợc đồ chuyển mạch là phụ thuộc rất ít với khoảng cách giữa các bộ xử lý.

Do đó ta có thể phát triển thành các công thức sau :

 Đối với truyền thông định đờng theo cơ chế store and forward: Tmsg = ( ts + tw L) D

Với D là khoảng cách giữa nút nhận và gửi trong bớc định đờng.

 Đối với truyền thông định đờng theo cơ chế circuit-switched: Tmsg = ts + tw L t– h D

Với D là khoảng cách giữa nút nhận và gửi trong bớc định đờng Th là chi phí gia tăng cho mỗi bớc định đờng.

Trong thực tế, th thờng rất nhỏ, ta có thể bỏ qua đợc.

Khi xem xét đến sự tranh chấp băng thông truyền trên mạng kết nối thì công thức tính đợc thay đổi nh sau:

Tmsg = ts + tw S L

Trong đó S là số bộ xử lý gửi đồng thời trên cùng một đờng dây.

4. 1. 3 Thời gian rỗi (Idle)

Thời gian tính toán và truyền thông thờng đơn giản hơn trong việc xác định bởi vì ta có thể xác định sự phân bố của nó đối với thời gian thực hiện. Thời rảnh rỗi khó có thể xác định bởi vì phụ thuộc vào trình tự các phép đợc thực hiện.

Một bộ xử lý có thể đặt trong trạng thái rỗi nếu thiếu tính toán hoặc dữ liệu để tính toán. Trong trờng hợp đầu tiên, thời gian rảnh rỗi có thể tránh đợc bằng cách sử dụng kỹ thuật căn bằng nạp động. Trong trờng hợp thứ hai, bộ xử lý rỗi trong khi tính toán đang chờ dữ liêu dữ liệu từ xa mà dữ liệu này lại đang trong trạng thái sử dụng. Thời này có thể đợc tránh nếu ta cấu trúc ch- ơng trình để có thể thực tính toán hoặc truyền thông trong khí đang chờ dữ liệu từ xa. Kỹ thuật này thờng đợc gọi là xen kẽ tính toán và truyền thông (

overlapping computation and communication) bởi vì tính toán với dữ liệu cục bộ đợc thực hiện đồng thời với tính toán và truyền thông dữ liệu xa.

Cách đơn giản để đạt đợc điều này là tạo ra nhiều tác vụ trên một bộ xử lý. Trong khi một tác vụ đang bị dùng để chờ dữ liệu ở xa thì tính toán có thể chuyển sang tác vụ khác mà dữ liệu đã sẵn có.

Hình 3. 4 Mô tả kỹ thuật xen kẽ tính toán và truyền thông giữa P1 và P2.

Hầu hết các máy tính song song đều hỗ trợ thực hiện kỹ thuật lập lịch trình, xen kẽ tính toán và truyền thông do đó thời gian rỗi chiếm tỷ trọng rất nhỏ trong toàn bộ thời gian tính toán, nên thông thờng có thể bỏ qua đợc.

4. 2 Tăng tốc và hiệu quả.

Thời gian thực hiện không luôn là thớc đo thuận tiên nhất để đánh giá hiệu năng của giải thuật. Khi thời gian thực hiện có xu hớng biến đổi theo kích thớc bài toán, thời gian thực hiện phải đợc tiêu chuẩn hoá khi so sánh hiệu năng giải thuật với kích thớc bài toán khác nhau.

Hiệu quả của giải thuât đợc định nghĩa là phần thời gian mà các bộ xử lý dùng để thực hiện công việc có ích, chỉ ra mức độ hiệu quả của một giải thuật khi sử dụng các tài nguyên tính toán của một máy tính song song theo hớng độc lập với kích thớc bài toán, đợc xác định theo công thức sau:

Ep =

p

pT T1

Với T1 là thời gian thực hiện giải thuật tuần tự. Tp là thời gian thực hiện giải thuật song song Ep là hiệu quả giải thuật

p là số bộ xử lý Thông thờng, Ep ≤ 1.

Một độ đo khác đánh giá đợc hiệu năng của giải thuật là khả năng tăng tốc, đây là hệ số mà thời gian thực hiện đợc giảm đi khi thực hiện bài toán trên p bộ xử lý. Đợc xác định theo công thức sau:

Sp =

p

T T1

Với Sp là khả năng tăng tốc

T1 là thời gian thực hiện giải thuật tuần tự. Tp là thời gian thực hiện giải thuật song song

Hầu hết các trờng hợp thì Sp ≤ p.

Rõ ràng khả năng tăng tốc càng lớn thì giải thuật song song càng tốt. Tuy nhiên năm 1967 Amdahl đã đa ra luật về giới hạn khả năng tăng tốc nh sau:

Luật Amdahl : Giả sử s là phần thao tác tính toán cần phải thực hiện tuần tự, trong đó 0 ≤ s ≤ 1. Khả năng tăng tốc tối đa Sp đạt đợc bởi một máy tính song song có P bộ xử lý thực hiện tính toán là :

Sp ≤ s+(11−s)/ p

Luật trên đã sớm đem lại sự bi quan về một tiềm năng của tính toán song song. Tuy nhiên nếu ta mở rộng vấn đề ra có thể thấy luật Amdahl thích hợp chỉ đối với bài toán cố định hoặc phần trăm tuần tự là độc lập với kích th- ớc bài toán. Điều này thờng ít gặp trong thực tế vì các bài toán giải quyết song song thờng lớn, khi đó phần tính toán tuần tự sẽ giảm xuống khi kích thớc tăng.

4. 3 Tính qui mô

Một giải thuật có tính qui mô nếu mức độ song song ít nhất cũng gia tăng tuyến tính theo kích thớc bài toán. Một kiến trúc có tính qui mô nếu nó tiếp tục mang lại cùng hiệu năng cho từng bộ xử lý, mặc dù các bộ xử lý đợc dùng trong bài toán kích thớc lớn hơn, khi số lợng bộ xử lý gia tăng. Tính qui mô về thuật toán và kiến trúc là quan trọng, bởi vì từ đó mới có thể cho phép ngời sử dụng giải quyết các bài toán lớn hơn trong số lợng thời gian nh nhau bằng cách mua một máy tính song song với nhiều bộ xử lý hơn.

Việc đánh giá tính qui mô của giải thuật thờng thông qua một tiêu chuẩn phụ thuộc vào tính hiệu quả. Nếu nh giải thuật có thể duy trì hiệu quả là một hằng số hoặc ít nhất là giới hạn dới > 0 khi số bộ xử lý gia tăng do kích thớc bài toán tăng lên. Theo công thức tính hiệu quả:

Ep =

p

pT T1

Các giải thuật song song theo dữ liệu thì linh động hơn các giải thuật song song theo chức năng, bởi vì mức độ song song chức năng thờng là một hằng số, độc lập với kích thớc bài toán, trong khi mức độ song song dữ liệu là một hàm tăng theo kích thớc bài toán.

Việc tìm hiểu các cơ sở đánh giá giải thuật giúp cho ta có thể xem xét lại các thiết kế đa ra. Chọn lựa giải thuật tốt cho mô hình máy tính cụ thể là một bài toán không đơn giản. Những đánh giá trên mới chỉ mang tính lý thuyết, nhng là cơ sở quan trọng khi ta thiết kế giải thuật song song.

Chơng 5 giải hệ phơng trình tuyến tính

Sau khi trình bày lý thuyết về thiết kế giải thuật song song, chơng sau đây sẽ áp dụng cụ thể vào bài toán giải hệ phơng trình tuyến tính. Đây là bài toán quan trọng, thờng đợc áp dụng trong nhiều bài toán khoa học và kỹ thuật.

Về lý thuyết, giải hệ phơng trình tuyến tính A x= b ta có thể thực hiện nh sau:

Tìm ma trận nghịch đảo A−1 của A

Sau đó tính x= A−1b.

Một phần của tài liệu Thiết kế giải thuật song song (Trang 47)

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

(80 trang)
w