IB(InfiniBand)和 RDMA(Remote Direct Memory Access)是一种高性能网络技术,通常用于加速数据传输。它们不是基于传统的 TCP/IP 协议栈,而是使用自己的协议栈,以实现低延迟、高带宽的数据传输。
如果报错说“Aborting because C++ compiler does not work.”,就安装下编译器:
由于CASCI/CASSCF计算量随活性空间呈指数增长,超过(16,16)的计算在高配机器上几乎不可能。近似求解大活性空间的方法通常有DMRG, selected CI等等。Block-1.5是做DMRG计算的经典程序,由Sandeep Sharma和Garnet Chan开发,虽然早在5年前就不更新了,但其计算速度仍高于很多同类程序。Block-1.5一般结合PySCF使用,可以进行DMRG-CASCI,DMRG-CASSCF和DMRG-SC-NEVPT2等计算。笔者之前在公众号上将该程序的安装拆分为几篇短文
在现代科学和工程中,数值计算工程师会遇到大量复杂的数学计算问题。这些问题突出的共性表现在高维数、计算规模大、多时空尺度、强非线性等方面。批量处理Batch拥有一套完整的并行计算框架,适配常见的并行模型(MPI应用)。利用海量弹性的云资源,有力地支撑高性能科学计算应用软件和算法。
之前的文章中介绍了天河二号的架构,我们大致了解到了天河二号是一个由很多计算节点组成的具有强大运算能力的超级计算机。
还记得今年4月伯克利BAIR实验室发布的那个会“18般武艺”的DeepMimic模型吗?他们使用强化学习技术,用动作捕捉片段训练模型,教会了AI智能体完成24种动作,走路、跑步就不用说了,还包括翻跟斗、侧翻跳、投球、高踢腿等等高能动作。
近期由于一些原因接触到了并行计算,对于这个陌生的领域我最先接触到的是MPI框架。MPI(Message Passing Interface),可以理解为是一种独立于语言的信息传递标准。目前它有两种具体的实现OpenMPI和MPICH,也就是说如果我们要使用MPI标准进行并行计算,就需要安装OpenMPI或MPICH库。本文以MPICH为例,在ubantu中安装MPI的环境,并对vscode进行配置。
在之前的博客中我们介绍过concurrent等python多进程任务的方案,而之所以我们又在考虑MPI等方案来实现python并行计算的原因,其实是将python的计算任务与并行计算的任务调度分层实现。在concurrent和multiprocessing等方案中,我们的python计算任务和调度任务是一体化的,而且还有一个比较大的限制是没办法跨节点操作的,这对于任务与环境的定制化程度要求是比较高的。而MPI的方案在设计初期就考虑到了多节点之间通信的问题,而这种分层式的任务调度解决方案其实在架构上看也更加的合理。做计算的人只要考虑单个进程下的任务如何执行就可以了,至于任务如何并行如何调度,那就是上层的MPI该做的事情了。
HCA方案将所有的信道分为两部分:一部分信道固定配置给某些小区,即部分信道隔离;另一部分信道则保留在中心存储区中,为系统中的所有用户所共享,即部分信道共享。HCA是FCA和DCA的折中,故成为混合分配。(关于FCA和DCA参见相应词条)
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 改为:
有任务需要处理一堆收集来得开源数据集,在服务器单机跑了一天才给结果,多方咨询有HPC可以用,或者叫supercomputer,或者叫计算机集群,大部分的简称grid。看了wiki、confluence,给出一堆链接在脑海中织出密密麻麻的蜘蛛网——无从下手。居然没有use case出发端到端的参考demo,真是无力吐槽。自力更生求助google,youtube,stack overflow,梳理下来,简而言之,可以理解分而治之多线程的多处理核(cpu/gpu)的版本,涉及算力资源调度引入slurm,涉及通讯引入mpi。
Ubuntu - openmpi 源码安装 sudo apt-get install openmpi # 安装版本比较低 1. Ubuntu 程序源码安装 主要包括三个步骤: 1 - ./configure 2 - make 3 - make install 这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。 ./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。 m
具体来讲,本文首先介绍了分布式计算的基本概念,以及分布式计算如何用于深度学习。然后,列举了配置处理分布式应用的环境的标准需求(硬件和软件)。最后,为了提供亲身实践的经验,本文从理论角度和实现的角度演示了一个用于训练深度学习模型的分布式算法(同步随机梯度下降,synchronous SGD)。
大家好,又见面了,我是你们的朋友全栈君。 1.硬件 📷 Hi3516支持内置AudioCodec/外置音频解码芯片; 由于这里硬件上外接FM1288,故走的是外置,通过I2S接入, 通过MIC单端/差分输入音频. 由于之前一直调试内置Codec,这里任然保留内置相关代码; 2.重要概念 2.1. I2S相关概念 (1)LRCLK (帧时钟,也称为WS) 当LRCLK为低电平时表示传输左声道,高电平时表示传输右声道, LRCLK的频率 = 采样频率 (2)SCLK(串行时钟) ,也叫BCLK(位时钟);
CFOUR程序的全称为Coupled-Cluster techniques for Computational Chemistry,是一款专注于高精度量子化学计算的程序。从名字可以看出,其专长为耦合簇方法,支持在CC级别下做单点、几何结构优化(如CCSD(T)级别)、激发态计算(如EOM-CCSDT)、性质计算(如CCSD(T)级别的NMR计算)。其官方网站为
0x00 前言 本篇是MPI的入门教程,主要是为了简单地了解MPI的设计和基本用法,方便和现在的Hadoop、Spark做对比,并尝试理解它们之间在设计上有什么区别。 身处Hadoop、Spark这些优秀的分布式开发框架蓬勃发展的今天,老的分布式编程模型是否没有必要学习?这个很难回答,但是我更倾向于花一个下午的时候来学习和了解它。 关于并发和并行编程系列的文章请参考文章集合 文章结构 举个最简单的例子,通过这个例子让大家对MPI有一个基本的理解。 解释一些和MPI相关的概念。 列举一些MPI的常用函数
用户希望Tina SDK 能提供编译工具链,多媒体库和头文件,使得自己编写的应用能编写Makefile 去链接多媒体库来编译生成app应用。 介于此方法,本FAQ提供一份编译系统demo样例。 里面包含说明了:
尽管 CMake 是跨平台的,在我们的项目中我们努力使源代码能够在不同平台、操作系统和编译器之间移植,但有时源代码并不完全可移植;例如,当使用依赖于供应商的扩展时,我们可能会发现有必要根据平台以略有不同的方式配置和/或构建代码。这对于遗留代码或交叉编译尤其相关,我们将在第十三章,替代生成器和交叉编译中回到这个话题。了解处理器指令集以针对特定目标平台优化性能也是有利的。本章提供了检测此类环境的食谱,并提供了如何实施此类解决方案的建议。
通过官方网站提供的下载地址:https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.0.tar.gz,下载3.1版的openmpi,在命令行执行如下命令,会将openmpi-3.1.0.tar.gz文件下载到当前目录:
http://sourceforge.net/projects/boost/files/boost/1.44.0/
https://blog.csdn.net/liu_feng_zi_/article/details/94286438
冯克环,腾讯云异构计算研发工程师,专注于云上 AI 训练加速相关技术,对 GPU 虚拟化、GPU 训练加速有深厚的积累,目前负责腾讯云 AI 训练加速相关技术的研发以及性能优化工作。 张锐,腾讯云网络虚拟化研发工程师,在之前的工作中专注于 AI 训练网络优化方面的工作,在 RDMA、GPU 通信优化等方面有较多经验,目前专注于做云上AI训练通信优化方面的工作。 背景 随着 AI 模型规模的越来越大,训练数据的越来越多,用户对模型的迭代效率也要求越来越高,单个 GPU 的算力显然无法满足大部分业务场景,使
背景 随着 AI 模型规模的越来越大,训练数据的越来越多,用户对模型的迭代效率也要求越来越高,单个 GPU 的算力显然无法满足大部分业务场景,使用单机多卡或多机多卡训练成为趋势。单机多卡训练场景的参数同步借助目前 NVIDIA NVLINK 技术已经得到了很好地解决,而多机多卡场景由于对网络通信的强依赖就没有那么简单。 目前网卡厂商提供的 RoCE 等 RDMA 技术,使得多机通信效率大幅提升,但是如何在25G或 50G VPC 网络环境下提升分布式训练系统的通信效率,仍然是目前公有云厂商亟需解决的
在运行 mpi-operator 之后,想进去容器查看一下,于是执行下面的命令报错。
业界AI应用中,GPU的使用逐渐增加,腾讯云TACO是一种异构计算加速软件服务,搭配腾讯自研的软硬件协同优化组件和硬件厂商特有优化方案,支持物理机、云服务器、容器等产品的计算加速、图形渲染、视频转码各个应用场景,帮助用户实现全方位全场景的降本增效。
1. 在安装依赖库的时候,遇到: @gxjun-Latitude-E5440:~$ sudo apt-get install libatlas-base-dev 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 libatlas-base-dev 已经是最新的版本了。 升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 419 个软件包未被升级。 有 4 个软件包没有被完全安装或卸载。 解压缩后会消耗掉 0 B 的额外
在使用MPI框架中,需要多机进行通信进行并行计算;现在配置多个主机进行运行mpi程序,并进行通信;涉及到ssh无密码和nfs文件系统配置;
Intel oneAPI 是一种统一的跨架构的的编程模型,提供了CPU、GPU、FPGA、专用加速器的产品。
Horovod 是Uber于2017年发布的一个易于使用的高性能的分布式训练框架,在业界得到了广泛应用。
本文以 PyTorch 官方文档 https://pytorch.org/tutorials/intermediate/dist_tuto.html 为基础,对如何编写分布式进行了介绍,并且加上了自己的理解。
进行深度学习的训练向来不被认为是CPU的强项,但是以CPU研发见长的英特尔并不甘心屈服于这个定位,在过去的几年里,英特尔及其合作伙伴一直在探索用CPU来进行快速有效的深度学习开发的方法。代号KNL的Xeon Phi至强芯片是英特尔的努力尝试之一,同时在深度学习算法的改进上,英特尔也做了一些努力。 近日,在美国旧金山举行的IDF16大会上,与英特尔联合宣布启动了KNL试用体验计划的浪潮集团副总裁、技术总监胡雷钧做了基于英特尔至强融合处理器KNL和FPGA上的深度学习的试用体验报告。报告介绍了高性能计算和深度学
torch.distributed 支持三个后端,每个后端具有不同的功能。下表显示哪些功能可用于CPU/CUDA张量。仅当用于构建PyTorch的实现支持时,MPI才支持CUDA。
测试是代码开发工具箱的核心组成部分。通过使用单元和集成测试进行自动化测试,不仅可以帮助开发者在早期检测功能回归,还可以作为新加入项目的开发者的起点。它可以帮助新开发者提交代码变更,并确保预期的功能得以保留。对于代码的用户来说,自动化测试在验证安装是否保留了代码功能方面至关重要。从一开始就为单元、模块或库使用测试的一个好处是,它可以引导程序员编写更加模块化和不那么复杂的代码结构,采用纯粹的、函数式的风格,最小化并局部化全局变量和全局状态。
运行一个 mpi-operator 的 demo(这个 demo 还是我提交的…),看到如下错误。
学习参考地址:https://www.jianshu.com/p/2fd31665e816
C:\boost_1_60_0\tools\build\src\tools\mpi.jam,利用文本文件打开mpi.jam文件。做如下修改:
1 背景 图像连通域标记算法是从一幅栅格图像(通常为二值图像)中,将互相邻接(4邻接或8邻接)的具有非背景值的像素集合提取出来,为不同的连通域填入数字标记,并且统计连通域的数目。通过对栅格图像中进行连
摘要总结:本文主要介绍了如何在Linux系统下通过配置user-config.jam文件来指定编译器,以便在编译Boost库时指定使用某个版本的编译器,从而避免因为系统中多个版本的编译器导致的问题。
官方文档: https://openucx.readthedocs.io/en/master/
MPI(Message Passing Interface) 是一种可以支持点对点和广播的通信协议,具体实现的库有很多,使用比较流行的包括 Open Mpi, Intel MPI 等等,关于这些 MPI 库的介绍和使用,本文就不多赘述了,各位可以看看官方文档。
CP2K安装的方法有很多(我们曾分享过CP2K 5.1版本的安装及简单介绍),笔者最近尝试在课题组新买的服务器上从源码编译安装CP2K,过程中遇到了各种问题。根据这次安装的经验,在此笔者想和大家分享如何从零开始安装CP2K(支持PLUMED)。
ABAQUS是一款广泛应用于工程领域的有限元分析软件,具有以下主要功能:结构分析:ABAQUS可以进行静态和动态分析,包括线性和非线性分析,可以求解各种结构的应力、应变、位移、稳定性等问题。热力学分析:ABAQUS可以进行热传递、热膨胀、热应力等问题的热力学分析。动力学分析:ABAQUS可以进行振动分析、冲击响应、疲劳分析等动力学问题的求解。流体-结构耦合分析:ABAQUS可以进行流体-结构耦合分析,包括流固耦合、热流固耦合等问题。复合材料分析:ABAQUS可以对复合材料的层合板、复合材料结构的力学性能进行
虚拟端口(又名 COM 端口重定向器)是一种专用软件(通常 包括设备驱动程序和用户应用程序),其中包括基础 访问提供远程串行的联网设备所需的网络软件 连接。
Dalton是一款开源免费的量子化学程序,主要特色是支持一大堆性质的计算,例如DFT下的二次响应计算(常规TDDFT计算仅是线性相应),MCSCF波函数下的核磁NMR计算等等,以及各类激发态方法。当然,也有一些高精度单参考方法(如MP2-R12和CCSD-R12等),但较少用到。其PDF手册在
MPI 提供了三种不同的通信方法,MPI 进程可以使用这些方法相互通信。下面讨论了这些通信方法:
Horovod 是一款基于 AllReduce 的分布式训练框架。凭借其对 TensorFlow、PyTorch 等主流深度学习框架的支持,以及通信优化等特点,Horovod 被广泛应用于数据并行的训练中。
nccl-test 工具是 nvidia 开源的一项用于测试 NCCL 集合通信的工具。可以用于检测集合通信是否正常、压测集合通信速率。官方开源地址:https://github.com/NVIDIA/nccl-tests
RPC指远程过程调用(Remote Procedure Call),通俗一些理解就是两台服务器A、B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。(远程过程调用是相对于本地过程调用来说的)
领取专属 10元无门槛券
手把手带您无忧上云