并行计算性能分析
来源:互联网 发布:拉住妈妈的手网络歌手 编辑:程序博客网 时间:2024/05/20 04:46
第一个性能当然是速度,还有两个:
- 延时:完成指定工作所需要的时间
- 吞吐率:单位时间内完成的工作量
开发并行性通常能改进吞吐率。
开发并行可以隐藏延时,当然并没有真正的减少延时,只是隐藏了延时的代价,因为它“与其等待,不如去计算其余部分”。
并行计算比串行计算要建立更多线程而带来额外开销,建立进程的开销远大于线程,这是因为存储器的分配和初始化非常昂贵。
线程(或进程)间的通信是开销的主要部分。
存储器的带宽也限制了并行计算的速度,比如当CPU读DRAM时可能出现延时(当要加载的数据量很大,cache容不下时,CPU就不得不读取DRAM)。存储器带宽约束不多核计算中的特别问题,这通常受限于芯片的边界。
避免过早的优化:这里要讲90/10规则,即90%的程序执行时间花在10%的代码上。开始时不加任何修饰地编写代码,如果性能需要改进,把执行时间最长的那10%时间识别出来,对其进行重写,重写时也许要使用C语言或汇编语言。
在科学计算中通常采用FLOPS指标,即私刑秒学点数操作(floating-point operations per second)。
极少情况下会出现超线性加速比(superline speedup):使用P个处理器,并行的速度比串行的速度快P倍。基本的解释是并行的计算执行了较少的工作,比如并行执行时数据都驻留在每个处理的cache中,而顺序执行时必须访问存储器。
当核数增张时,核之间的通信延时也会增张。并且RAM和核之间的带宽是有限的。
- 并行计算性能分析
- 并行计算性能测试
- 云计算中的并行计算技术分析
- GPU 高性能并行计算相关
- 高性能并行计算技术交流平台
- matlab 高性能并行计算之 spmd
- 《CUDA高性能并行计算》阅读摘要
- 并行计算分布式计算网格高性能计算机
- 高性能计算中并行的概念理解
- 两款高性能并行计算引擎Storm和Spark比较
- C#并行计算类Parallel的性能测试
- 高性能计算中并行的概念理解
- 两款高性能并行计算引擎Storm和Spark比较
- 两款高性能并行计算引擎Storm和Spark比较
- 高性能计算中并行的概念理解
- 两款高性能并行计算引擎Storm和Spark比较
- 两款高性能并行计算引擎Storm和Spark比较
- 高性能并行计算引擎Storm和Spark比较
- pthread_cond_wait的思考
- 用curses库和多线程画来回运动的字符串
- Win7下用IIS发布网站
- 为什么并行没有比串行快?
- 并行计算机硬件基础
- 并行计算性能分析
- C语言内存泄漏之free、valgrind、examine
- 子进程复制了父进程的什么
- 文件位置指针对read、write的影响
- 多进程调试
- "abcde"是字符串常量
- 多线程异步非阻塞C语言爬虫
- Monkey的使用
- shell向awk传值