【超算/先进计算学习】日报8
目录
- 今日已完成任务列表
- 遇到的问题及解决方案
- 任务完成详细笔记
- 阶段一
- 阶段二
- 阶段三
- 阶段四
- 对自己的表现是否满意
- 简述下次计划
- 其他反馈
今日已完成任务列表
超算/高性能计算总结
遇到的问题及解决方案
无
任务完成详细笔记
阶段一
在学习的第一阶段,我们首先对需要优化的程序——Darknet框架进行了了解,其具有灵活性高、结构明晰、安装简单方便等特点;之后对超级计算机的概念和体系结构进行了了解,同时也了解了超级计算机并行工作的基本原理;最后对Linux操作系统的基本指令进行了熟悉
lscpu 显示cpu相关信息
free 显示内存的使用情况
top 实时查看系统的运行情况
ls 查看指定目录下所有文件
chmod [para] [filename] 更改文件权限
mkdir [directoryName] 目录的创建
rm [-rf] [filename or directoryName] 目录以及文件的删除
pwd 查看当前的目录
cd [absolutePath]
cd … 上级目录
cd . 当前目录
cd - 上次访问目录
cd ~ 用户根目录
touch [filename] 文件的创建
mv [filename] [object_directiryName] 文件/目录的移动
mv [old_filename] [new_filename] 文件/目录的重命名
cp [source_filename] [dest_filename] 文件/目录的拷贝
find [directory] -name [filename] 搜索文件名中包含某特定字符串的文件
grep “[string]” -r [filename] 文件字符搜索
cat [file_name] 显示文件全部内容
head [file_name] 显示文件开头
head -n [line_num] [file_name] 显示文件开头(指定行数)
tail [file_name] 显示文件结尾
tail -n [line_num] [file_name] 显示文件结尾(指定行数)
tail -f [file_name] 动态刷新文件末尾
more [file_name] 显示文件结尾
env 用来显示环境变量, 显示当前用户的环境变量
export 用来设置环境变量
echo 用来查看指定变量内容
PATH 当前shell命令、系统程序、应用程序以及自定义可执行文件的路径
LD_LIBRARY_PATH 可执行共享库(动态库)的目录路径
阶段二
这一阶段主要对Linux常用的命令、基础性能分析工具进行学习
vim
普通模式(:)
:1 快速跳转到文件的第一行
:$ 快速跳转到文件最后一行
:w 保存
:q 退出
:wq 保存文件并退出
:q! 强制退出,不保存修改
s,:[addr]s/源字符串/目的字符串/[option]
全局替换:
%s/源字符串/目的字符串/g
2,10s/源字符串/目的字符串/g
插入模式(i)
插入模式下进行编辑
可视模式(v)
y 复制光标所选定文段
p 在光标所在行出粘贴
x 删除光标所选文段
GCC
分步编译和链接
gcc -o [obj_file] -c [src_file] -I [include_path]
gcc -o [bin] [all_obj_files] -L [library_path] -l [library_file_name]
直接编译出二进制文件
gcc -o [bin] [all_src_files] -I [include_path] -L [library_path] -l [library_file_name]
Makeu与Makefile

slurm
yhinfo / yhi:资源信息查询
yhalloc:资源申请 (强占)
yhrun:作业提交 (自动申请资源)
yhqueen / yhq:作业队列查询
yhcancel:作业取消
yhbatch:批处理作业 (输出被保存到 slurm-jobID.out 下)
yhacct:作业历史查询
GDB
l 展示代码
例如:展示第 10 行,l 10 会将其上下 5 行均展示
b [行号] 在指定行处打断点
r 运行程序
p [变量名称] 查看代码中指定变量的值
c 继续执行程序
q 退出程序
info break 查看所有断点信息
disable [断点编号] 禁用指定的断点
enable [断点编号] 恢复指定的断点
clear [断点编号] 删除指定断点
watch [变量名称] 跟踪指定变量
阶段三
这一阶段主要对高性能算法 (不同矩阵的存储格式) 有了初次的了解;同时对常用的性能分析工具有了一定的熟悉;最后对传统性能优化技术进行了学习
矩阵存储与SpMV算法
COO格式

CSR格式

DIA格式

gprof
- 编译代码文件
g++ -pg main.cpp -o main- 执行可执行文件
yhrun -p thcp1 -N 1 -n 1 main- 对生成的 gmon.out 文件进行转换 (二进制转为普通文本文件)
gprof main gmon.out>output.txt
传统性能优化技术
循环合并
for (i=0; i<N; i++)x[i] = a[i] + b[i]
for (i=0; i<N; i++)y[i] = a[i] - b[i]
for (i=0; i<N; i++)
{x[i] = a[i] + b[i];y[i] = a[i] - b[i];
}
循环展开
for (i=0; i<N; i++)
{A[i] = A[i] + B[i];
}
for (i=0; i<N; i+=4)
{A[i] = A[i] + B[i];A[i+1] = A[i+1] + B[i+1];A[i+2] = A[i+2] + B[i+2];A[i+3] = A[i+3] + B[i+3];
}
循环交换
for (j=0; j<N; j++)for (k=0; k<N; k++)for (i=0; i<N; i++)A[i][j] = a[i][j] + B[i][k] * C[k][j];
for (j=0; j<N; j++)for (i=0; i<N; i++)for (k=0; k<N; k++)A[i][j] = A[i][j] + B[i][k] * C[k][j];
循环分布
for (i=0; i<N; i++)
{A[i] = i;B[i] = 2 + B[i];C[i] = 3 + C[i-1];
}
for (i=0; i<N; i++)
{A[i] = i;B[i] = 2 + B[i];
}
for (i=0; i<N; i++)C[i] = 3 + C[i-1];
循环不变量外提
for (i=0; i<N; i++)for (j=0; j<M; j++)U[i] = U[i] + W[i] * W[i] * D[j] / (dt * dt);
T1 = dt * dt;
for (i=0; i<N; i++)
{T2 = W[i] * W[i];for (j=0; j<M; j++)U[i] = U[i] + T2 * D[j]/T1;
}
循环分块
for (i=0; i<N; i++)for (j=0; j<M; j++)A[i] = A[i] + B[j]
for (j=0; j<M; j+=T)for (i=0; i<N; i++)for(jj=0; jj<T; jj++)A[i] = A[i] + B[j+jj]
循环分裂
for (i=0; i<N; i++)vec[i] = vec[i] + vec[M];
for (i=0; i<M; i++)vec[i] = vec[i] + vec[M];
for (i=M; i<N; i++)vec[i] = vec[i] + vec[M];
阶段四
该阶段主要利用之前阶段所学内容对Darknet程序进行优化
- 使用make对程序进行编译 (-pg选项*)
- 运行可执行文件 (生成gmon.out文件)
- 利用 gprof 工具将gmon.out文件转为.txt文件
- 分析文件内容,找出热点函数
- 使用优化技术对热点函数进行优化
对自己的表现是否满意
对各个阶段的内容进行了总结,虽然时间不算长,但收获还是值得记录的!
简述下次计划
完结撒花!
其他反馈
无

相关文章:
【超算/先进计算学习】日报8
目录 今日已完成任务列表遇到的问题及解决方案任务完成详细笔记阶段一阶段二阶段三阶段四 对自己的表现是否满意简述下次计划其他反馈 今日已完成任务列表 超算/高性能计算总结 遇到的问题及解决方案 无 任务完成详细笔记 阶段一 在学习的第一阶段,我们首先对需要…...
《LearnUE——基础指南:上篇—2》——GamePlay架构之Level和World
目录 听说世界是由多个Level组成的 1.2.1 引言 1.2.2 建造大陆(ULevel) 1.2.3构建世界(World) 1.2.4总结 听说世界是由多个Level组成的 1.2.1 引言 上小节谈到Actor和Component的关系,UE利用Actor的概念组成了世…...
IDEA部署tomcat项目
文章目录 只是部署一下看到这里即可war和war exploded的区别warwar exploded update的动作update resourcesupdate classes and resourcesredeployrestart server 解决了拿到了一个tomcat项目后如何将它部署到IDEA里面的问题。 file->open 选中pom.xml并open as project …...
IAM角色
Identity-based policy,它关联到特定的User/Role/Group上,指定这些主体能对哪些资源进行怎样的操作 Resource-based policy,它关联到具体的AWS资源上,指定哪些主体可以对这个资源做怎样的操作 aws受信任关系视为aws服务可以实现&a…...
【VAR | 时间序列】以美国 GDP 和通货膨胀数据为例的VAR模型简单实战(含Python源代码)
以美国 GDP 和通货膨胀数据为例: 1. 数据集 下载数据我们需要从 FRED 数据库下载美国 GDP 和通货膨胀数据,并将它们存储在 CSV 文件中。可以在 FRED 网站(https://fred.stlouisfed.org/)搜索并下载需要的数据。在这里࿰…...
常用的设计模式之二(行为型模式)
文章目录 观察者模式模板模式 观察者模式 观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有观察者都会收到通知并进行相应的处理。 观察者…...
MYSQL基本操作(增删改查)
数据库的列类型 int:整型 用于定义整数类型的数据 float:单精度浮点4字节32位 准确表示到小数点后六位 double:双精度浮点8字节64位 char:固定长度的字符类 用于定义字符类型数据&…...
双周赛103(模拟、网格图BFS、树状数组)
文章目录 双周赛103[6406. K 个元素的最大和](https://leetcode.cn/problems/maximum-sum-with-exactly-k-elements/)模拟 [6405. 找到两个数组的前缀公共数组](https://leetcode.cn/problems/find-the-prefix-common-array-of-two-arrays/)模拟 [6403. 网格图中鱼的最大数目](…...
【数据结构】二叉树(详细)
二叉树 1.树1.1定义1.2基本术语1.3树形结构和线性结构1.4树的存储结构1.4.1双亲表示法1.4.2孩子兄弟表示法 2.二叉树2.1定义2.2特殊二叉树2.3性质2.4存储结构2.4.1顺序存储2.4.2链式存储结构 3.二叉树的基本操作3.1前序遍历(先序遍历)3.2中序遍历3.3后序…...
蓝牙耳机哪款性价比高一些?2023年性价比最高的蓝牙耳机推荐
随着科技的进步,蓝牙耳机已然成为我们生活中的一部分,无论是通勤、追剧、运动或者玩游戏,大都会用到蓝牙耳机。那么,哪款蓝牙耳机的性价比高一些?相信大多数人在选择产品的时候,都会看性价比。接下来&#…...
等保2.0存在的问题
等保制度和技术要求 国家信息安全等级保护制度(二级)相关要求包含技术要求和管理要求,技术要求包含:物理安全、网络安全、主机安全、应用安全及数据安全及备份恢复;管理要求包含:安全管理机构、安全管理制度、人员安全管理、系统建设管理、系统运维管理。 一、 技术要求 …...
国民技术N32G430开发笔记(9)- IAP升级 Bootloader的制作
IAP升级 Bootloader的制作 1、上节提到Flash的分区,0x8000000-0x8004000为Boot分区,我们的bootloader就烧录到此分区。 Bootloader很简单,新建一个普通的工程, 也不用初始化外部设备,开机后,直接跳转到 A…...
如何使用depcheck检查vue和react的依赖,以后不用把时间浪费在依赖问题上了
当我们在开发 JavaScript 项目时,会引入各种依赖库。但是有些依赖库可能只用到了部分功能,或者已经不再需要了,但是却一直被保留在项目中。 这些未使用的依赖库会占据项目的空间,增加项目的复杂度,影响项目的性能。为…...
使用Python和机器学习进行文本情感分类
使用Python和机器学习进行文本情感分类 1. 效果图2. 原理3. 源码参考这篇博客将介绍如何使用Python进行机器学习的文本情感分类(Text Emotions Classification)。 1. 效果图 训练文本及情感分类前5条数据如下: 训练过程及测试文本情感分类效果图如下: 可以看到 对文本“S…...
QML路径视图(The PathView)
路径视图(PathView)非常强大,但也非常复杂,这个视图由QtQuick提供。它创建了一个可以让子项沿着任意路径移动的视图。沿着相同的路径,使用缩放(scale),透明(opacity&…...
5月4号软件资讯更新合集.....
🚀 Layui 2.8.2 发布 更新日志 table 修复 autoSort: true 时,更改 table.cache 未同步到 data 属性的问题 修复 多级表头存在 hide 表头属性时,执行完整重载可能出现的错位问题 修复 未开启 page 属性时底边框缺失问题 优化 打印内容中…...
基于 Rainbond 的混合云管理解决方案
内容概要:文章探讨了混合云场景中的难点、要点,以及Rainbond平台在跨云平台的混合云管理方面的解决方案。包括通过通过统一控制台对多集群中的容器进行编排和管理,实现了对混合云中应用的一致性管理。文章还介绍了Rainbond平台在混合云环境下…...
加强网络风险生命周期
当今业务环境中云原生应用程序的激增帮助组织简化了运营。 企业现在可以近乎实时地监控数据、与客户互动并分享见解,帮助他们克服曾经阻碍生产力的低效率问题。 然而,使用云也极大地扩展了企业可利用的攻击面。 CSPM、CWPP、CNAPP、SAST、SCA、IaC、D…...
Java——二叉树的深度
题目链接 牛客网在线oj题——二叉树的深度 题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度,根节点的深度视为 1 。 数据范围&am…...
一般现在时(二)
一般现在时(二) 1.什么叫实义动词? 实义动词是指表示有具体意思的动词,也叫行为动词。 例如:like(喜欢) eat(吃) live(居住) have(有) run(跑)等等。 实义动词占英语中动词的绝大多数 🔖我们已学过的be动词可译为是,有时译为成为,有时则没有具体意…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
