【超算/先进计算学习】日报8

news2024/12/23 19:12:40

目录

  • 今日已完成任务列表
  • 遇到的问题及解决方案
  • 任务完成详细笔记
    • 阶段一
    • 阶段二
    • 阶段三
    • 阶段四
  • 对自己的表现是否满意
  • 简述下次计划
  • 其他反馈

今日已完成任务列表


超算/高性能计算总结

遇到的问题及解决方案


任务完成详细笔记


阶段一

在学习的第一阶段,我们首先对需要优化的程序——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文件
  • 分析文件内容,找出热点函数
  • 使用优化技术对热点函数进行优化

对自己的表现是否满意


对各个阶段的内容进行了总结,虽然时间不算长,但收获还是值得记录的!

简述下次计划


完结撒花!

其他反馈



请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/473034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT+智能家居在AWE引热议 OpenCPU成家电产业智能化降本提速引擎

作为家电行业的风向标和全球三大消费电子展之一&#xff0c;4月27日-30日&#xff0c;以“智科技、创未来”为主题的AWE 2023在上海新国际博览中心举行&#xff0c;本届展会展现了科技、场景等创新成果&#xff0c;为我们揭示家电与消费电子的发展方向。今年展馆规模扩大至14个…

【pytest里的参数化:看几个例子就够了!】

参数化多个参数&#xff1a;可以使用多个参数来参数化测试。例如&#xff1a; import pytestpytest.mark.parametrize("x, y, expected", [(1, 2, 3),(3, 4, 7),(5, 6, 11), ]) def test_addition(x, y, expected):assert x y expected参数化列表&#xff1a;可以…

轻叶H5营销单页,让你的营销更加清爽高效

网络营销就是营销企业品牌形象、产品信息发布、优惠促销活动&#xff0c;最终目的就是争抢流量和客户。现在为了吸引流量&#xff0c;各种营销方式、广告玩法层出不穷&#xff0c;成本投入大&#xff0c;带来的转化不一定好。今天&#xff0c;我们要来讲一讲H5营销单页。 H5营销…

项目管理软件project下载安装配置图文教程

目录 前言 配置安装过程 总结 前言 Project是一种计划、组织和管理任务的工具&#xff0c;通常用于团队协作和项目管理。它可以帮助用户创建任务列表、分配任务、设置截止日期、跟踪进度、分析数据等。Project还可以生成各种报告&#xff0c;如甘特图、资源使用情况、任务分…

稀疏矩阵存储格式总结

稀疏矩阵是指矩阵中的元素大部分是0的矩阵&#xff0c;实际问题中大规模矩阵基本上都是稀疏矩阵&#xff0c;很多稀疏度在90%甚至99%以上,大规模的稀疏造成了大量无效数据的计算和存储资源占用&#xff0c;也无法有效的载入有限内存计算。因此我们需要有高效的稀疏矩阵存储格式…

SpringCloud:ElasticSearch之数据同步

elasticsearch中的酒店数据来自于mysql数据库&#xff0c;因此mysql数据发生改变时&#xff0c;elasticsearch也必须跟着改变&#xff0c;这个就是elasticsearch与mysql之间的数据同步。 1.思路分析 常见的数据同步方案有三种&#xff1a; 同步调用异步通知监听binlog 1.1.同…

Nacos配置中心的详解与搭建

Namespace 简介 用于进行租户粒度的配置隔离&#xff0c;不同的命名空间下&#xff0c;可以存在相同的 Group 或 Data ID 的配置 配置Namespace 点击nacos的命名空间——点击新建命名空间 开发环境【dev】测试环境【test】正式环境【prod】 DataID 简介 Data ID 通常用于…

Node.js 下载与安装教程

文章目录 Node.js 下载Node.js 安装npm 配置配置node_path修改用户变量更换npm源为淘宝镜像全局安装基于淘宝源的cnpm Node.js 下载 1.进入nodejs官网&#xff1a;https://nodejs.org/en 2.单击downloads 3.此时滑动滚动条&#xff0c;找到并单击 previous release 4.在此页…

<C++>lesson1.C++入门上

文章目录 1. C关键字(C98)&#x1f49a;2. 命名空间&#x1f90e;2.1 命名空间定义2.2命名空间的使用 3. C输入/输出&#x1f5a4;4.缺省参数&#x1f499;4.1 缺省参数概念4.2 缺省参数分类 5. 函数重载❤️5.1 函数重载的概念5.2 C支持函数重载的原理 6. 引用&#x1f49c;6.…

Day4_Springboot集成Mybatis

上一节使用springboot框架搭建了项目&#xff0c;并创建了数据库user表&#xff0c;接下来集成mybatis对用户表实现增删改查操作~~~~ 目录 SpringBootApplication.java 创建model/entity文件夹&#xff0c;存放实体类 UserDao.java UserController.java 浏览器Json插件&am…

Leetcode刷题日志3.0

目录 前言&#xff1a; 1.相对名次​​​​​​ 2.学生出勤记录 I 3.重塑矩阵 4.分糖果 5.最长和谐子序列 6.种花问题 前言&#xff1a; 今天我就分享一下最近在leetcode刷到的题&#xff0c;希望对大家有所帮助。编程语言&#xff1a;Python3。好了废话不多讲了&…

消息队列使用场景介绍

消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用耦合&#xff0c;异步消息&#xff0c;流量削锋等问题 实现高性能&#xff0c;高可用&#xff0c;可伸缩和最终一致性架构 使用较多的消息队列有ActiveMQ&#xff0c;RabbitMQ&#xff0c;ZeroMQ&#xff0c;Ka…

【华中农业大学2023年十二届程序设计竞赛(同步赛)】B. 写信

文章目录 题目描述思路代码 题目描述 思路 错位排序&#xff0c;可搜索引擎。复杂度太高 递推式&#xff1a; f [ n ] ( n − 1 ) ∗ ( f [ n − 1 ] f [ n − 2 ] ) f[n](n-1)*(f[n-1]f[n-2]) f[n](n−1)∗(f[n−1]f[n−2]) 正解&#xff1a;打表&#xff01;YYDS 1e9的数…

12.Hadoop练习题

1.网络问题 &#xff08;1&#xff09;机器联网出现问题 情况&#xff1a;ping一下百度&#xff0c;发现百度ping不通 sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33检查GATEWAY是否正确&#xff0c;修改过来之后保存退出&#xff0c;重启虚拟机 sudo systemctl re…

图论 (Java) 从入门到入土 /第一部分 图的基础-图的定义/

零.前言 图&#xff0c;是一种比较复杂的数据结构。和树的一个节点只和上层一个节点相连不同&#xff0c;在图中&#xff0c;任意两个节点都可能相连&#xff0c;且可能具有方向性&#xff0c;并且节点的边具有权重&#xff0c;因此&#xff0c;图被用于描述各种复杂的数据对象…

python:tkinter 生成 buttonBar 示例

tk_test1.py # -*- coding: utf-8 -*- import os import tkinter as tk from tkinter import filedialogroot tk.Tk() root.title("生成 buttonBar 示例 ") var tk.StringVar() # 动态字符串 label tk.Label(root, textvariablevar) listbox tk.Listbox(root, s…

题集-快慢指针的应用(链表)

1.中心结点 代码&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* middleNode(struct ListNode* head) {if(head->nextNULL) return head;struct ListNode* fast head,*slow …

初阶数据结构——顺序表和链表(单链表)

目录 1.线性表2.顺序表SeqList.hSeqList.cTest.c数组习题移除元素删除有序数组中的重复项合并两个有序数组 顺序表的问题及思考 3.链表SList.hSList.cTest.c 1.线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中…

BI技巧丨计算组折线图

PowerBI中&#xff0c;通常我们会使用折线图来展示数据的趋势情况。但是当数据类别过多的时候&#xff0c;需求也在进一步深入&#xff0c;往往还需要我们将用户关注的重要节点标注出来&#xff0c;例如&#xff1a;最大值和最小值。 很早之前&#xff0c;白茶曾经写过一篇关于…

HTML学习笔记一

目录 HTML学习笔记 一、HTML标签 1、HTML语法规范 1.1标签的语法概述 1.2标签关系 2、HTML基本结构标签 2.1第一个HTML 2.2基本结构标签总结 3、开发工具 4、HTML常用标签 4.1标签的语义 4.2标题标签 4.3段落和换行标签 4.4文本格式化标签 4.5div和span标签 4.…