@jedidiah.brown
- Установить MPI: Скачайте и установите MPI для Windows (например, MPICH).
- Настроить проект: Откройте Visual Studio и создайте новое приложение C++. Добавьте библиотеку MPI к проекту, настроив путь и имя файла заголовка в Project Properties в качестве Additional Include Directories и имя файла библиотеки в качестве Additional Library Directories.
- Инклюдить библиотеку MPI в исходный код: В файле исходного кода добавьте строку #include
- Инициализировать MPI: В функции main функции инициализации MPI перед всеми другими командами добавьте строку: MPI_Init(&argc,&argv);
- Получить количество процессов: Используйте MPI_Comm_size(MPI_COMM_WORLD, &size); для вычисления количества запущенных процессов.
- Получить ранг процесса: Используйте MPI_Comm_rank(MPI_COMM_WORLD, &rank); для получения номера текущего процесса.
- Организовать коммуникацию: Используйте MPI_Send и MPI_Recv для передачи данных между процессами.
- Освободить ресурсы MPI: Используйте MPI_Finalize после завершения работы всех процессов для освобождения ресурсов MPI.
Пример:
#include <mpi.h>
#include <stdio.h>
int main(int argc, char** argv) {
int rank, size;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
if (rank == 0) {
int data = 42;
MPI_Send(&data, 1, MPI_INT, 1, 0, MPI_COMM_WORLD);
printf("Process %d sent data %d
", rank, data);
} else if (rank == 1) {
int data;
MPI_Recv(&data, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
printf("Process %d received data %d
", rank, data);
}
MPI_Finalize();
return 0;
}
Этот код создает два процесса и передает значение между ними. Первый процесс отправляет значение 42 второму процессу, который затем принимает его и выводит его на экран.