2 1 Ring sang 2-D Mesh

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

Ring đợc gắn vào trong đồ thị Mesh 2-D. Giả sử hai đồ thị có cùng số đỉnh. Khi đó, việc nhúng với dilation =1 sẽ tồn tại nếu mesh có số chẵn các hàng. Nếu mesh có số lẻ hàng, cột thì không có cách nào để nhúng Ring vào trong Mesh mà không tăng dilation.

Hình 3. 11 Nhúng Ring vào trong Mesh 2-D

3. 2. 2 Mesh 2-D sang Mesh 2-D

Một Mesh 2-D của đồ thị giải thuật có thể chuyển sang Mesh 2-D của đồ thị trên kiến trúc đích với dilation= 1 nếu (1) A r ≤ Mr và Ac ≤ Mc

hoặc (2) Ac ≤ Mr và Ar ≤ Mc. với Ar , Ac là số hàng, cột của đồ thị giải thuật, Mr , Mclà số hàng cột của đồ thị Mesh 2-D.

Hình 2. 12 Mô tả chuyển Mesh 2-D sang Mesh 2-D với dialtion-1

3. 2. 3 Cây nhị phân hoàn chỉnh sang 2D Mesh

Cây nhị phân hoàn chỉnh trong đồ thị giải thuật có chiều cao n có dilation =n/2 khi chuyển vào kiến trúc đích 2D Mesh.

Hình 2. 13 Chuyển cây nhị phân chiều cao 3 vào Mesh 2-D với dilation=1

3. 2. 4 Cây nhị thức sang Mesh2-D

Cây nhị thức (Binimial Tree) trong đồ thị giải thuật có chiều cao n, có dilation = n/2 khi chuyển vào đồ thị Mesh 2-D trong kiến trúc đích.

Hình 2. 14 Chuyển cây nhị thức chiều cao 4 vào Mesh 2-D với dilation=1

3. 2. 5 Nhúng đồ thị vào trong mạng Hypercube

Một đồ thị G là có tính hình khối nếu ta có thể nhúng G vào trong mạng hypercube với dilation=1. Bài toán xác định một đồ thị bất kỳ G có tính hình khối hay không có độ phức tạp NP-complete.

Tuy nhiên, bài toán nhúng của một đồ thị kết nối G vào trong một mạng hypercube với n nút tồn tại khi và chỉ khi có thể gán nhãn các cạnh của G theo các số nguyên {1, . . . . , n} nh sau:

a. Các cạnh gắn liền với một đỉnh chung có các nhãn khác nhau b. Trong mỗi đờng của G, ít nhất phải có một nhãn xuất hiện số lẻ lần c. Trong mỗi chu trình của G không có nhãn đợc gán lẻ lần.

Vũ Trung Hiếu Tin3-K42 46

4 2 1 4 2 1 2 1

Hình 2. 15 Mô tả các trờng hợp không thể nhúng G vào hypercube với dilation=1

3. 2. 6 Cây nhị thức sang Hypercube

Cây nhị thức chiều cao n có thể đợc chuyển vào đồ thị hypercube có n chiều với dilation =1.

Hình 2. 16 Đánh số các cạnh của cây nhị thức chiều cao 4, có thể chuyển vào Hypercube có 4 chiều với dilation-1

3. 2. 7 Rings và Meshes sang Hypercube

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 (adsbygoogle = window.adsbygoogle || []).push({});

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. (adsbygoogle = window.adsbygoogle || []).push({});

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. (adsbygoogle = window.adsbygoogle || []).push({});

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

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