当前位置: 首页 > news >正文

缩短网址做钓鱼网站网站地图 设计

缩短网址做钓鱼网站,网站地图 设计,兴义网站网站建设,企业信息系统英文目录 一、实验目的 二、实验说明 三、实验过程 3.1 创建矩阵乘法源码 3.1.1 实验说明 3.1.2 实验步骤 3.2 创建卷积和池化操作源码 3.2.1 实验说明 3.2.2 实验步骤 3.3 创建Makefile文件并完成编译 3.4 建立主机配置文件与运行监测 四、实验结果与分析 4.1 矩阵乘法…目录 一、实验目的 二、实验说明 三、实验过程 3.1 创建矩阵乘法源码 3.1.1 实验说明 3.1.2 实验步骤 3.2 创建卷积和池化操作源码 3.2.1 实验说明 3.2.2 实验步骤 3.3 创建Makefile文件并完成编译 3.4 建立主机配置文件与运行监测 四、实验结果与分析 4.1 矩阵乘法实验 4.1.1 实验结果 4.1.2 结果分析 4.2 卷积实验 4.2 1 实验结果 4.2.2 结果分析 4.3 池化实验 4.3.1 实验结果 4.3.2 结果分析 五、实验思考与总结 5.1 实验思考 5.2 实验总结 END 先苦不一定后甜但先甜一定先甜 一、实验目的 1.1 掌握简单的程序编写以及编译运行集群 MPI 并行计算的配置以及加深对并行计算的了解。 1.2 实现在多台主机上编译运行矩阵乘法、卷积、池化的程序。 二、实验说明 华为鲲鹏云主机、openEuler 20.03 操作系统 安装 mpich-3.3.2.tar.gz 安装 OpenBLAS-0.3.8.tar.gz 四台主机名称及ip地址如下 122.9.37.146   zzh-hw-0001 122.9.43.213   zzh-hw-0002 116.63.11.160  zzh-hw-0003 116.63.9.62    zzh-hw-0004 三、实验过程 3.1 创建矩阵乘法源码 3.1.1 实验说明 随机生成大小为 1024 *1024 的矩阵作为输入实现对应的矩阵乘法矩阵乘法主要利用了矩阵划分方法每一个工作节点的进程负责某一行和某一列的乘法主节点则负责矩阵的划分以及分发到各个工作节点。 以下步骤均在 ecs-00-0001 上以 zhangsan 用户执行。 3.1.2 实验步骤 执行以下命令创建 matrix 目录存放该程序的所有文件, 并进入 matrix 目录四台主机都执行 mkdir /home/zhangsan/matrix cd /home/zhangsan/matrix 然后输入vim gemm.cpp创建矩阵乘法源码gemm.cpp部分代码如下 struct timeval start, stop; if (rank 0) { randMat(m, n, leftMat); randMat(n, k, rightMat); randMat(m, k, resMat); } gettimeofday(start, NULL); mpi_sgemm(m, n, k, leftMat, rightMat, resMat, rank, worldSize, blas); gettimeofday(stop, NULL); if (rank 0) { cout mpi matmul: (stop.tv_sec - start.tv_sec) * 1000.0 (stop.tv_usec - start.tv_usec) / 1000.0 ms endl; for (int i 0; i m; i) { for (int j 0; j k; j) if (int(resMat[i * k j]) ! n) { cout resMat[i * k j] error\n; exit(-1); } // cout resMat[i * k j] ; // cout endl; } } 3.2 创建卷积和池化操作源码 3.2.1 实验说明 实现卷积计算操作卷积核的大小为 4*4卷积算法种类很多在这里我们主要使用 img2col 算法来加速卷积算法img2col 算法原理为利用数据的重排布把卷积转化为矩阵乘法。 基于乘法的程序实现池化计算操作池化使用的 kernel 大小为 4*4池化操作与卷积操作类似更为简单只需取每一个感受野内的最大值。 以下步骤均在 zzh-00-0001 上以 zhangsan 用户执行 3.2.2 实验步骤 首先输入cd /home/zhangsan/matrix进行marix目录然后输入vim conv.cpp创建卷积操作源码代码输入结束后点击esc案件退出编辑模式输入:wq完成编辑并保存文件。 然后输入vim conv.cpp创建卷积操作源码输入所提供的源码代码输入结束后同上操作进行保存。部分代码如下所示 nt m atoi(argv[1]);int n atoi(argv[2]);int img2col atoi(argv[3]);int xKernel 3, yKernel 3;int xStep 1, yStep 1;float *Img, *Conv;struct timeval start, stop;if (rank 0) {randMat(m, n, Img);randMat(get_steps(xKernel, xStep, m), get_steps(yKernel, yStep, n),Conv);} 控制台输入ls -l可查看三个cpp文件是否创建保存成功。 3.3 创建Makefile文件并完成编译 首先四台主机都输入vim Makefile进人编辑模式然后输入如下内容 注需注意代码缩进 CC mpic CCFLAGS -O2 -fopenmp LDFLAGS -lopenblas all: gemm conv pooling gemm: gemm.cpp${CC} ${CCFLAGS} gemm.cpp -o gemm ${LDFLAGS} conv: conv.cpp${CC} ${CCFLAGS} conv.cpp -o conv ${LDFLAGS} pooling: pooling.cpp${CC} ${CCFLAGS} pooling.cpp -o pooling ${LDFLAGS} clean:rm gemm conv pooling 文件保存成功后输入“make”实现编译正确编译后会得到如下三个可执行文件预备实验四台主机均已经配置好OpenBLAS 环境gemm、conv、pooling。 3.4 建立主机配置文件与运行监测 首先四台主机输入vim /home/zhangsan/matrix/hostfile进入文件编辑输入如下内容 zzh-hw-0001:2 zzh-hw-0002:2 zzh-hw-0003:2 zzh-hw-0004:2 然后输入vim run.sh创建并编写run.sh脚本此处相比教程内容有所改动具体内容如下 app${1} if [ ${app} gemm ]; then mpirun --hostfile hostfile -np ${2} ./gemm 4024 4024 4024 ${3} fi if [ ${app} conv ]; then mpirun --hostfile hostfile -np ${2} ./conv 4096 4096 ${3} fi if [ ${app} pooling ]; then mpirun --hostfile hostfile -np ${2} ./pooling 1024 1024 fi 相较原内容改动之处在于矩阵乘法部分我修改了参数的输入形式将第四个参数设为命令行输入而不是run.sh文件中设定注原参数默认为0即不启用了img2col 操作其他内容不做过多改动。 四、实验结果与分析 4.1 矩阵乘法实验 4.1.1 实验结果 首先在其中一台主机输入如下命令执行对应程序运行结果如下。 bash run.sh gemm 8 0       bash run.sh gemm 8 1 bash run.sh gemm 7 0       bash run.sh gemm 7 1 bash run.sh gemm 6 0       bash run.sh gemm 6 1 bash run.sh gemm 5 0       bash run.sh gemm 5 1 bash run.sh gemm 4 0       bash run.sh gemm 4 1 bash run.sh gemm 3 0       bash run.sh gemm 3 1 将这部分运行结果进行可视化如下所示 原教程run.sh文件对应的结果处理机数量为1、2时的结果 4.1.2 结果分析 ①大致符合进程数越多时间越短符合并行计算的规律但存在比较特别的现象如进程数为5 的时候耗时34326ms进程数为4的时候类似而进程数为8的时候耗时却36745ms 原因分析 考虑负载均衡在某些情况下特定的数据分布和任务分配可能导致某些进程比其他进程执行更多的工作从而导致负载不均衡。如果进程数为5时正好使得任务在各个进程之间能够更均匀地分配那么可能会导致更好的性能表现。 考虑通信开销通信开销可能随着进程数量的增加而增加尤其是在进程数较多的情况下。当进程数为5时可能刚好达到了一个性能的平衡点使得通信开销相对较小从而导致更短的执行时间。 ②使用img2col 操作后程序的执行速度均得到明显的提高此情况下更符合进程数越多耗时越短的规律。 原因分析img2col 操作会将输入图像转换为一个更大的矩阵使得卷积操作可以转换为矩阵乘法从而可以利用矩阵乘法的高效实现来加速计算。但其会增加内存消耗。 4.2 卷积实验 4.2 1 实验结果 注受篇幅限制仅展示处理机数量为1、4、8的结果 conv 后面的 1-8 数字表示启动处理的进程数量。最后面的 0 表示 vanilla convolution kernel1 表示 img2col kernel。 4.2.2 结果分析 当进程数为1时整个计算可能在单个处理器上运行并且没有额外的通信开销因此耗时很短是正常的。当进程数增加到2时可能出现了额外的通信开销以及在数据分割和合并过程中产生的开销导致整体耗时增加。随着进程数继续增加可能出现了更好的并行效果减少了每个进程的工作量同时也减少了通信开销因此整体耗时下降。 4.3 池化实验 4.3.1 实验结果 将上述运行结果进行可视化 4.3.2 结果分析 ①处理机为1时耗时短这可能是因为当只有一个处理机时没有通信开销所有的计算都在单个处理机上完成因此耗时最短。 ②处理机为2时耗时变长这可能是由于几个原因造成的 通信开销当处理机数量增加时需要在处理机之间进行数据交换这会引入通信开销。 负载不均衡如果任务分配不均匀一些处理机可能需要等待其他处理机完成工作导致整体耗时增加。 资源争用两个处理机可能在争用某些共享资源如内存或I/O这可能导致效率降低。 ③随着处理机数量增加耗时继续下降或者产生波动这表明随着更多的处理机加入任务可以更有效地分配并且可能有更多的资源可供使用从而减少了等待时间和通信开销。但是这种下降并不是线性的因为随着处理机数量的增加通信开销和协调复杂性也可能增加因此会产生一定的波动。 五、实验思考与总结 5.1 实验思考 1.如何添加 C、C头文件以及库路径加入环境变量 在Linux系统中添加C或C头文件以及库文件到环境变量通常涉及如下步骤 ①确定头文件和库文件的位置 首先需要确定C或C头文件和库文件存放在哪个目录下。通常这些文件位于/usr/include、/usr/local/include或某个特定安装目录下。 ②编辑环境变量 环境变量C_INCLUDE_PATH和CPLUS_INCLUDE_PATH分别用于指定C和C的头文件路径而LD_LIBRARY_PATH用于指定库文件的路径。 ③使用export命令 可以通过export命令来设置环境变量。以想添加/usr/local/myapp/include到C和C的头文件路径为例可以使用以下命令 export C_INCLUDE_PATH$C_INCLUDE_PATH:/usr/local/myapp/include export CPLUS_INCLUDE_PATH$CPLUS_INCLUDE_PATH:/usr/local/myapp/include ④将环境变量添加到配置文件 为了使这些更改永久生效需要将上述export命令添加到你的shell配置文件中如.bashrc、.profile或.zshrc。打开配置文件添加上述命令然后保存并重新加载配置文件 source ~/.bashrc 通过这些步骤可以将C或C头文件和库文件的路径添加到环境变量中从而确保编译器和链接器能够找到它们。 2.矩阵乘法与卷积运算、池化运算有什么关系 ①矩阵乘法与卷积运算的关系 ·卷积核Convolutional Kernel在卷积神经网络CNN中卷积运算使用小的矩阵通常称为卷积核或滤波器来提取图像中的局部特征。这些卷积核本质上是权重矩阵。 ·局部特征提取卷积运算通过将卷积核与输入数据如图像的局部区域进行矩阵乘法来计算。这相当于在输入数据的局部区域内应用了一个线性变换。 ②矩阵乘法与池化运算的关系 ·池化窗口池化运算如最大池化或平均池化通常使用一个固定大小的窗口在输入数据上滑动这个窗口可以看作是一个矩阵。 ·降维池化运算的目的是降低数据的空间维度减少计算量并使特征检测更加鲁棒。池化窗口在输入数据上滑动时对窗口内的数据进行某种形式的矩阵乘法如求和或取最大值。 ·非线性变换与卷积运算不同池化运算通常不涉及权重学习而是一种确定性的非线性变换。然而池化窗口内的操作如求和或比较可以看作是一种特殊的矩阵乘法。 5.2 实验总结 本实验在先前实验所建立的并行计算环境基础上进一步展开成功实现了基础矩阵操作、卷积运算和池化运算。通过配置hostfile文件实验成功扩展至八节点的处理机集群旨在深入研究并行计算环境下的性能表现。 实验结果表明随着处理机数量的增加程序的并行化程度得到提升从而显著降低了整体的执行时间。然而值得注意的是尽管并行化带来了性能上的普遍提升但在某些特定情况下由于通信开销的增加其效率可能不如传统的串行计算。通过本次实验我不仅掌握了基础的程序编写、编译及运行技能还对集群MPI并行计算的配置有了深入的理解并加深了对并行计算原理及其应用的认识。 END 先苦不一定后甜但先甜一定先甜
http://www.hkea.cn/news/14347920/

相关文章:

  • 橘色网站模板网站编程语言哪个好
  • 上海网站建设咨询报价t型布局网站的样子
  • 小微宝安网站建设建设有限公司
  • 哪个网站企业邮箱最好网络营销方式单一
  • google 网站打不开天元建设集团有限公司张国庆
  • 网站合同wordpress文章如何匪类
  • 做音乐相册的网站汕头网站优化哪家好
  • 业务网站制作平面设计一般学多久
  • 国外网站备案查询梦幻西游官方网站
  • 潍坊有哪些网站事件营销的经典案例
  • 泸州市规划建设局网站龙华网站建设洛阳 网站建设
  • 新网站友链仿站在线
  • 做网站一定要认证吗建e网卧室设计效果图
  • 网站建设有关的职位asp做的网站怎么运行
  • 注册网站对接的短信平台活动策划模板
  • 河北建设信息平台网站南做网站
  • flash网站源码做动漫的游戏 迅雷下载网站
  • 烟台网站建设加盟新乡手机网站建设服务
  • 长沙企业网站建设品牌如何确认建设银行网站不是假的
  • 游戏网站搭建需要多少钱wordpress网页慢
  • 网站开发角色分类国内做的比较简洁的网站
  • 青海省高等级公路建设管理局网站网站开发工作职责
  • 龙岩网站建设teams熊掌号通用企业网站织梦模板(红绿蓝三色)
  • 中国网站建设市场规模北京网站建设app
  • 厦门 网站优化手机头像制作软件app
  • 黄冈做网站技术支持的网站建设的项目总结
  • 建设一个网站平台需要哪些技术员光谷网站制作
  • 网站建设方案的含义企业管理定制软件
  • 做网站用什么服务器会比较好wap网站建设方案 pdf
  • 静态网站需要服务器吗网站开发实例社区