
高性能计算
文章平均质量分 70
并行编程
chen_ :)
Hello World
展开
-
HPC Game小结
0th HPC Game小结原创 2023-01-21 00:08:41 · 2105 阅读 · 0 评论 -
常见代码优化(1)
forprivate(,)schedule()核心:由于每行的非零元素的个数可能差异巨大,为了减少负载均衡的问题,使用动态负载均衡策略,size大小的确定需要考虑。把 rowStart,rowEnd 在循环内声明就不需要 private(rowStart,rowEnd)原创 2022-11-08 23:53:29 · 224 阅读 · 0 评论 -
Linux(WSL)安装CUDA
WSL-Ubuntu下CUDA 的安装原创 2022-10-27 16:25:01 · 5166 阅读 · 0 评论 -
Get Started with Intel VTune Profiler(summary)
表示可用逻辑处理器的“已用时间”和使用率级别,并提供在应用程序执行期间使用了多少个逻辑处理器的图形视图。:性能快照提供了其他分析类型,这些分析类型可能有助于更深入地调查应用程序中发现的性能问题。与在应用程序中检测到的性能问题相关的分析类型以。单独约束的事实表明,应用程序受频繁但很小的内存请求的约束,而不是受饱和的物理 DRAM 带宽的约束。提供了有关最耗时的函数(热点函数)的数据,这些数据按执行时所花费的 CPU 时间排序。运行热点分析以查找热点或对应用程序的总运行时间贡献最大的代码段。原创 2022-10-16 22:22:36 · 1364 阅读 · 0 评论 -
OpenMP-CODE
加大并行力度,尽量并行外层循环在外层循环上用parallel,内层用for,并同时注意同步forforfor 后可以用 nowait 取消结束的隐式同步。原创 2022-10-06 00:30:22 · 513 阅读 · 0 评论 -
SYCL学习笔记
基于DPC++SYCL源自OpenCL技术,且运行模型类似。编写风格属于现代C++OpenMP5.0提供了许多与SYCL和dpc++相同的特性。原创 2022-07-19 11:24:37 · 4547 阅读 · 4 评论 -
并行算法优化(1)
通常支持超线程的多核处理器能够使用的线程数最多是物理核心数的2倍X86 流加载/流存储:SSE中的 prefetch指令 可以实现软件预取技术提高多路系统中多核处理器之间通信的带宽。原理:访问存储器的速度与距离处理器的距离有关,为了满足分配的从“近端”起。线程亲和性gcc的环境变量:GOMP_CPU_AFFINITYLinux系统:numactl工具OpenMP、pthread性能分析工具:gprof :通过在编译时插入代码来分析程序nvprof :NVIDIA开发,用于运行在GPU上原创 2022-06-25 21:19:04 · 973 阅读 · 0 评论 -
cProfile
cProfile是Python自带的性能分析模块,可以用于程序的热点分析个人理解:需要一定的python脚本用于ASC22-DeepMD的热点分析实例:运行脚本:python -m cProfile /home/religiousj/dp.py train input.json输出结果保存到dp.out, 可以进一步分析输出结果python -m cProfile -o /home/religiousj/dp.out /home/religiousj/dp.py train input.j原创 2022-02-07 12:18:49 · 2313 阅读 · 0 评论 -
VTune
性能分析器图形用户界面,无需重新编译独立于编译器和语言 (C、C++、Fortran、C#、Java、.NET)快速探查源代码,确定存在问题的代码行优化多核性能内含英特尔线程档案器(调试多线程代码,在多核处理器上取得最佳性能)主要作用:确定占用大量处理器时间的区域,即称为热点查看process,查看应用运行过程中的情况查看有无充分的有效利用可用的处理器时间的代码查看影响应用程序性能的同步对象对比不同的同步方法、线程数量以及算法间对性能影响线程的活动状态和状态转换与硬件相关的性能瓶颈原创 2022-02-04 23:00:13 · 1450 阅读 · 0 评论 -
cpu访存优化
内存引用void f1(const int *a, int n, int *ans){ // int sum = *ans; for (int i = 0; i < n; ++i) { *ans += a[i]; // remove // sum += a[i]; } *ans = sum;} // insteadvoid f2(const int *a, int n, int *ans){原创 2022-05-23 21:10:14 · 579 阅读 · 3 评论 -
linux shell
linux shell原创 2022-03-02 23:13:54 · 86 阅读 · 0 评论 -
linux (2)
快捷键Tab : 命令补全Ctrl+c : 强行终止当前程序Ctrl+d : 键盘输入结束或退出终端Ctrl+s : 暂停当前程序,暂停后按下任意键恢复运行Ctrl+z : 将当前程序放到后台运行,恢复到前台为命令fgCtrl+a : 将光标移至输入行头,相当于Home键Ctrl+e : 将光标移至输入行末,相当于End键Ctrl+k : 删除从光标所在位置到行末软件安装基于ubuntuAPT(Advanced Package Tool)安装包管理工具。它可以自动下载,配置,安装软件包转载 2022-03-02 20:52:16 · 102 阅读 · 0 评论 -
Openmp (new)
#include <stdio.h>#include <omp.h>#define NUM_THREADS 4int main(int argc, char* argv[]){ int a[1000]={0}; /* omp_set_num_threads(4); #pragma omp parallel { printf("%d of %d threads\n", omp_get_thread_num(), omp_ge...原创 2022-05-13 19:56:59 · 165 阅读 · 0 评论 -
linux自带的热点分析
perfperf record -e cpu-clock -g ./runTo make the adjusted perf_event_paranoid setting permanent preserve it in /etc/sysctl.conf (e.g. kernel.perf_event_paranoid = )临时设置,需要sudo su切换到root用户后再进行如下操作,操作完成后返回原用户sudo suecho -1 > /proc/sys/kernel/perf_原创 2022-03-26 21:05:55 · 3089 阅读 · 0 评论 -
Common_优化
转载 2022-04-06 18:52:35 · 95 阅读 · 0 评论