TypechoJoeTheme

MetMan's Blog

网站页面
搜索到 80 篇与 的结果 ———只是一个默认分类
2023-11-11

MPI版本混用问题诊断

MPI版本混用问题诊断
MPI作为消息通信工业标准,在高性能计算中被广泛使用。MPI标准定义了库函数语法、语义,开发商根据标准开发实现具体的MPI软件版本,比如常见的MPICH、OpenMPI、Intel MPI、MVAPICH等。为了满足不同的需求,HPC计算平台一般会安装多个MPI实现版本,如果用户开发环境设置混乱,可能会导致MPI版本混用情况,从而引发意想不到的错误,包括编译时和运行时错误。比如笔者遇到如下情况:依赖库使用一种MPI实现编译,模式使用另一种MPI实现编译链接,在运行时出现很奇怪的错误,这种错误有时候不容易联想到是MPI混用导致的。下面总结MPI混用引起的编译时和运行时错误。代码示例示例项目有两个源代码文件:sum.f90和main.f90,其中主程序main(main.f90)依赖模块mod_sum(sum.f90)。!sum.f90 module mod_sum use mpi implicit none contains subroutine sum_global() implicit none integer :: id,total,ierr ...
2023年11月11日
162 阅读
0 评论
2023-11-04

利用SSH端口转发访问内部服务器

利用SSH端口转发访问内部服务器
上一篇介绍了“Windows 10开启OpenSSH服务”,下面我们可以试验通过Windows 10机器作为中转访问内部Linux服务器。利用的技术是SSH端口转发技术,也叫SSH隧道(tunnel)。SSH端口转发功能说明网上有很多介绍(关键词:端口转发、ssh隧道、内网穿透、跳板机等等),比如https://developer.aliyun.com/article/1035160这篇文件介绍的很详细。原理很简单,外部机器A不能直接访问内部服务器C,但有一台服务器B很特殊,它能和A、C都能建立连接,将B作为“中介”、“跳板”,从而实现A访问C的目的。SSH端口转发参数ssh -L localport:remotehost:remotehostport sshserver 说明: localport       本机开启的端口号 remotehost      最终连接机器的IP地址 remotehostport 最终连接机器的端口号 sshserver       转发机器的IP地址 选项: -f 后台启用 -N 不打开远程shell,处于等待状态(不加-N...
2023年11月04日
137 阅读
0 评论
2023-11-02

ADIOS2加速WRF IO

ADIOS2加速WRF IO
华为公司研究人员在arXiv发表了预印版论文《accelerating wrf i/o performance with adios2 and network-based streaming》,介绍了他们将下一代并行I/O库ADIOS2接入WRF模式,利用ADIOS2功能提升WRF I/O性能的工作。根据给出的测试结果,使用ADIOS2相比传统MPI-I/O方案获得十倍的性能提升。具体细节可阅读他们的​论文。ADIOS2功能介绍ADIOS2亮点功能有很多,包括支持多种数据格式,sub-files输出功能支持自研BP系列数据格式,不追求输出到一个文件中,而是通过I/O进程聚合器生成多个sub-files,减少传统MPI-I/O方法文件锁问题。I/O聚合器设置可调,默认一个节点设置一个,既利用节点内共享内存通信,又尽可能减少并发访问文件系统的进程数。Burst Buffer功能BP5格式支持node-local burst buffer支持,即每个进程输出其sub-files到本地文件系统(比如节点挂载的SSD盘),然后通过一个单独的后台线程将这些数据传到并行文件系统中。在线压缩功能...
2023年11月02日
187 阅读
0 评论
2023-10-29

Windows 10开启OpenSSH服务

Windows 10开启OpenSSH服务
没想到Windows也支持OpenSSH服务了。只要安装OpenSSH服务,就可以通过ssh命令远程登录Windows系统,可以探索很多用法。我的Win10默认是安装了OpenSSH客户端。下面介绍在Win10开启OpenSSH服务方法。Windows 设置->应用->可选功能,搜索“OpenSSH服务器”,点击安装开启SSHD服务以管理员身份运行Windows Powershell,开启sshd服务 PS C:\Windows\system32> net start sshd如果不以管理员身份运行以上命令,会报错:NativeCommandExitException: Program "net.exe" ended with non-zero exit code: 2.设置SSHD服务开机启动Win+R,输入services.msc,打开Win10服务设置,启动类型改为自动更改SSHD服务默认端口号 (可选,但建议)将C:\ProgramData\ssh目录(这是一个隐藏目录,直接在资源管理器输入路径)中sshd_config配置文件修改内容Port 1234...
2023年10月29日
210 阅读
0 评论
2023-10-27

Segmentation Faults错误排查解决思路

Segmentation Faults错误排查解决思路
前言Segmentation Faults可能是每一个programmer都回避不了的错误,国内甚至还有一个以它命名的网站(思否,segmentfault.com)。在诊断、解决这个常见程序错误时,我们可以借助编译器提供的功能快速定位。本文译自Intel® Developer Zone上文章Determining Root Cause of Segmentation Faults SIGSEGV or SIGBUS errors文中主要介绍通过Intel Fortran编译器提供的功能诊断解决Fortran程序段错误。问题当我运行由Intel Fortran编译器编译的代码时,在Linux平台得到SISGEGV错误提示(或Mac OS X平台SIGBUS)。这份代码在<XX编译器/平台>上运行多年没出问题。这是Intel编译器一个bug吗?运行环境:linux 或 Mac OS X根本原因:有许多可能原因。段错误(segmentation fault)(Mac OS X下是bus error)是一个有多种原因的通用错误。下面我们描述可能的原因并给出建议以避免段错误。可...
2023年10月27日
188 阅读
0 评论
2023-10-27

Arm向量指令集SVE

Arm向量指令集SVE
曾夺得超算Top 500第一名的日本超算FUGAKU(富岳)采用的是富士通的A64FX处理器,是世界第一个款实现Scalable Vector Extension (SVE)指令集的处理器。SVE是Arm v8.2-A AArch64指令集的下一代SIMD扩展,针对HPC场景的新向量指令集,相比于x86的AVX系列指令集有其独特的特色。Arm上一代指令集NeonSVE的上一代指令集是Neon(也叫ASIMD),主要面向多媒体、DSP等场景,使用32个寄存器v0-v31,浮点计算和SIMD计算共用这些寄存器,v寄存器宽度为64位或128位。但Neon针对HPC场景有很多不足之处,比如:不支持gather/scatter不连续内存访问patterndo i=1, N a(idx(i)) = a(idx(i)) * b(i) !indirect address enddo不支持mask寄存器do i=1,N if(a(i) > 1.0) then ! if branch b(i) = c(i) + 2.0 endif enddo寄存器位宽较小相...
2023年10月27日
814 阅读
0 评论
2023-10-24

Slurm解除作业内存限制方法

Slurm解除作业内存限制方法
问题有一个串行作业通过Slurm提交到计算节点计算,程序需要的内存量虽然没有超过计算节点的物理内存,但因为Slurm对作业分配的单个CPU核的内存进行了限制,导致程序进程因out-of-memory(OOM)被Slurm强制杀掉。我们通过以下程序来复现问题。该程序申请了一个1024*1024*1024*8字节大小(8GB)的双精度buffer数组,加上其它一些量的内存需求,该程序实际上需要>8GB的内存空间。program main implicit none integer,parameter :: NX = 1024 real*8,allocatable,dimension(:,:,:) :: buffer integer :: i,j,k allocate(buffer(NX,NX,NX)) buffer = 1.0d0 buffer = buffer + sqrt(buffer+3.0) print*, buffer(1,1,1) deallocate(buffer) end运行对应的Slurm作业脚本如下#!/usr/bin/...
2023年10月24日
441 阅读
0 评论
2023-10-21

代码比较合并工具DiffMerge

代码比较合并工具DiffMerge
笔者之前工作中主要使用商业版本的代码版本管理软件Perforce,它提供的p4v图形界面软件在diff&merge时很好用。后面要切换到Git版本管理软件,希望能有替代的图形工具能够实现diff&merge功能。在网上找了几款免费开源软件,但在内部HPC平台安装出现了问题(主要是图形依赖库问题),只有DiffMerge这款软件成功运行。So,就使用这款软件了。介绍DiffMerge是免费跨平台(Windows、OS X、Linux)的文件比较/合并工具。功能:Diff功能,高亮显示两个文件差异合并功能,可以显示三个文件差异(包括base版本),允许自动合并和手动合并目录差异比较软件下载地址:https://sourcegear.com/diffmerge/downloads.html服务器操作系统是64位的Red Hat 7.4 (Maipo)安装下载RPM软件包为:diffmerge-4.2.0.697.stable-1.x86_64.rpmroot用户安装> rpm -ivh diffmerge-4.2.0.697.stable-1.x86_64.rpm非root用户安...
2023年10月21日
193 阅读
0 评论

互动读者

标签云

最新回复

暂无回复

登录
X
用户名
密码