首页 > 其他分享 >MPI广播聚合通信模式代码

MPI广播聚合通信模式代码

时间:2023-10-15 19:34:16浏览次数:24  
标签:聚合 int root rank MPI 广播 data size

#include <mpi.h>
#include<stdio.h>
#include <unistd.h>
int main(int argc, char** argv) {
MPI_Init( &argc, &argv );

int rank;
int size;
MPI_Comm_rank(MPI_COMM_WORLD, &rank); // 获取当前进程的rank
MPI_Comm_size(MPI_COMM_WORLD, &size); // 获取总进程数

int data[size];
for (int i = 0; i < size; ++i) {
data[i] = i;
}

int root = 0;
// 广播数据
MPI_Bcast(data, size, MPI_INT, root, MPI_COMM_WORLD);

// 在接收广播数据后,每个进程打印接收到的数据
for (int i = 0; i < size; ++i) {
printf( "Process %d received data:%d \n" ,i+1,data[i]);
}

int local_data[size];
for (int i = 0; i < size; ++i) {
local_data[i] = i + rank;
}

// 收集数据到root进程
int global_data[size];
MPI_Gather(local_data, size, MPI_INT, global_data, size, MPI_INT, root, MPI_COMM_WORLD);

// root进程打印收集到的数据
if (rank == root) {
for (int i = 0; i < size * size; ++i) {
printf( "Global data:%d ", global_data[i] );
}
}

MPI_Finalize();
return 0;
}

标签:聚合,int,root,rank,MPI,广播,data,size
From: https://www.cnblogs.com/hahaah/p/17766015.html

相关文章

  • MySQL分组聚合
    --创建hq_kline表deletefromhq_klineCREATETABLEhq_kline(idINTAUTO_INCREMENTPRIMARYKEY,finance_micVARCHAR(16)NOTNULL,prod_codeVARCHAR(64)NOTNULL,trade_dateINTNOTNULL,data_timestampINTNOTNULL,preclose_pxDECI......
  • Argument for '--moduleResolution' option must be: 'node', Unknown compiler opt
    node_modules/@vue/tsconfig/tsconfig.json(12,25):errorTS6046:Argumentfor'--moduleResolution'optionmustbe:'node','classic','node16','nodenext'.node_modules/@vue/tsconfig/tsconfig.json(33,5):erro......
  • # yyds干货盘点 # Pandas将三个聚合结果的列,如何合并到一张表里?
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【斌】问了一个Pandas数据处理的问题,一起来看看吧。求教:将三个聚合结果的列,如何合并到一张表里?这是前两列,能够合并。这是第三列,加权平均,也算出来了。但我不会合并。。。。二、实现过程后来【隔壁......
  • UE4 compiling shader 0%(卡死)
    问题在笔者使用的UE4.27版本中,系统对于light和reflectioncapture的shadercompile总是停在0%,且看起来像是整个系统已经卡死的样子解决去Google看了下,发现需要更改引擎的配置文件,方式如下:找到位于你的UE引擎安装目录下的"UE_4.27\Engine\Config\ConsoleVariables.ini"文件,并......
  • android studio配置 compileOnly、implementation、api使用
    implementation:作用是编译同时打包,且当前mudule打包的aar或jar,不能被引用当前module的模块引用。api:作用是编译同时打包,且当前mudule打包的aar或jar,能被引用当前module的模块引用。compileOnly:作用是只编译不打包。比如项目中要引用aarA,如果项目中其他模块已经引用打包过了......
  • 【C#】【IO】【Threading】【实例】工作报表前的本地数据聚合操作
    <工作记录——Report>报表前的数据获取操作是高重复性的,今天差不多完成了脚本,下述是代码:1//Seehttps://aka.ms/new-console-templateformoreinformation2usingSystem.IO;3usingSystem.Threading;45stringSN=@"C0230U25";6stringsourcefold=......
  • Codeforces Round 707 (Div. 2, based on Moscow Open Olympiad in Informatics) B. N
    按以下\(n\)次操作制作蛋糕。叠上第\(i\)块面包,然后浇上\(a_i\)单位的奶油。可以使当前往下\(a_i\)块面包沾上奶油。输出空格隔开的\(n\)个数,第\(i\)个的\(0/1\)代表第\(i\)块面包是否沾有奶油。比较显然的思路可以进行差分修改。view1#include<bits/std......
  • 利用Python爬虫打造SEO智能关键词聚合
    在当今互联网的竞争激烈时代,网站的SEO优化至关重要。而关键词是SEO优化的核心,选择恰当的关键词能够带来更多的流量和用户。本文将为您揭秘一项SEO黑科技:如何利用Python爬虫打造智能关键词聚合工具。通过这个工具,您可以快速地扫描和聚合与您网站相关的关键词,为您的SEO优化提供更准确......
  • IEDA 中Maven 编译错误 Compilation failure的解决方法
    IEDA中Maven提示编译错误Compilationfailure 检查发现项目虽然已经配置了JDK11,但是却引用的是JRE1.5解决方法:1、修改maven的setting.xml文件中添加下面的配置: <profile> <id>jdk-11</id> <activation> <activeByDefault>true</activeByDefault> <jdk>......
  • Could not resolve all dependencies for configuration ':testCompileClasspath'. Us
    Gradleinit.gradle文件参数错误导致的Gradle加载失败 1allprojects{2repositories{3mavenLocal()4maven{name"Alibaba";url"https://maven.aliyun.com/repository/public"}//将http改为https5maven{name&......