TypechoJoeTheme

MetMan's Blog

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

美国能源部E级超算

美国能源部E级超算
最新一期TOP500超算榜单(202311)发布,相比于6月份榜单,排名第一的仍是美国能源部(DOE)的橡树岭国家实验室(ORNL)的Frontier,但第2名变成DOE的Argonne国家实验室的Aurora,第3名是微软的Eagle。原先第2名的Fugaku排名降至第4。Frontier目前仍是唯一的E级超算。Aurora超算设计的计算性能为2 EFlop/s,但目前没有完成整体建设,只测试了一半系统,计算能力为585.34 PFlop/s。根据“NERSC GPU for Science Day"报告整理了美国能源部旗下三个机构的E级超算建设情况。三家E级超算都是CPU+GPU异构超算,但GPU来自不同的厂商,包括NVIDIA/AMD/Intel。下面是DOE的E级超算路线图。不同厂商的GPU支持不同的编程模型,这给应用可移植性带来了巨大挑战。下面介绍三家E级超算情况。Frontier (ORNL)Frontier计算节点组成:1颗CPU + 4颗GPU。Aurora (ANL)Argonne Leadership Computing Facility(ALCF)Auror...
2024年05月21日
107 阅读
0 评论
2024-05-21

BASH脚本获得自身路径方法

BASH脚本获得自身路径方法
Shell中有一个命令叫pwd(记忆:Print Working Directory的单词首字母)可以获得当前工作目录。如果该脚本在其所在目录下执行,使用pwd命令可以得到脚本的当前目录。    # /home/user/scripts/getmydir.sh     MYDIR=`pwd`     echo $MYDIR 在/home/user/scripts目录下执行./getmydir.sh得到脚本所在的绝对路径。问题:但如果该脚本在其他目录下执行,比如在/home/user下执行scripts/getmydir.sh得到的路径却是/home/user/。 原因在于pwd命令返回路径与脚本执行时的路径有关。解决方法可以看出pwd命令获取脚本自身路径有一定限制,那么如何更加通用的获取执行脚本所在路径?思路:我们需要先将工作目录切换到脚本所在目录,通过pwd获取脚本目录,同时保证切换目录操作不影响shell当前目录。BASH有两个内置变量可以帮忙:FUNCNAME  bash内置变量,包含目前执行调用堆栈中所有shell函数名称的数组变量。FUNCNAME[0]是当前...
2024年05月21日
123 阅读
0 评论
2024-04-19

Linux canonical pathname概念

Linux canonical pathname概念
POSIX定义了绝对/相对路径名,还有一种canonical pathname,它不是POSIX定义的,但在Linux命令介绍中常用到这个概念。下面介绍三种文件名概念。absolute pathname (绝对路径名)以单个或两个以上/字符开头的路径名。 比如/root /../usr/bin //opt/intelrelative pathname不以/字符开头的路径名。比如:foo ../data/a.txtCanonical pathname路径名中每个部分都是实际存在的目录或文件(不是符号链接),不包括.和..,并且其斜杠不重复。这意味着对于同一个文件系统对象,其canonical路径名是唯一的,从而是可比较的。假如以下路径名是canonical pathname,/home/user/data/a.txt # 路径中每一部分都是真实存在的如果cd ~; ln -sf /home/user/data mydata,那么下面几个路径名都不是canonical pathname。/home/user/mydata/b.txt /home/other/../user/d...
2024年04月19日
116 阅读
0 评论
2024-04-19

Shell if和case语法

Shell if和case语法
在学习完前面Shell退出状态和test命令内容后,再来学习if语句就简单了。if语法如下if pipeline then statements1 [ elif pipeline #方括号表示可选部分 then statements2 ] [ else statements3 ] fiif结构中使用pipeline,可以是简单的命令组合test命令管道命令根据命令的退出状态决定if执行分支。示例:if [ -f oldfile ] # 如果存在文件oldfile then mv oldfile newfile fiif语句退出状态整个if/fi结构退出状态是真正执行的语句statements最后一个命令执行退出状态。如果没有命令执行,退出状态为0.Shell脚本中可以使用:冒号作为占位命令,实际不做任何事。case语句判断一个变量可能是多个值情况时,可以使用if/elif/elif/../fi结构来完成,但也可以使用case语句实现,更加简单明了。题外话:在C语言中switch case语句一般比if语句效率更高,编译器可能会使用表...
2024年04月19日
92 阅读
0 评论
2024-04-19

Shell循环

Shell循环
每一种编程语言中循环结构都是一个重要的语法,shell也不例外。shell中循环结构包括:for循环、while循环以及until循环。这里只介绍常用的for循环和while循环。for循环for循环用于对一个对象列表中每个元素重复执行操作,其中对象列表可以是数值列表、文件名列表或者命令行参数列表等。for循环语法for var in 对象列表 do statements done可以使用;将多行语句写到一行:for var in 对象列表; do statements done 或者 for var in 对象列表; do statements; doneshell还支持C语言风格的for循环for ((exp1; exp2; exp3)) do statements done常见用法:数值列表for i in 1 2 3 4 5 6 # 循环6次 do echo $i done可以使用花括号展开生成数值列表for i in {1..6} do echo $i done还可以使用seq生成数值列表for i in `...
2024年04月19日
103 阅读
0 评论
2024-02-16

frp设置Windows远程桌面连接

frp设置Windows远程桌面连接
Windowns远程桌面RDP访问客户端frpc配置方法与以上ssh访问设置基本一致,区别在于其中localPort需要设为3389,因为Microsoft RDP(Remote Desktop)协议是通过TCP,其默认端口是3389.[[proxies]] name = "rdp" type = "tcp" localIP = "127.0.0.1" localPort = 3389 remotePort = 7200为了能够在外部机器使用远程连接访问,还需要确保:内部机器的远程登录权限打开在系统->远程桌面中设置以上设置的remotePort端口号7200在公网服务器中防火墙允许TCP访问RDP登录在Windows搜索框中搜索“远程桌面连接”,点击打开,在“计算机”框中输入公网服务器IP:remotePort,这里远程端口号是7200。输入内网机器账号和密码
2024年02月16日
188 阅读
0 评论
2024-02-16

frp工具使用介绍

frp工具使用介绍
简介frp是一个非常有名的内网穿透工具,功能就不多介绍了。frp项目地址:https://github.com/fatedier/frp 本次测试使用以下版本和机器。使用0.52.3frps服务器端为Linux(centos)frpc客户端为WindowsLinux服务端配置下载软件包并解压缩wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz tar -zxvf frp_0.52.3_linux_amd64.tar.gz cd frp_0.52.3_linux_amd64 配置服务器端文件frps.toml# frps.toml bindPort = 7000 # frps与frpc通信端口 auth.method = "token" # 开启token验证方式 auth.token = "xxxxxxx" # 一长串字符串,frps.toml与frpc.toml要一致配置...
2024年02月16日
161 阅读
0 评论
2024-02-16

Shell变量(二)

Shell变量(二)
参数展开参数展开(parameter expansion)是shell提供变量值在脚本程序中使用的过程。缺省情况,未定义的变量会展开成null(空的)字符串。有两种方式引用变量值:$var${var}注:不要和命令替换操作$()搞混。展开运算符分为替换运算符和模式匹配运算符。替换运算符替换运算符用于测试变量是否存在,且在某种情况下允许默认值(缺省值)的替换。比如,当脚本需要根据用户输入位置参数来决定脚本执行行为时,为了防止用户执行时忘了在命令行上输入参数导致脚本运行出错,可以使用替换运算符得到一个缺省值备用。运算符替换用途${varname:-value}如果varname存在且非null,则返回其值;否则,返回value如果变量未定义,返回默认值${varname:=value}如果varname存在且非null,则返回varname的值;否则,设置varname值为value,并返回其值如果变量未定义,则设置变量为默认值${varname:?message}如果varname存在且非null,则返回它的值;否则,显示varname:message,并退出当前的命令或脚本为了捕...
2024年02月16日
152 阅读
0 评论

互动读者

标签云

最新回复

暂无回复

登录
X
用户名
密码