👋
Welcome
to
Cuterwrite 's
Blog
本文将详细介绍几种常用的程序调试与优化分析工具,如强大的调试器 gdb,可用于跟踪程序执行过程、检测内存错误;Valgrind,能发现内存泄漏等问题;还有性能分析工具 gprof,可测量各函数执行时间,以及 perf 和 Vtune 等,它们都是开发人员的得力助手,能够有效地定位和解决程序中的问题,并极大地优化代码性能,提高软件质量和性能。
本文介绍了高性能异步 I/O 框架 io_uring 的原理、核心数据结构和使用示例。首先,文章对比了 Linux 原生 aio 接口和 io_uring 接口,并介绍了 liburing 库。接着,详细解释了 io_uring 的核心数据结构和三种工作模式,以及系统调用 API 和高级特性。然后,文章提供了在项目中引入 liburing 的方法,并给出了代码示例和最佳实践。最后,文章总结了 io_uring 的优点和结论。
本文是关于 RDMA 技术及其编程方法的指导。文章主要介绍了 libibverbs 的简介和 Verbs API 的详解,包括 Verbs 对象创建层次和两个动态库。此外,还介绍了 Connection Manager 的建立过程和抽象类型 RDMACM。最后,文章通过解析被动方和主动方的 RDMACM 程序,以及基于 RDMA 的 client-server 程序的实战,来帮助读者更好地理解和应用 RDMA 技术。
本文介绍了 RDMA(Remote Direct Memory Access)技术的基本概念和工作原理。首先,简要介绍了 RDMA 技术的背景和定义。接着,详细解释了 RDMA 工作原理中的几个重要概念,包括 Infiband 与以太网的对比、QRs/WRs 执行模型、通信语义和传输服务。此外,还介绍了 RDMA 架构的层级结构。然后,介绍了 Verbs 与 OFA Verbs API,包括 Verbs 的简介和 OFA Verbs API 对应用的支持。最后,对本文进行了总结。通过本文的阅读,读者可以了解 RDMA 技术的基本概念和工作原理,以及 Verbs 与 OFA Verbs API 的应用。
MPI 论坛在 1994 年推出的 MPI 基础上,根据 MPI 的发展和要求,于 1997 年推出了 MPI 的最新版本 MPI-2,同时原来的 MPI 更名为 MPI-1。相对于 MPI-1,MPI-2 加入了许多新特性:动态进程管理、I/O、远程存储访问等。本文将对 MPI-2 的新特性进行简要介绍。
数据类型是 MPI 中的一个重要概念,它可以帮助我们更好地管理数据,提高通信效率。在 MPI 中,数据类型的概念与 C 语言中的数据类型有所不同,它是一种抽象的数据结构,可以用来描述数据的组织形式,而不是数据本身。本文将介绍 MPI 中的数据类型,包括基本数据类型、派生数据类型、类型创建函数等。
集合通信是进程集合里的所有进程进行数据交换的同时操作,实现了一对多,多对一,全体对全体的数据交换。本文深入讨论了一对多通信如广播和散播,多对一通信如收集,以及如何聚合所有进程的数据。然后,本文介绍了如何进行同步以确保所有进程在相同的执行点进行数据交换。接着,本文介绍了规约,一种特殊的集合通信操作,它将所有进程的数据聚合并进行运算,得出一个单一结果。总的来说,本文为读者提供了关于 MPI 集合通信的深入解析,包括其定义、功能和几种主要的通信模式。
本文详细介绍了 MPI 中的点到点通信模式,主要包括标准通信模式、缓冲通信模式、就绪通信模式、同步通信模式,然后介绍了阻塞与非阻塞通信的概念。并且举了多个例子说明如何编写不同通信模式的 MPI 程序。
本文主要介绍了 MPI 与并行计算的相关内容。首先,文章介绍了什么是 MPI 以及 MPI 的发展过程。然后,文章解释了为什么要使用 MPI,并介绍了并行编程模式。接着,文章详细介绍了 MPI 的工作模式和消息传递通信的基本概念。最后,文章介绍了 MPI 程序的编译和运行,并提到了 MPI 的四个基本接口。通过本文的阅读,读者可以了解 MPI 与并行计算的基本概念和使用方法。
本文深入解析了 CUDA 编程,从介绍 CUDA 的基本概念开始,探讨 CPU 与 GPU 的差异,详述异构计算的理念。进一步,我们将深入 CUDA 编程模型,讲解 CUDA 线程执行模型,以及如何在 CUDA 中使用原子操作。将帮助读者更好地理解和利用 GPU 的强大计算能力。