I. Khái niệm cơ bản về Thuật toán Song song
Thuật toán song song là quá trình xử lý thông tin trong đó nhiều đơn vị dữ liệu được xử lý đồng thời bởi một hay nhiều bộ xử lý để giải quyết bài toán trên đồ thị. Đây là một ngành quan trọng trong lĩnh vực công nghệ thông tin hiện đại. Tính toán song song giúp tăng đáng kể tốc độ xử lý so với các thuật toán tuần tự truyền thống. Các máy tính song parallel được chia thành hai loại chính: máy tính song song dựa trên bộ vi xử lý với tốc độ vừa phải và siêu máy tính với ít bộ xử lý nhưng tốc độ cực cao. Việc áp dụng thuật toán song song cho đồ thị đã mở ra nhiều cơ hội giải quyết các bài toán phức tạp một cách hiệu quả, đặc biệt là trong các lĩnh vực phân tích dữ liệu lớn, mô phỏng khoa học và tối ưu hóa.
1.1. Song song về dữ liệu và điều khiển
Song song về dữ liệu (data parallelism) là cơ chế sử dụng nhiều đơn vị xử lý thực hiện cùng một thao tác trên nhiều đơn vị dữ liệu khác nhau. Song parallel điều khiển (control parallelism) là cơ chế trong đó nhiều thao tác khác nhau tác động lên nhiều đơn vị dữ liệu khác nhau một cách đồng thời. Hai cơ chế này đóng vai trò quan trọng trong việc tối ưu hóa hiệu suất của các thuật toán song song trên đồ thị.
1.2. Dây chuyên và cơ chế xử lý
Dây chuyên (pipeline) là cơ chế chia công việc thành nhiều chặng nối tiếp, mỗi chặng được thực hiện bởi một bộ phận khác nhau. Đầu ra của bộ phận này trở thành đầu vào của bộ phận tiếp theo, tạo ra một quy trình xử lý liên tục. Cơ chế này giúp tối ưu hóa hiệu suất tính toán song song và là nền tảng quan trọng cho nhiều ứng dụng thực tiễn.
II. Các chỉ số đánh giá Hiệu suất Thuật toán Song parallel
Đánh giá hiệu suất của thuật toán song parallel đòi hỏi hiểu biết về các chỉ số quan trọng như tăng tốc, hiệu quả và chi phí tính toán. Tăng tốc (speedup) là tỉ số giữa thời gian thực hiện của thuật toán tuần tự tốt nhất và thời gian thực hiện của thuật toán song parallel. Định lý Amdahl phát biểu rằng tăng tốc bị giới hạn bởi tỷ lệ thao tác tuần tự trong tổng số thao tác phải làm. Hiệu quả (efficiency) được tính bằng tỉ số giữa tăng tốc và số bộ xử lý tham gia tính toán. Chi phí (cost) được tính bằng độ phức tạp tính toán nhân với số lượng bộ xử lý, giúp đánh giá hiệu quả kinh tế của hệ thống xử lý song parallel.
2.1. Định lý Amdahl và tăng tốc
Định lý Amdahl là nguyên lý cơ bản trong tính toán song parallel, phát biểu rằng tăng tốc bị giới hạn bởi tỷ lệ phần đơn điểu trong chương trình. Nếu gọi f là tỷ lệ thao tác tuần tự trên tổng số thao tác, với 0 < f < 1, thì tăng tốc tối đa với p bộ xử lý được xác định bởi công thức toán học cụ thể. Định lý này cho thấy rằng ngay cả với số lượng bộ xử lý vô hạn, tăng tốc cũng bị giới hạn bởi phần tuần tự của chương trình.
2.2. Đơn vị đo lường Flop
Flop (floating point operations per second) là đơn vị đo tốc độ của máy tính song parallel, biểu thị số phép tính toán hạng số thực dấu phay động thực hiện được trong một giây. Các đơn vị lớn hơn bao gồm Megaflop/s (10^6 flop/s), Gigaflop/s (10^9 flop/s) và Teraflop/s (10^12 flop/s). Những chỉ số này cho phép so sánh hiệu suất giữa các hệ thống xử lý song parallel khác nhau.
III. Các mức độ Song parallel trong Bài toán Đồ thị
Các mức độ song parallel được phân chia thành bốn cấp bậc khác nhau. Mức song parallel chương trình là mức cao nhất, nơi các công việc khác nhau được giao cho các máy khác nhau thực hiện. Mức song parallel chương trình con chia mỗi công việc thành các công đoạn (Task) có thể thực hiện song parallel. Mức song parallel câu lệnh cho phép nhiều câu lệnh thực hiện đồng thời, cuối cùng là mức song parallel thao tác ở cấp độ thấp nhất. Đối với bài toán trên đồ thị, việc hiểu rõ các mức độ này giúp thiết kế thuật toán song parallel hiệu quả và tận dụng tối đa khả năng xử lý của hệ thống.
3.1. Phân chia công việc và Task
Trong xử lý song parallel cho đồ thị, công việc được chia thành các Task (công đoạn) nhỏ hơn có thể thực hiện độc lập. Mỗi Task có thể được giao cho một bộ xử lý riêng biệt, từ đó tạo nên song parallel chương trình con. Cách chia Task hợp lý là chìa khóa để đạt hiệu suất cao trong thuật toán song parallel trên đồ thị, đặc biệt khi xử lý các đồ thị lớn với hàng triệu đỉnh và cạnh.
3.2. Mục tiêu tối ưu hóa và cân bằng tải
Cân bằng tải (load balancing) là yếu tố quan trọng trong thiết kế thuật toán song parallel để đạt hiệu suất cao. Mục tiêu là phân phối công việc sao cho tất cả bộ xử lý được sử dụng đều đặn mà không có sự chênh lệch lớn. Trong bài toán trên đồ thị, việc cân bằng tải đòi hỏi phân vùng đồ thị một cách thông minh để đảm bảo mỗi bộ xử lý xử lý khối lượng công việc gần như nhau.
IV. Mô hình PRAM và kiến trúc Xử lý Song parallel
Mô hình PRAM (Parallel Random Access Machine) là mô hình lý thuyết cơ bản trong tính toán song parallel, nơi N bộ xử lý cùng chia xẻ bộ nhớ chung. Mô hình PRAM được chia thành bốn lớp nhỏ dựa trên khả năng đọc/ghi đồng thời trên cùng một ô nhớ. Mỗi lớp có những đặc điểm riêng ảnh hưởng đến khả năng thực hiện thuật toán song parallel. EREW (Exclusive Read, Exclusive Write) không cho phép đọc hoặc ghi đồng thời, là mô hình giới hạn nhất nhưng phổ biến nhất trong thực tế. CREW (Concurrent Read, Exclusive Write) cho phép đọc đồng thời nhưng ghi độc quyền. ERCW cho phép ghi đồng thời nhưng đọc độc quyền. CRCW (Concurrent Read, Concurrent Write) là mô hình mạnh nhất, cho phép đọc/ghi đồng thời, nhưng phức tạp và khó chế tạo. Việc lựa chọn mô hình phù hợp là quyết định quan trọng khi thiết kế thuật toán song parallel cho bài toán đồ thị.
4.1. Các lớp PRAM và khả năng đọc ghi
EREW không cho phép hai bộ xử lý đọc hoặc ghi đồng thời trên cùng một ô nhớ. CREW cho phép bộ xử lý đọc đồng thời nhưng không được phép ghi đồng thời. ERCW cho phép ghi đồng thời nhưng không được phép đọc đồng thời. CRCW cho phép tất cả các hoạt động đọc/ghi đồng thời trên một ô nhớ, nhưng đây là mô hình phức tạp nhất và cần giải quyết xung đột ghi.
4.2. Giải quyết xung đột ghi trong CRCW
Khi nhiều bộ xử lý ghi đồng thời trên cùng một ô nhớ với những giá trị khác nhau, cần giải quyết xung đột. ECR (Equality Conflict Resolution) chỉ cho phép ghi nếu tất cả giá trị giống nhau. PCR (priority Conflict Resolution) dùng chỉ số ưu tiên quyết định giá trị được ghi. ACR (arbitrary Conflict Resolution) chấp nhận bất kỳ giá trị nào, nhưng khó để triển khai. Công nghệ hiện tại thường dùng EREW vì độ khả thi cao hơn.