轮询分区的设置

终于可以写MPI了,没想到,刚开始就当头一棒,我按照之前的配置MPI环境,配置完成就报错

好家伙,仔细检查了每一个步骤都没找到问题,上网搜索了一些解决方案,也没有解决。所幸,在配置MPI环境时保存了之前的版本, 又重新配置了MPI环境,还好没问题,不得不说,有时候写代码真的跟玄学一样,但保存备份真的是一个无比好的习惯,赞颂。

目前正在计划实现下面两个阶段

创建网络阶段:主要是神经元的创建和 神经元的连接。

SNN分区阶段:主要是对SNN网络进行分区比如轮询方式,均匀的分配每一个神经元

这两个阶段都在ConnectionManager中实现

	// 神经元的邻接表std::vector<std::vector<int>> global_adjacency;// 本地的邻接表std::vector<std::vector<int>> local_adjcency;//本地的突触集合std::vector<int> local_node_gids;//本地神经元集合std::vector<  Neuron* > local_nodes;//本地突触集合std::vector< std::vector< Synapse* > > local_synapases;

主要是对这些变量进行修改。

目前已经实现了网络的创建阶段,又实现了一个简单的轮询分区阶段

void PartitionManager::perform_partitioning(const std::vector<std::vector<int>>& global_adjacency, std::vector<std::vector<int>>* local_adjacency, std::vector<int>* local_node_gids)
{partition.resize(global_adjacency.size());int nPart = kernel().mpi_manager.get_num_processes();int rank = kernel().mpi_manager.get_rank();for (int i = 0; i < partition.size(); i++) {partition[i] = i % nPart;}for (int ii = 0; ii < global_adjacency.size(); ii++){if (rank == partition[ii]){local_node_gids->push_back(ii);}for (int jj = 0; jj < global_adjacency[ii].size(); jj++){//如果与这个节点连接的节点也在该进程if (partition[global_adjacency[ii][jj]] == rank){(*local_adjacency)[ii].push_back(global_adjacency[ii][jj]);}}}
}

我们将分区的数量与进程的数据保持了一致, 创建了如下

代码执行效果为:

还是很符合预期的。

现在最大的问题是:因为创建SNN网络的时候,种群之间的连接是随机的。如果每个进程都执行一次SNN创建,那么不同进程肯定得到不一样的邻接表。

目前的想法就是设立一个主进程。网络的创建在主进程中实现,然后再分发给其他进程。或者保证每个进程的SNN创建是相同的。

愁人啊

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198387.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于前端学习的思考-vertical-align的用法

先摆结论&#xff1a;vertical-align这里的top线&#xff0c;bottom线&#xff0c;middle线&#xff0c;baseline线是由最大宽度和最大高度的行内元素或行内块元素决定的。 按照惯例&#xff0c;先摆三个行内元素。 1、改变第一个盒子&#xff0c;vertical-align&#xff1a;to…

主机装ubuntu双系统,无线网络问题

微星主板开机按del进入bios&#xff0c;setting里设置启动优先级 启动盘制作 350G 三个分区&#xff1a; 1.EFI系统分区&#xff0c;2G&#xff0c;逻辑分区&#xff0c;空间起始位置 2.Ext4&#xff0c;/&#xff0c;根目录&#xff0c;120G&#xff0c;主分区&#xff0c…

Java异常详解大全(2023版)

Java异常详解 异常分类1.Throwable2. Error(错误)3. Exception(异常)3.1 运行时异常 RuntimeException3.2 编译时异常(受检查异常)ClassNotFoundException + IOException4.常见的运行时异常5.异常如何处理Java 的异常处理是通过 5 个关键词来实现的:try、catch、throw、…

Uber Go 语言编码规范

uber-go/guide 的中文翻译 English 文档链接 Uber Go 语言编码规范 Uber 是一家美国硅谷的科技公司&#xff0c;也是 Go 语言的早期 adopter。其开源了很多 golang 项目&#xff0c;诸如被 Gopher 圈熟知的 zap、jaeger 等。2018 年年末 Uber 将内部的 Go 风格规范 开源到 G…

人工智能学习6(贝叶斯实现简单的评论情感分析)

编译工具PyCharm 文章目录 编译工具PyCharm 文本分析与表示实现方式&#xff1a;文本表示方法文本相似度计算LDA主题模型 朴素贝叶斯算法应用&#xff1a;评论情感分析&#xff0c;工具评论分析是好评还是差评获取数据加载停用词内容标准化&#xff08;将每一句话划分成一个个的…

四通道轨-轨运算芯片 D8054,外围应用简便,低功耗2.3mA (典型值)运放供电电流

D8054是一款四通道轨-轨运算放大器&#xff0c;外围应用简便&#xff0c;价格低廉。封装形式为SOP14&#xff0c;TSSOP14&#xff0c; SOP16&#xff0c; TSSOP16。 主要特点&#xff1a; ● 轨-轨输出&#xff0c;输出失调2mV (典型值) ● 高速250MHz&#xff0c;-3dB带…

HNU-电路与电子学-2018期末A卷(含标准解析)

【写在前面】 电路与电子学好像是从2020级开设的课程&#xff0c;故实际上目前只有2020与2021两个年级考过期末考试。 这门课程主要由所谓的“数电”与“模电”组成。而且先学的“模电”后学的“”数电&#xff0c;故期中考试主要以“模电”为主&#xff0c;期末考试主要以“数…

“上云”还是“下云”?探云计算的下一站未来!

引言 10 月 27 日&#xff0c;X&#xff08;原Twitter&#xff09;工程技术发布帖子称&#xff0c;在过去的一年里&#xff0c;技术团队优化了 X 的云服务使用方式&#xff0c;着手将更多工作负载迁往本地基础设施。这一转变使 X 每月的云成本降低了 60%。所有媒体、Blob 存储均…

[全志]更新bootlogo分区数据从而更新bootlogo

一、需求 在不进行镜像烧录的情况下&#xff0c;通过启动项或脚本将已存在于主板的bootlogo文件更新到bootlogo分区中&#xff0c;从而实现bootlogo的更新 二、操作 1、在主板上查找bootlogo文件路径 find -name bootlogo* 实机效果&#xff1a; 2、进入文件夹路径 cd ./d…

视频剪辑方法:AI智剪高效稳定,视频批量处理有技巧

随着社交媒体的兴起和视频制作工具的普及&#xff0c;视频剪辑已经成为一项重要的工作。然而对于许多非专业创作者来说&#xff0c;视频剪辑可能是一项困难的任务。所幸AI智剪提供了一种高效稳定的视频剪辑方法&#xff0c;使得视频批量处理变得更加简单。使用AI智剪可以大大节…

派对的最大快乐值

与其明天开始&#xff0c;不如现在行动&#xff01; 文章目录 派对的最大快乐值 &#x1f48e;总结 派对的最大快乐值 题目 员工信息的定义如下&#xff1a; 公司的每个员工都符合 Employee 类的描述。整个公司的人员结构可以看作是一棵标准的、没有环的多叉树。树的头节点是公…

蓝桥杯物联网竞赛_STM32L071_10_温度传感器扩展模块

原理图&#xff1a; 温度传感器原理图&#xff1a; 其中芯片可以通过SCL和SDA引脚通过I2C通信向温度传感器指定地址获取温度的模拟量 再利用公式将模拟量转换成相应温度即可 实验板接口原理图&#xff1a; 模拟量转相应温度公式&#xff1a; CubMx配置&#xff1a; Keil配置&…

Ribbon 负载均衡

1、负载均衡整体流程 2、负载均衡流程逐级跟踪运行 (1) LoadBlanced 注解可以使LoadBalancerInterceptor拦截到&#xff1b; (2)LoadBalancerInterceptor 实现了ClientHttpRequestInterceptor接口&#xff1b; (3)ClientHttpRequestInterceptor接口释义如下&#xff1b; (4)int…

金和OA saveAsOtherFormatServlet接口任意文件上传漏洞复现 [附POC]

文章目录 金和OA saveAsOtherFormatServlet接口任意文件上传漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 金和OA saveAsOtherFormatServlet接口任意文件上传漏洞复现 [附POC] 0x01 前言 免责…

TIA博途中快速修改变量值的方法和技巧

TIA博途中快速修改变量值的方法和技巧 如下图所示,正常情况下选中该变量,然后右击选择“修改”—然后选择修改为0或1, 快速调试技巧: 如下图所示,鼠标选中该变量上方的“FALSE”,直接双击,系统会提示是否进行切换该变量的值, 点击“是”即可切换变量的值, 如下图所示,…

第三期丨酷雷曼无人机技能培训

第3期无人机技能提升培训 2023年9月15日&#xff0c;第三期酷雷曼合作商无人机技能提升培训圆满举办&#xff0c;数十位来自各地的合作商齐聚北京&#xff0c;在酷雷曼总部的帮助下学习无人机理论及实操知识&#xff0c;并成功取得权威认可的无人机飞行执照。本届培训会的新晋…

发明无止境:简单的螺丝钉也有复杂悠久的专利故事?

今天跟大家分享一个螺丝钉专利的故事。 我们从人类开始就有了连接和固定的需求。 最早期的时候&#xff0c;人类就想到了连接和固定最简单的办法就是用钉子把两个物体连接在一起&#xff0c;最早的时候用的是木钉或者楔子。用木钉和楔子的方式简单粗暴&#xff0c;成本也非常的…

【Linux】more命令使用

more 是linux的一个命令&#xff0c;类似cat命令&#xff0c;会以一页一页的显示&#xff0c;方便使用者逐页阅读。 More是一个过滤器&#xff0c;用于一次一屏地对文本进行分页。这个版本特别原始。用户应该意识到&#xff0c;less&#xff08;1&#xff09;提供了更多的模拟…

修改TV app卸载页面选中样式(GuidedStepFragment)

1.源码位置 packages\apps\PackageInstaller2.解决方案 1.继承Theme.Leanback.GuidedStep <style name"Theme.Settings.GuidedStep" parent"style/Theme.Leanback.GuidedStep"><item name"guidedStepBackground">color/settings_…

百度APP iOS端包体积50M优化实践(七)编译器优化

一. 前言 百度APP iOS端包体积优化系列文章的前六篇重点介绍了包体积优化整体方案、图片优化、资源优化、代码优化、无用类优化、HEIC图片优化实践和无用方法清理&#xff0c;图片优化是从无用图片、Asset Catalog和HEIC格式三个角度做深度优化&#xff1b;资源优化包括大资源…