Song Song Và Vuông Góc

Song Song Và Vuông Góc

4th Fl, 119 Dien Bien Phu Street,

Lập trình song song với MPI (Message Passing Interface)[sửa]

MPI là một bộ thư viện hỗ trợ cho việc lập trình kiểu truyền thông điệp. Thư viện MPI bao gồm các thủ tục khởi tạo môi trường, phân chia các xử lý vào các đoạn mã song song. Mỗi đoạn được chạy trên một tiến trình, các thủ tục trao đổi thông điệp và đồng bộ hóa các tiến trình. Các tác vụ MPI có thể chạy đồng thời trên cùng một bộ xử lý hoặc trên các bộ xử lý khác nhau. Trong một chương trình ứng dụng, lập trình viên phải đưa thêm một số lệnh điều khiển, gọi đến các hàm/thủ tục của bộ thư viện MPI, nhằm phân chia các tác vụ và chỉ ra (bằng câu lệnh) cách các tiến trình trao đổi thông điệp và đồng bộ hóa.

Lập trình song song với OpenMP[sửa]

OpenMP là một thư viện cung cấp giao diện lập trình ứng dụng (API) được sử dụng để điều khiển các luồng, hỗ trợ việc lập trình song song kiến trúc bộ nhớ chia sẻ. Thành phần của OpenMP bao gồm: (i)các biến môi trường (Environment Variables) (ii) các chỉ thị biên dịch (Compiler Directives) (iii) các thư viện thực thi (Runtime Library Routines). Để viết chương trình song song với OpenMP, lập trình viên bắt đầu bằng cách viết một chương trình tuần tự trên ngôn ngữ gốc như C/C++, sau đó thêm vào các chỉ thị (pragma) của OpenMP vào những phần mong muốn được xử lý song song. Việc chia sẻ và đồng bộ các tác vụ được OpenMP điều phối thực hiện.

Xử lý tương tranh (Concurrency)[sửa]

Là khả năng phân chia và điều phối thực hiện các tác vụ trong một khoảng thời gian sao cho tại mỗi thời điểm chỉ có một tác vụ được xử lý. Ví dụ trên máy tính cá nhân, chúng ta có thể chạy nhiều chương trình đồng thời, mỗi chương trình chạy là một tiến trình và hệ điều hànhsẽ thực hiện việc điều phối để các tiến trình thực hiện đồng thời dù máy tính chỉ có CPU với một lõi xử lý

Lập trình song song với PVM (Parallel Virtual Machine)[sửa]

PVM cung cấp môi trường phần mềm để gửi/nhận thông báo cho các hệ máy tính thuần nhất và cả không thuần nhất. PVM có một tập hợp các hàm thư viện được viết bằng C/C++ hoặc Fortran. Tập các máy tính được sử dụng trong mạng phải được định nghĩa theo các mức ưu tiên để chạy các chương trình. Điều này được thực hiện trên tập máy ảo song song PVM.

Tính toán song song được quan tâm từ khá sớm từ cuối những năm 1950 và ngày càng phát triển cùng với sự phát triển các siêu máy tính trong những năm 60-70 của thế kỷ 20. Siêu máy tính thông thường được thiết kế, chế tạo dựa trên kiến trúc đa bộ xử lý sử dụng bộ nhớ chia sẻ. Vào giữa những năm 1980, dự án xây dựng siêu máy tính với các bộ vi xử lý Intel 8086/8086 ra đời. Hệ thống với các bộ xử lý song song này đã đạt kỷ lục về tốc độ tính toán và giữ vị trí hàng đầu cho đến năm 1997 với sự ra đời của thế hệ siêu máy tính mới. Sự phát triển của công nghệ cụm máy tính vào những năm 1980 và ngày nay là các máy tính cá nhân đa lõi cũng tạo điều kiện thuận lợi cho sự phát triển và ứng dụng cửa tính toán song song trong nhiều lĩnh vực đời sống.

Lập trình song song nói riêng và tính toán song song nói chung được áp dụng một cách rộng rãi và hiệu quả trong các bài toán tính toán có kích thước lớn trong tính toán động lực học, dự báo thời tiết, mô hình hóa và mô phỏng các hệ thống lớn, xử lý thông tin, xử lý ảnh, trí tuệ nhân tạo, tự động hóa sản xuất Cùng với sự bùng nổ của thông tin, sự phức tạp trong các bài toán ứng dụng thực tế và sự phát triển liên tục của công nghệ đặc biệt là phần cứng, lập trình song song cùng các giải thuật song song ngày càng đóng vai trò quan trọng trong các lĩnh vực ứng dụng rộng khắp trong đời sống.

Xử lý song song (Parallelism) [sửa]

Là khả năng phân chia và điều phối thực hiện nhiều tác vụ tại cùng 1 thời điểm trên máy tính có bộ xử lý đa lõi hay trên 1 cụm nhiều máy tính. Mỗi lõi CPU có thể xử lý một tác vụ đơn giản tại một thời điểm. Khi số lõi CPU nhiều, có thể xử lý nhiều tác vụ một cách song song, cùng lúc trên các lõi CPU. Trong mô hình xử lý song song, mỗi lõi của CPU vẫn có thể xảy ra quá trình xử lý tương tranh. Tuy cả hai mô hình đều đề cập việc xử lý nhiều tác vụ trong cùng một thời điểm, mô hình xử lý tương tranh và mô hình xử lý song song là khác nhau. Trong mô hình song song, các tác vụ được thực hiện bởi các luồng khác nhau, chạy song song. Vì vậy số luồng được tạo ra phụ thuộc số lõi CPU (khuyến cáo chỉ nên tạo số luồng cỡ 2 lần số lõi CPU). Khi thực thi chương trình, nếu tạo quá nhiều luồng, sẽ không làm chương trình chạy nhanh hơn, mà còn gây ra lỗi.

Được thiết kế, tổ chức các tài nguyên nhằm tối ưu hiệu năng chương trình song song (tăng tốc độ tính toán, tăng khả năng chịu lỗi) bằng cách sử dụng nhiều bộ xử lý hay nhiều máy tính đồng thời. Các kiểu máy tính song song gồm: