Trong công đoạn tích tụ các tác vụ, giải thuật hớng theo hàng sẽ thực hiện việc kết hợp n/p hàng các tác vụ ban đầu thành một tác vụ lớn. Khi đó không cần thiết broadcast l jj theo chiều ngang bởi vì các tác vụ này đợc thực thi chỉ trong một tác vụ.
Tuy nhiên, chiến lợc tích tụ này không song song đợc việc cập nhật các phần tử nằm cùng trong một hàng. Vẫn yêu cầu broadcast theo chiều dọc để
Hình 5. 3 Mô tả truyền thông giữa các tác vụ tích tụ theo hàng
Giải thuật theo hàng 1-D nh sau:
For k=1 to n-1 If k ∈ myrows then
Broadcast { akj: k < j < n } to other tasks Else Recv{ akj: k ≤ j≤n } End For i ∈ myrows, i > k, lik = aik /akk . end for j = k+1 to n for i ∈ myrows, i > k, aij= aij - lik *akj end end end
Thời gian thực hiện
Tính toán độ phức tạp tính toán của thuật toán. -Tại bớc thứ k, việc cập nhật các tác vụ yêu cầu khoảng (n-k)2 /p phép toán. - Độ phức tạp cho toàn bộ n-1 bớc sẽ là : Tcomp ≈ ∑−1 − 1 2/ ) ( n c n k p t ≈ tc n3/(3p).
Tính toán độ phức tạp về truyền thông.
Tơng tự nh tính toán độ phức tạp, số lợng dữ liệu broadcast tại bớc thứ k là khoảng n-k, bởi vậy trên mô hình 1-D Mesh, các bộ xử lý nối nhau thành
đờng thẳng và truyền thông với nhau bằng kỹ thuật circuit-switched với ảnh h- ởng của khoảng cách giữa các bộ xử lý t h nhỏ có thể bỏ qua. Ta có chi phí cho truyền thông sẽ là
Tcomm ≈ ∑− = − − + 1 1 )) 1 ))( ( (( n k s w p k n t t ≈ (p-1) ts n + (p-1)tw n2 /2
Tổng thời gian thực hiện là :
T p ≈ tc n3 /(3p) + ts(p-1)n + tw(p-1) n2 /2
Các vấn đề đặt ra cho việc thực thi giải thuật song song theo hàng là:
Phân tán công việc không đều, mỗi tác vụ sẽ đi vào trạng thái rỗi ngay khi hàng cuối cùng đợc hoàn thành.
Nếu tác vụ quản lý khối các hàng liên tiếp thì bộ xử lý đ- ợc ấn định tơng ứng sẽ rỗi thời gian rất lâu trớc khi toàn bộ tính toán đ- ợc hoàn thành.
Hơn nữa, công việc cập nhật các hàng sẽ ít đi nhanh chóng khi số hiệu hàng gia tăng.
Các phơng pháp giải quyết cho vấn đề này là:
ấn định các hàng tới các tác vụ theo chu trình, với hàng thứ i đợc ấn định tới task thứ i mod n hoặc ấn định theo kiểu chu trình khối (block- cyclic) hoặc
Pipeline việc tính toán và truyền dữ liệu, với phơng pháp này sẽ cải thiện đợc hiệu năng của giải thuật song song. Thay vì làm việc trên cùng một bớc lặp tại một thời điểm, tất cả các bộ xử lý có thể đợc lập lịch trình thực hiện một cách không đồng bộ. Trong khi pipeline giải thuật khử Gauss thì mỗi bộ xử lý sẽ thực hiện độc lập bất kỳ hoạt động gửi hoặc tính toán trừ phi nó đang chờ nhận dữ liệu dùng cho hoạt động đó.
+ Tại bớc k, mỗi tác vụ hoàn thành cập nhật phần còn lại của nó trớc khi chuyển tới bớc tiếp theo k+1. Tuy nhiên tác vụ quản lý hàng k+1 có thể broadcast ngay sau khi nó đợc cập nhật trớc khi nó tiếp tục việc cập nhật phần còn lại của bớc thứ k.
+ Với chiến lợc gửi trớc send ahead sẽ cho phép các tác vụ khác bắt đầu “ ” tiến hành công việc trên tác vụ tiếp theo sớm hơn bởi vì thời gian chờ đợi dữ liệu cần thiết cho việc tính toán đã đợc rút gọn.