C语言使用MPI:
#include "mpi.h"
#include "stdio.h"
#include "math.h"
#include "unistd.h"
#define n 10
void printArr(int *arr){
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
printf("%d ",arr[i * n + j]);
}
printf("\n");
}
}
int main(int argv, char *argc[])
{
int rank, p, a;
MPI_Init(&argv, &argc);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &p);
MPI_Status status;
// printf("程序开始运行: 开启的线程数量为:%d, 我是线程%d\n", p, rank);
if(p != 1){ // 线程的数量多于1条
a = n / (p - 1);
}
// printf("a = %d\n", a);
if(rank == 0){ // 0号线程处理
int A[n * n];
int B[n * n];
int C[n * n];
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
A[i * n + j] = i + j;
B[i * n + j] = 1;
}
}
double tb, te;
if(p == 1){ // 只有一条线程的情况
tb = MPI_Wtime();
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
C[i * n + j] = 0;
for(int k = 0;

本文介绍如何使用C语言结合MPI(Message Passing Interface)进行并行计算。通过MPI库,学习如何在分布式环境中启动进程、进行进程间通信以及实现数据交换,从而提升程序的运行效率。
最低0.47元/天 解锁文章
1459





