- 博客(5)
- 收藏
- 关注
原创 MPI环境安装、配置SSH免密登录
如果执行中用到的-n number,number中的前2个会在node1中执行,接下来的会在node2中执行。mpi的前10个rank执行hello程序,接下来的20个rank执行world程序。编辑hostfile文件,确认每个机器发起进程的上限。在普通用户模式下输入vim ~/bashrc。如果输出了两个主机名,则MPI环境配置成功。其中4可以根据实际需要修改。在node01机器上输入命令。然后输入对应密码,再输入。
2023-05-10 18:17:14
1981
原创 利用AVX、OpenMP进行矩阵乘加速
在存储访问结构中,行优先存储访问速度是优于列优先的,但B矩阵的访问是以列优先读取的,所以可以考虑将B矩阵存储改为行优先存储。速度得到了很大提升,但是可以看到,我们数据结果出现了误差,这是由于数据量比较大,我们只用的是float类型,造成了。运算方法:A矩阵中每一行中的数字乘以B矩阵中对应的的每一列的数字,把结果相加起来。这样的代码最后计算结果是正确的,但是数据量较大的时候,运算速度就会非常缓慢。此时速度还是不够理想,现在就使用OpenMP进行优化了,这样计算就是A的每一行与其B的对应行相乘并相加。
2023-05-10 13:10:12
663
原创 OpenMP学习
刚开始每个线程会分配到比较大的迭代块,后来分配到的迭代块逐渐递减,没有指定size就会降到1,否则降到size。如果没有nowait子句,那么其他线程将会在single制导指令结束的隐式同步点等待。single制导指令所包含的代码段只有一个线程执行,别的线程跳过。表示接下来由花括号括起来的区域将创建多个线程并行执行。有nowait子句其他线程将跳过等待往下执行。的形式,注意int!将被分配给不同的线程去执行。先到先得的方式进行任务分配。来控制使用的线程数目。用sections把。
2023-05-10 10:34:42
480
转载 AVX/AVX2、内存对齐学习
AVX指令函数查询——Linux系统判断自己电脑CPU是否支持AVX和AVX2,可以用lscpu命令查询Windows系统可以用CPU-Z工具进行查询cpp文件需要加上头文件在编译时需要添加后缀-mavx -mavx2。
2023-05-08 12:56:48
3293
原创 MPI学习
的值是输出缓冲区中用于打包的起始地址,打包后它的值根据打包消息的大小来增加,出口参数position的值是被打包的消息占用的输出缓冲区后面的第一个地址。的初始值是输出缓冲区中被打包消息占用的起始地址,解包后它的值根据打包消息的大小来增加,因此出口参数position的值是输出缓冲区中被解包的消息占用空间后面的第一个地址。将已有进程组group中的n个进程ranks[0],…返回进程组group1中的n个进程由rank1指定 在 进程组group中对应的编号,相应的编号放在rank2中。
2023-04-24 10:54:41
929
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人