6. Phương pháp nghiên cứu
2.2.2.1. Giới thiệu MPI
Message Passing Interface – MPI là một chuẩn mới được sử dụng rộng rãi. MPI không phải là một ngôn ngữ lập trình mới, thực chất MPI chỉ là một thư viện của chương trình mà có thể được gọi từ chương trình C hoặc Fortran 77.
MPI được phát triển bởi một diễn đàn mở quốc tế, bao gồm các đại diện từ ngành công nghiệp, các học viện và phòng thí nghiệm của chính phủ. MPI đã nhanh chóng được chấp nhận và phát triển rộng rãi bởi được thiết kế cẩn thận cho phép hiệu suất tối đa trên một loạt các hệ thống, quá trình trao đổi dữ liệu của MPI chủ yếu dựa trên truyền thông điệp.
Những nỗ lực cho MPI bắt đầu vào mùa hè năm 1991, khi một nhóm nhỏ các nhà nghiên cứu bắt đầu thảo luận tại một nơi hẻo lánh trên núi ở Úc. Nội dung đó lại được thảo uận tại hội thảo “Tiêu chuẩn cho truyền thông điệp trên môi trường bộ nhớ phân tán” (Standards for Message Passing in a Distributed Memory environment) tổ chức vào ngày 29/4/1992 – 30/4/1992 tại Williamsburg, Virginia. Tại hội thảo này, các tính năng cơ bản cần thiết cho một MPI chuẩn đã được thảo luận, và một nhóm cộng tác đã được thành lập để tiếp tục quá trình tiêu chuẩn hóa. Jack Dongarra, Rolf Hempel, Tony Hey và David W.Walker đưa ra một bản dự thảo sơ bộ được biết đến như MPI – 1 trong tháng 11/1992.
Trong tháng 11/1992, một cuộc họp của nhóm công tác MPI đã được tổ chúc tại Minneapolis, tại đó hội thảo quyết định đặt các quá trình tiêu chuẩn hóa trên một cơ sở chính thức. Nhóm công tác MPI đã gặp nhau 6 tuần một lần trong suốt 9 tháng đầu của năm 1993. Bản dự thảo chuẩn MPI đã được trình bày tại hội nghị Siêu máy tính vào tháng 11 năm 1993.
Sau một thời gian nhận những ý kiến đóng góp từ cộng đồng, một số kết quả được thay đổi trong MPI, phiên bản 1.0 của MPI được phát hành vào tháng 6 năm 1994. Thông qua những cuộc gặp gỡ và thư điện tử, các nhà nghiên cứu đã thảo luận với nhau thành lập diễn đàn MPI, trong đó tất cả các thành viên của cộng đồng điện toán hiệu suất cao đều có thể đăng ký làm thành viên của diễn đàn.
MPI đã thu hút sự tham gia khoảng 80 người từ 40 tổ chức, chủ yếu là ở Mỹ và Châu Âu. Hầu hết các nhà cung cấp chính của máy tính đều được tham gia vào MPI cùng với các nhà nghiên cứu từ các trường đại học, phòng thí nghiệm của chính phủ và ngành công nghiệp.
Hầu hết các triển khai MPI bao gồm một định tuyến riêng có thể được gọi trực tiếp từ C, C++, Fortran hay bất cứ ngôn ngữ nào có giao diện với các thư viên, bao gồm C#, Java hoặc Python. Những ưu điểm của MPI vượt qua những thư viện truyền thông điệp cũ về tính linh động (MPI có thể được triển khai cho hầu hết các kiến trúc bộ nhớ phân tán) và tốc độ (MPI thực hiện nguyên tắc tối ưu hóa cho phần cứng mà nó chạy).
MPI sử dụng LIS (Language Independent Specifications) để gọi và ràng buộc ngôn ngữ. Phiên bản đầu tiên được phát hành chỉ định ràng buộc ANSI C và
Fotran 77 cùng với LIS. Năm 2008, chuẩn MPI-1.3 chứa khoảng 128 chức năng, đây cũng là phát hành cuối cùng của seri MPI-1 trong năm 2008.
Phiên bản MPI-2.2 bao gồm những tính năng mới như là I/O song song, quản lý tiến trình động và điều hành bộ nhớ từ xa. LIS của MPI-2 thiết lập hơn 500 hàm và cung cấp ràng buộc ngôn ngữ cho ANSI C, ANSI C++ và ANSI Fortran (Fortran 90). Khả năng tương tác đôi tượng cũng được thêm vào để cho phép lập trình truyền thông điệp bằng ngôn ngữ hỗn hợp dễ dàng hơn.