【超算/先进计算学习】日报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动词可译为是,有时译为成为,有时则没有具体意…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
