高性能计算

传统CPU架构不再是高性能计算唯一选择

三世轮回 提交于 2021-02-18 15:50:27
众核、内存计算是高性能发展未来 CSDN:过去几年,并行计算的技术演变、应用的拓展,以及未来发展分别是什么? 赵开勇: 传统的并行计算机更多的是中型机和大型机,或者专门制造的特需机器,那个时候并行计算离大众还很远。并行计算的算法基本是在上世纪六、七十年代的时候开始,当时有很多研究文章,而且研究得很透彻。但在那时候,并行计算、高性能计算,离大众还比较远。 从2000年左右开始,计算芯片、存储、网络的发展使得之前昂贵的计算机变得 廉价。由于像Google这类公司的算法的演变,使得廉价的PC架构的机器构建出的服务器集群就可以完成高性能计算。当然我们这里讨论的并行计算,其实只 是高性能计算的一种方法而已,并行计算通常是指许多指令一起执行,是针对串行计算而言的。 现在的高性能计算,既有并行计算,也有串行计算,概念更加的广泛,而不局限于 传统的并行计算。从2000年左右开始,有科研者采用GPU作为通用计算。到2006年,Nvidia推出通用计算的GPU,打破了传统基于CPU(或者 专用协处理器)的高性能计算,让民众更接近高性能计算(并行计算),并且可以采用廉价的芯片达到高性能计算的目的。 在传统CPU芯片方面,也通过增加CPU的核心来提高计算性能,从以前的单 核、双核到多核,再到Intel前不久推出的MIC架构的众核芯片,都标明了计算芯片再向多核心方向发展。另一个方面

IEEE会议排行

喜夏-厌秋 提交于 2020-01-30 01:00:27
转自: https://www.cnblogs.com/yymn/p/4638182.html 不知道谁整理的,我就下了个word。所以就标注不了,引用的哪的了。 Rank 1: SIGCOMM: ACM Conf on Comm Architectures, Protocols & Apps INFOCOM: Annual Joint Conf IEEE Comp & Comm Soc SPAA: Symp on Parallel Algms and Architecture PODC: ACM Symp on Principles of Distributed Computing PPoPP: Principles and Practice of Parallel Programming RTSS: Real Time Systems Symp SOSP: ACM SIGOPS Symp on OS Principles SOSDI: Usenix Symp on OS Design and Implementation CCS: ACM Conf on Comp and Communications Security IEEE Symposium on Security and Privacy MOBICOM: ACM Intl Conf on Mobile

计算机组成:输入输出系统

老子叫甜甜 提交于 2020-01-29 18:22:09
输入输出系统 通道可以看做是DMA的升级版,通道有自己的控制器甚至是存储器、内存 通道可以执行由通道指令编写的程序,由操作系统完成 如果使用通道,就不是连接接口了,而是连接设备管理器 I/O处理机可以使用微处理器甚至直接使用和主处理器相同的处理器来做,当然这就不是家用电脑的范畴了,强大的I/O处理机甚至在没有IO工作时,可以作为主机的处理器来使用 I/O和主机的连接方式 统一编址:将io地址看成内存地址的一部分。这种方式实现了io和内存的统一不需要单独的io指令,CPU指令集相对简单,如果内存空间比较大(eg.64位)可以采用这种方式 单独编址: 串行速度慢,但是适合长距离传输 不便于增删设备 外部设备输出的数据可以先缓存到io接口,进行数据格式的转换等操作再输入主机 便于增删设备、采用标准接口,可移植性强 信息传送的控制方式 CPU直接对IO进行管理 缺点就是广为人知的,浪费CPU DMA请求:向CPU申请占用一个存取周期的总线控制权从而将外部设备的数据加载到内存中,这个周期内CPU不能使用总线对内存进行访问,但是这段时间CPU依然可以正常使用(由于CPU会预先取一部分指令,这段时间不能访问内存有可能影响不大) 外部设备简介 主观图像:用户绘制的图像,由点线面构成,就是简单的那种 客观图像:eg.GUI A:模拟信号 D:数字信号 IO接口 为什么使用接口 主机可能使用并行传输

深入理解计算机系统(5.1)------优化程序性能

有些话、适合烂在心里 提交于 2020-01-24 04:56:09
  你能获得的对程序最大的加速比就是当你第一次让它工作起来的时候。   在讲解如何优化程序性能之前,我们首先要明确写程序最主要的目标就是使它在所有可能的情况下都能正常工作,一个运行的很快的程序但是却是错误的结果是没有任何用处的,所以我们在进行程序性能优化之前,首先要保证程序能正常运行,且结果是我们需要的。   而且在很多情况下,让程序跑的更快是我们必须要解决的问题。比如一个程序要实时处理视频帧或者网络包,那么一个运行的很慢的程序就不能解决此问题。再比如一个计算任务计算量非常大,需要数日或者数周,如果我们哪怕只是让它运行的快20%也会产生重大影响。 1、编写高效程序的切入点   ①、选择一组合适的算法和数据结构。   ②、编写出编译器能够有效优化以转换成高效可执行的源代码。   ③、多线程并行处理运算。   对于第一点,程序=数据结构+算法,选择合适的数据结构和算法无疑对于提高程序的运行效率有很大的影响。第二点对于编程者则需要理解编译器的优化能力以及局限性,编写程序看上去只是一点小小的改动,可能都会引起编译器优化方式很大的变化;第三点技术主要这对运算量特别大的运算,我们将一个大的任务分成多个小任务,这些任务又可以在多核和多处理器的某种组合上并行的计算,这里我们也需要知道,即使是利用并行性,每个并行的线程都要以最高性能的方式执行。 2、编译器的优化能力和局限性   正确性,正确性

计算机网络性能

霸气de小男生 提交于 2020-01-23 09:17:01
速率 :即数据率或称数据传输速率或比特率 单位时间(秒)传输信息(比特)量 计算机网络中最重要的一个性能指标 单位:b/s(或bps)、kb/s、Mb/s、Gb/s k=10 3 、 M=10 6 、 G=10 9 速率往往是指 额定速率 或 标称速率 带宽 :原本指信号具有的赫兹宽度,即最高频率与最低频率之差,单位是赫兹(Hz) 网络的“带宽”通常是数字信道所能传送的的“最高数据率”,单位:b/s(bps) 常用的带宽单位:kb/s(10 3 b/s)、 Mb/s(10 6 )、Gb/s(10 9 b/s)、Tb/s(10 12 b/s) 延迟/时延 d proc 结点处理延迟(nodal processing delay) 差错检测 确定输出链路 通常<msec d queue 排队延迟(queueing delay) 等待输出链路可用 取决于路由器拥塞程度 d trans 传输延迟(transmission delay) L/R(L:分组长度(bits);R:链路带宽(bps)) d prop 传播延迟(propagation delay) d/s(d:物理链路长度;s:信号传播速度(~2*10 8 m/sec)) d nodal = d proc + d queue + d trans + d prop 时延带宽积 时延带宽积=传播时延*带宽(R)= d prop *R

“FPGA+云"助力高性能计算

瘦欲@ 提交于 2020-01-14 13:40:32
用AI防鲨鱼、用AI学写中国书法、用AI预测人类死亡时间、用AI审判罪犯……在人工智能方兴未艾的今天,越来越廉价和普及的AI领域真的是什么都不值钱,除了想象力。那在这无所不能的AI盛世,一定没道理让算力限制我们的想象力,更没道理让算力限制了我们的生产力。 从CPU到CPU+,从+GPU到+FPGA 随着通用处理器(CPU)的摩尔定律已入暮年,从美国的微软、亚马逊到中国的BAT、华为,几乎所有的互联网巨头们都在补充他们的标准服务器芯片——CPU,使用可替代的硅来追赶在人工智能领域的急速变化。2012年,微软开始将支撑了通讯行业二十年高速发展的可编程芯片,即FPGA用在其搜索业务——Bings上,且公布FPGA相比于CPU在处理Bing 的自定义算法时快出40倍,整个系统比Bing 现有的系统快出两倍,因此其可以将当前已经投入使用的服务器数量减少一半。甚至在接下来的几年里,几乎任何一个新的微软服务都会包含一个FPGA。 那么这个所谓的可编程芯片到底是什么?据菲数科技创始人兼CEO王文华介绍,2017年是全球超大规模数据中心的“爆发年”,全年新增超大规模数据中心90余个,总数量超过390个。且2018年也没有丝毫放缓的迹象。如此海量数据需要计算机高速计算各种矩阵运算、图像处理、机器学习、压缩、非对称加密、搜索排序等。即数据中心优先于人工智能发展

04、计算机功耗,提升性能

南笙酒味 提交于 2020-01-04 05:05:23
  CPU性能公式:程序的 CPU 执行时间 = 指令数×CPI×Clock Cycle Time 降低能耗 从以上公式看出,可以从指令数、CPI以及CPU主频这三个方面入手来提升计算机性能。然而当CPU的主频达到极限时,功耗会增加,导致性能不会达到预期的目的,一方面,我们要在 CPU 里,同样的面积里面,多放一些晶体管,也就是 增加密度 ;另一方面,我们要让晶体管“打开”和“关闭”.”得更快一点,也就是 提升主频 。而这两者,都会增加功耗,带来耗电和散热的问题。因此这两方面都是有限的。此时又会降低电压来降低能耗; 并行优化,阿姆达尔定律 提升主频达到了瓶颈之后,又通过并行处理来提高CPU的吞吐率,现代的CPU都发展到多核,2核、4核,乃至8核的CPU。这就是将一个程序任务交给多个CPU核进行并行处理来提高性能。阿姆达尔定律说的就是,对于一个程序进行优化之后,处理器并行运算之后效率提升的情况。可以用公式表示:           优化后的执行时间 = 受优化影响的执行时间 / 加速倍数 + 不受影响的执行时间 不受影响的执行时间就是不能被并行处理的任务所执行的时间。 总结延伸 无论是提升主频,还是增加更多的CPU核心数量,通过并行来提升性能,都会遇到瓶颈。简单的堆硬件已经不能满足需求了。 在摩尔定律和并行计算之外,还有这几个原则性的性能提升方法:   1、加速大概了事件    

计算机网络的性能

喜夏-厌秋 提交于 2020-01-03 03:08:15
计算机网络的性能 普及知识: 字节、位、bit、byte、kb、b、字符之间的关系 1.bit就是位,也叫比特位,是计算机表示数据的最小单位 2.byte就是字节 3.1byte = 8bit 4.1byte = 1B 5.一个字符 = 2 字节 6.1kb = 1024B 1. 速率 :连接在计算机网络上的主角在数字信道上传送数据的速率,也叫bit 单位是b/s、kb/s、Mb/s,Gb/s 2. 带宽: 数据通信领域中,数字信道所能传送的最高数据率 3. 吞吐量 :在单位时间内通过某个网络的数据量 4. 延迟 :    5 . 时延带宽积    6. 往返时间 :从发送方发送数据开始,到发送方收到接收方确认(ping) 7 . 利用率:    来源: https://www.cnblogs.com/healy/p/9696986.html

计算机网络的性能

[亡魂溺海] 提交于 2020-01-03 03:07:56
一. 计算机网络的性能指标 1. 速率 比特(bit )源于binary digit,意思是一个二进制数(0/1),比特也是信息论中使用的 信息量的单位 。、 网络技术中的速率指的是数据的传输速率,也称为数据率(data rate)或比特率(bit rate)。速率的单位是bit/s(b/s bps bit per second) k(kilo)=10e3 = 千; M(Mega) = 10e6 = 兆; G(Giga) = 10e9 = 吉; T(Tera) = 10e12=太; P(Peta) = 10e15 = 拍;E(Exa) = 10e18=艾;Z(Zetta)=10e21 = 泽;Y(Yotta)= 10e24 = 尧。 2.带宽bandwidth (1) 传统通信道路,表示信道允许通过的信号频带范围。(频域称谓) (2) 在计算机网络中,指网络中某通道传输数据的能力。单位就是bit/s(时域称谓) 3. 吞吐量(throughput) 表示单位时间内通过某个网络(信道/接口)的实际的数据量。 4. 时延(delay/latency) 是指数据(一个报文/分组/比特)从网络/链路的一端传输到另一端所需的时间。 发送时延transmission delay:是主机或路由器发送数据帧所需要的时间。 传播时延propagation delay

高性能计算如何高效进行并行操作?

倖福魔咒の 提交于 2019-12-27 19:05:01
当今数据驱动的世界,高性能计算(HPC)成为企业的首选平台。转向云计算,提供按需的HPC具有成本效益与高度灵活性。 高性能计算通常是指以比提供更高性能的方式聚合计算能力的实践。它可以高效进行并行操作,在计算过程中,各节点协同工作。 基于并行任务的角度对高性能计算进行分类,可以分为两类:高吞吐计算和分布式云计算。 高吞吐计算 高吞吐计算可以把一个任务分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。这种类型应用的一个共同特征是在海量数据上搜索某些特定模式。所谓的Internet计算都属于这一类。 高吞吐计算属于SIMD(Single Instruction/Multiple Data,单指令流-多数据流)的范畴。 分布式云计算 分布式云计算解决任务分发,并进行计算结果的合并,帮助应付本地业务交互的轻量化需求。 其将单个问题划分为多个部分,每个部分由不同的计算机解决,只要计算机联网,它们就可以相互通信进行大量数据交换以解决问题。如果操作正确,则计算机将像单个实体一样运行。 分布式云计算的最终目标是通过以经济高效、透明和可靠的方式连接用户和IT资源来最大化性能。它还可确保容错能力,并在其中一个组件发生故障时启用资源可访问性。 使用分布式云计算带来的优势 1)可扩展性和模块化增长 分布式系统固有的可扩展性,因为它们可以跨不同的机器工作并可以水平扩展