TypechoJoeTheme

MetMan's Blog

网站页面
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日
221 阅读
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日
964 阅读
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日
618 阅读
1 评论
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日
210 阅读
0 评论
2023-10-21

Linux pkg-config介绍

Linux pkg-config介绍
今天安装一个软件时,执行配置命令configure报错,发现是没有找到依赖的库信息,而其寻找依赖库信息是通过pkg-config工具实现的,那么pkg-config是什么?简介pkg-config实际上是一个向用户提供相应库的路径、版本号、头文件、链接库等信息的工具。许多大型软件项目构建时需要指定依赖的第三方库的头文件和库文件位置,如果头文件和库文件数量比较多,手动写很麻烦,pkg-config工具可以减轻工作量,而且不用指定实际路径,灵活配置,比如gcc main.c `pkg-config --cflags --libs gtk+-2.0` -o main # --cflags 指定头文件 # --libs 指定库文件上面命令中pkg-config作用就是将gtk头文件路径和库文件列出来。不用手动添加-I、-L参数路径了。pkg-config -h pkg-config --list-all   #列出已知的pkg-config管理的库 pkg-config --libs zlib  #查看zlib库链接信息那么pkg-config信息来自哪里?pc文件实际上它通过查询.pc...
2023年10月21日
272 阅读
0 评论
2023-10-21

离线服务器开发环境配置思路

离线服务器开发环境配置思路
本人使用的高性能服务器正在升级迁移,趁此机会重新配置开发环境从而提高开发效率。由于服务器不能连接互联网,使得安装软件、vim插件比较麻烦,但通过以下思路可以很快的配置好开发环境。目前我的配置还是个半成品,以下只是简单说下思路。Neovim本人主要使用的代码编辑器是VIM,调研了下最近比较受欢迎的Neovim,感觉非常好用,基于Lua语法的配置文件更加易读易懂,配合Lazy.nvim插件管理器妥妥的现代化IDE。因此,新编辑器定为Neovim + Lazy.nvim组合,但Lazy插件安装管理需要联网。解决方法是通过搭建一台与高性能服务器环境相同的镜像服务器/虚拟机。在镜像服务器上安装Neovim,使用Lazy.nvim安装需要的插件。某些插件比如LSP需要nodejs等依赖环境,通过conda-pack打包依赖环境。最后将以下几个目录打包拷贝到离线服务器解压缩即可。~/.config/nvim~/.local/share/nvimconda-pack虚拟环境压缩包Python包python有些包依赖环境复杂,如果不通过conda或者pip联网安装,手动安装很麻烦。通过与上面类似的...
2023年10月21日
183 阅读
0 评论
2023-10-21

气象超算跟踪系列(六)KMA's HPC

气象超算跟踪系列(六)KMA's HPC
今天聊一聊韩国气象厅(KMA)的超算,但不知为何想到了一部韩剧《气象厅的人们:社内恋爱残酷史篇》,也许是因为很少以天气预报员为主角的电视剧吧。回归正题~KMA下属的NCMS(National Center for Meteorological Supercomputer)负责管理气象超算设施。KMA超算已经迭代到第五代(见下表)。最新超算由联想提供,基于Intel Xeon Scalable处理器的联想ThinkSystem SD650 V2和SD530服务器构建。新超算包括两个相同的4000节点系统,分别名为Maru和Guru,共有8064个联想ThinkSystem SD650 V2和426个联想ThinkSystem SD530计算节点。节点由Intel Xeon Platinum 8386Q CPU组成,1颗CPU有36核(推测一个节点有两颗CPU)。高性能数据存储方案采用IBM Spectrum Scale (DSS-G260) 阵列。新超算已于2021年10月运行。下表是KMA目前业务运行的模式情况。其中全球模式运行两套,一套是2010年引进的UKMO的Unified...
2023年10月21日
250 阅读
0 评论
2023-10-21

气象超算跟踪系列(五)UKMO's HPC

气象超算跟踪系列(五)UKMO's HPC
当初看到微软(Microsoft)中标英国气象局(UKMO)超算合同,说实话我是一脸懵的。微软虽然是云计算一方豪强,但啥时候掺和进传统高性能计算这个小众领域的?据网上查到的消息,微软中标UKMO一份长达10年的合同,价值10亿英镑,合同约定将提供60 Petaflops计算能力。新系统将安装在微软Azure云计算平台中,并将集成HPE Cray EX超级计算机,以及微软高性能活动数据存档系统和其他Azure云技术,以及端到端托管服务。UKMO预计,该系统将取代Cray HPC系统,将使该组织的计算能力提高6倍,并将成为世界上25台最强大的超级计算机之一。新超算使用四个子系统,增加使用弹性、故障备份。四台系统首次异地托管。具体的硬件配置细节还不清楚。UKMO对选择微软作为合作伙伴有如下考虑:超算建设周期长,从提出需求、撰写标书、招标采购、搭建HPC、测试运行一系列流程走下来,可能需要几年时间,而高性能计算硬件更新迭代非常快。UKMO介绍它们平均需要大约两年的时间才能购买新的超级计算机,然后再花一年时间才能投入运行。UKMO希望改变这种模式,使其在采购方面花费时间更少,使用时间更多。...
2023年10月21日
247 阅读
0 评论
登录
X
用户名
密码