MPI là gì?
MPI (Message Passing Interface) là một tiêu chuẩn giao tiếp cho các chương trình song song. Nó cho phép các chương trình được viết bằng nhiều ngôn ngữ lập trình khác nhau (như C, C++, Fortran) để giao tiếp với nhau trên các hệ thống máy tính phân tán.
Cơ bản về MPI
Process: MPI xem một chương trình song song như một tập hợp các process độc lập. Mỗi process có bộ nhớ riêng và thực thi cùng một mã chương trình.
Giao tiếp: Các process giao tiếp với nhau bằng cách gửi và nhận các thông điệp. MPI cung cấp các hàm để gửi và nhận các thông điệp giữa các process.
Communicator: Một communicator là một nhóm các process được sử dụng để giao tiếp. MPI cung cấp các hàm để tạo và quản lý các communicator.
Cài đặt MPI
Trong phần này, mình sẽ hướng dẫn bạn cài đặt MPI với Visual Studio Community. Bạn có thể sử dụng Visual Studio Code nếu cần 1 IDE nhẹ, ít chiếm tài nguyên
Cài đặt Visual Studio Community
Visual Studio Community là một phiên bản miễn phí của Integrated Development Environment (IDE) phổ biến của Microsoft, Visual Studio. Nó được thiết kế cho các nhà phát triển cá nhân, sinh viên, nhà phát triển mã nguồn mở và các tổ chức nhỏ.
Download: https://visualstudio.microsoft.com/vs/community/
Chọn Workload C++ trong quá trình cài đặt: Trong bước "Workload", hãy đảm bảo bạn đã chọn "Desktop development with C++".
Nhấp vào nút "Install" để bắt đầu quá trình cài đặt.
Cài đặt MPI
Download MPI: https://www.microsoft.com/en-us/download/details.aspx?id=57467
Bạn sẽ cài đặt: msmpisetup.exe và msmpisdk.msi.
Chương trình sẽ gợi ý cài dặt vào C:\Program Files\Microsoft SDK\. Theo ý kiến cá nhân mình, nên để đường dẫn không có khoảng trắng, ví dụ cài đặt vào C:\MPI
Viết chương trình đầu tiên
Mở Visual Studio lên, chọn New Project -> Console Application, rồi nhập đoạn code sau:
// MpiHelloWorld.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <stdio.h>
#include <mpi.h>
int main()
{
// Initialize the MPI environment
MPI_Init(NULL, NULL);
// Get the number of processes
int world_size;
MPI_Comm_size(MPI_COMM_WORLD, &world_size);
// Get the rank of the process
int world_rank;
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
// Get the name of the processor
char processor_name[MPI_MAX_PROCESSOR_NAME];
int name_len;
MPI_Get_processor_name(processor_name, &name_len);
// Print off a hello world message
printf("Hello world from processor %s, rank %d out of %d processors\n",
processor_name, world_rank, world_size);
// Finalize the MPI environment.
MPI_Finalize();
return 0;
}
Cấu hình MPI
Trước khi cài đặt, bạn cần xác định Platform là x64 hay Win 32bit. Nhấp phải vào Project chọn Properties.
Trong cửa sổ Properties Page chọn C/C++ -> Additional Include Directory, thêm đường dẫn MPI\Include (thư viện được cài đặt ở bước 1)
D:\Softwares\Microsoft SDKs\MPI\Include
%(AdditionalIncludeDirectories)
Ở pannel, chọn Linker -> Generanl -> Additional Library Directories, bạn thêm Lib của MPI. Sau khi thêm Lib, kết quả như sau
D:\Softwares\Microsoft SDKs\MPI\Lib\x64
D:\Softwares\Microsoft SDKs\MPI\Lib\x86
%(AdditionalLibraryDirectories)
Mở Linker -> Input, thêm dòng: msmpi.lib
msmpi.lib
%(AdditionalDependencies)
Sau đó bạn bấm Apply -> Ok.
Quay trở lại chương trình, bấm F5 để thực hiện Build -> Execute
Nhận xét
Đăng nhận xét