Sau khi tìm hiểu về các kỹ thuật phân hoạch, ánh xạ và giảm thiểu tối đa tần số tương tác, bây giờ chúng ta sẽ giới thiệu một vài mơ hình thuật
http://etrithuc.vn
tốn song song hay được sử dụng. Một mơ hình thuật tốn là một cách thức tiêu biểu nhằm cấu trúc hĩa lại một thuật tốn song song bằng cách lựa chọn ra một kỹ thuật phân hoạch và ánh xạ và áp dụng kế hoạch thích hợp để tối ưu việc tương tác.
2.4.4.1. Mơ hình dữ liệu song song
Đây là một trong những mơ hình thuật tốn đơn giản nhất, các tác vụ được ánh xạ tĩnh hay bán tĩnh vào trong các tiến trình và từng tác vụ sẽ thực hiện cùng một thao tác trên các dữ liệu khác nhau. Loại song song mà cĩ các chỉ thị tương tự nhau được áp dụng đồng thời lên các dữ liệu khác loại nhau
được gọi là loại song song dữ liệu (data parallelism). Cơng việc cĩ thể được thực hiện từng bước và dữ liệu thao tác trên các bước khác nhau cĩ thể khác nhau. Bởi vì tất cả các tác vụ đều cùng thực thi các chỉ thị giống nhau, nên phương pháp phân hoạch được sử dụng ở đây là phân hoạch theo dữ liệu do một phương pháp phân hoạch thống nhất theo sau là cách thức ánh xạ tĩnh là
đủ khả năng đểđảm bảo cân bằng tải.
Những thuật tốn song song về dữ liệu cĩ thể được áp dụng cho cả
mơ hình chia sẽ khơng gian bộ nhớ và truyền thơng điệp.
Tương tác trong mơ hình này cĩ thể làm giảm thiểu tối đa bằng cách áp dụng các cách thức phân họach riêng biệt cục bộ, và nếu cĩ thể thì bằng cách chồng lấp các phép tính và các tương tác hoặc cũng cĩ thể bằng cách sử
dụng các thủ tục tối ưu các tương tác tập thể. Tính chất cốt lõi của các vấn đề
song song dữ liệu là trong hầu hết các vấn đề, mức độ song song của dữ liệu sẽ
gia tăng cùng với kích thước của vấn đề, điều này làm tăng khả năng giải quyết các vấn đề lớn hơn bằng cách gia tăng số lượng bộ xử lý được sử dụng.
2.4.4.2. Mơ hình đồ thị tác vụ
Như đã nĩi ở trên, các phép tính tốn trong bất kỳ thuật tốn song song nào cũng cĩ thể được biểu diễn theo đồ thị phụ thuộc tác vụ. Nĩ cĩ thể đơn giản như trong bài tốn nhân ma trận hay cĩ thể rất phức tạp. Tuy nhiên,
http://etrithuc.vn
trong những thuật tốn song song cụ thể nào đĩ, đồ thị phụ thuộc tác vụ cũng thể hiện cách ánh xạ vào trong các tiến trình. Trong mơ hình đồ thị tác vụ, mối tương giao giữa các tác vụđược sử dụng để gia tăng tính cục bộ hay làm giảm
đi chi phí tương tác. Mơ hình này về cơ bản được sử dụng để giải quyết những vấn đề mà trong đĩ dữ liệu đi theo các tác vụ là khá lớn so với nội dung tính tốn. Thơng thường thì các tác vụ được ánh xạ tĩnh nhằm giúp tối ưu chi phí cho việc di chuyển giữa chúng.
Các kỹ thuật làm giảm tương tác cĩ thể áp dụng cho mơ hình này là giảm kích thước dữ liệu và tần số tương tác bằng cách gia tăng sử dụng dữ liệu cục bộ, và sử dụng các phương pháp tương tác bất đồng bộ để thay tương tác bằng các phép tính cĩ lợi.
2.4.4.3. Mơ hình Work Pool
Cách thức ánh xạ tĩnh các tác vụ vào trong các tiến trình nhằm cân bằng tải là một tính chất tiêu biểu của mơ hình work pool hay task pool, mà trong đĩ nĩ cĩ thểđược thực hiện bởi bất kỳ tiến trình nào.
Trong mơ hình truyền thơng điệp, mơ hình work pool về cơ bản thường
được sử dụng khi khối lượng dữ liệu đi theo các tác vụ là khá nhỏ so với nội dung tính tốn của chúng.
2.4.4.4. Mơ hình Master-Slave
Trong mơ hình master-slave hay manager-worker, một hay nhiều tiến trình master sẽ phát sinh cơng việc và phân phối nĩ cho các tiến trình con. Các tác vụ cĩ thể đuợc xác định một thứ tự ưu tiên nếu tiến trình chính cĩ thể ước tính được kích thước của các tác vụđĩ hay nếu phương pháp ánh xạ ngẫu nhiên cĩ thể thực hiện cơng việc cân bằng tải. Trong ngữ cảnh khác các tác vụ
cĩ thể được gán những phần nhỏ hơn của cơng việc tại các thời điểm khác nhau. Thơng thường người ta sử dụng cách thứ hai nếu tiến trình chính khơng mất quá nhiều thời gian để phát sinh cơng việc khiến các tiến trình con phải chờ đợi. Trong nhiều trường hợp các cơng việc cĩ thể theo nhiều bước, và
http://etrithuc.vn
cơng việc trong mỗi bước phải được thực hiện xong trước khi cơng việc của bước tiếp theo được phát sinh. Đối với những trường hợp như vậy, thì tiến trình chính yêu cầu các tiến trình con phải thực hiện đồng bộ sau mỗi bước. Mơ hình manager-worker cĩ thể được thể hiện theo cấu trúc phân nhánh hay mơ hình manager-worker nhiều tầng mà trong đĩ manager ở cấp cao hơn sẽ
truyền xuống các cơng việc cho manager ở cấp dưới, cứ thế tiếp tục phân chia cho các worker thực hiện cơng việc của mình.
Mơ hình này nhìn chung thích hợp cho mơ hình lập trình chia sẽ
khơng gian bộ nhớ và truyền thơng điệp vì thường các tương tác là theo 2 chiều, nghĩa là tiến trình chính biết mình phải phân phối cơng việc cịn tiến trình con thì biết mình phải lấy gì từ tiến trình chủ.
Trong khi sử dụng mơ hình master-slave, cần phải cẩn thận để bảo
đảm sao cho tại tiến trình chủ khơng xảy ra hiện tượng “cổ chai“, điều này cĩ thể xảy ra nếu các tác vụđược thực thi là quá nhỏ (hay các tiến trình con làm việc quá nhanh).
2.4.4.5. Mơ hình dây chuyền (pipeline) hay Producer-Consumer
Trong mơ hình dây chuyền, một dịng tin được truyền qua một dãy liên tiếp các tiến trình, từng tiến trình sẽ thực hiện một vài tác vụ trên đĩ. Quá trình thực thi đồng thời các chương trình khác nhau trên một dịng tin được gọi là song song theo dịng (stream parallelism). Ngoại trừ tiến trình khởi tạo
đường ống, các dữ liệu mới tới sẽ kích hoạt một tiến trình thực thi một tác vụ
trên đường ống. Các tiến trình cĩ thể tạo những đường ống như vậy theo dạng tuyến tính hay mảng nhiều hướng, cây, hay các đồ thị thơng thường cĩ hay khơng cĩ vịng. Một đường ống (pipeline) là một chuỗi của các producer và consumer. Từng tiến trình trong đường ống cĩ thểđược xem như là người tiêu thụ cho một dãy các phần tử dữ liệu của tiến trình trước đĩ và cũng là người sản xuất dữ liệu cho tiến trình tiếp theo trong đường ống. Đường ống khơng
http://etrithuc.vn
nhất thiết là một chuỗi tuyến tính, mà nĩ cĩ thể là một đồ thị cĩ hướng. Mơ hình đường ống thường sử dụng ánh xạ tĩnh các tác vụ vào trong các tiến trình.
2.4.4.6. Mơ hình lai
Trong một vài trường hơp, cĩ thể áp dụng nhiều hơn một mơ hình cho một vấn đề, dẫn đến tạo ra mơ hình thuật tốn lai. Một mơ hình lai cĩ thể được kết hợp từ nhiều mơ hình áp dụng theo dạng phân nhánh hay từ nhiều mơ hình áp dụng tuần tự cho các bước khác nhau của một thuật tốn song song. Trong nhiều trường hợp, một dạng biểu diễn của thuật tốn cĩ thể cĩ nhiều tính chất của nhiều hơn một mơ hình thuật tốn. Ví dụ như là một phép tính chính cĩ thểđược thể hiện thành một đồ thị tác vụ, nhưng mỗi nút của đổ thị cĩ thể là một tác vụ cha được kết hợp từ nhiều tác vụ con thích hợp cho mơ hình song song dữ liệu hay dây chuyền. Thuật tốn Quicksort song song là một trong những áp dụng của mơ hình lai.
http://etrithuc.vn
Chương 3. Các mơi trường hỗ trợ tính tốn lưới