Technical Article
使用多线程的利弊
1. Amdahl定律
一个很简单的量化公式,用来计算一个程序中串行部分所占多少对程序加速比的影响或者用来计算计算机硬件配置中某个设备的速度提高能够将整个系统的速度提高多少。
假设一个串行程序执行的总时间为1,不能被并行化的部分占的时间比例为p,即串行化的部分为p,可并行化的时间为:1-p。如果用n个核用来加速的话,加速比为:
异构编程模式
内存分配和首次访问
内存分配和首次访问
相对至强而言,协处理器的内存分配成本较高——因此尽可能重复使用已非配的内存是非常明智的。例如,如果某函数被重复调用(假设在循环内),并且该函数使用数组作为临时存储,尝试初次分配足够大的数组(所需的最大大小),并在后续调用中重复使用该数组:
static real *temp_array=0;
使用编译器选项 -opt-threads-per-core 针对每内核的 1-4 个线程进行调度
面向英特尔® MIC 架构的高级优化
概述
本章详细介绍了一些高级的编译器优化选项,以提升英特尔® MIC 架构的性能。其中包括以下主题,如浮点模型、预取、流存储的使用等。本章非常适用于尚未获得理想性能或寻求尽可能高的性能提升的用户。

