当我第一次看到 英特尔信息技术峰会的课程 时,现代代码专家正在进行激烈的讨论,不由得激起了我思考与学习的兴趣。 我的同事、黑带软件开发人员 Gaston Hillar 为我提供了极具洞察力的见解。 我还与黑带计划经理 Kathy(始终精力充沛)进行了简短交流,她向我解释了代码现代化的魅力所在。
现在,我已经开始学习代码现代化,并尝试开展实验,以加深学习和理解。
经过一段时间的学习后,我发现代码现代化非常适用于 CPU 处理器。因为它们都是多核处理器,而我们很少能够利用 CPU 的所有内核。因此,代码现代化会对我们利用程序的方式产生重大影响。 现在,借助代码现代化,我们可以充分利用 CPU 的所有内核。
要开始学习代码现代化,最重要或最基本的一点是要了解 CPU 利用率公式。
U = 100% - (空闲任务耗时 %)
空闲任务耗时 % =(后台无负载任务的平均持续时间) * 100%/(后台负载任务的平均持续时间)
空闲任务耗时 % =(25 毫秒内测量的 BG 循环次数) * 100%/(卸载后 CPU 内的预计 BG 循环次数)
实际 % = 调整后 % * (100%)/极大值 8 位值
这些公式是使用 CPU 内核时应掌握的基本知识,大家应该予以重视。
现在我们来看一下多核利用率。
英特尔开发人员专区中有一篇文章详细地介绍了这些定律
https://software.intel.com/zh-cn/articles/predicting-and-measuring-parallel-performance
OpenMP
OpenMP 是一种支持采用 C、C++、Fortran 等语言进行共享内存多处理的界面。
A normal for loop in C
for (i=0; i < 5; i++)
{
for (j=0;j<=i;j++)
{
printf("@”);
}
}
Just add
#include<omp.h>
and add
#pragma omp parallel
you are good to go
Where to get OpenMP
https://www.openmprtl.org/download
英特尔 TBB
它是一种以 C++ 为基础、可用于任务并行化的库。
https://www.threadingbuildingblocks.org/download
如欲获取整个程序包,请访问英特尔 Parallel Studio
https://software.intel.com/zh-cn/intel-advisor-xe/
大家可以经常参加 Colfax International 组织的课程。在学习课程的过程中,可以远程访问英特尔至强机器实例来开展实践。相信我,最初我还只是现代代码领域的一位新手,通过参加课程,我学到了越来越多的知识。
http://colfaxresearch.com/
课程结束后,我们获得了证书。这个证书很酷。
培训课程非常奇妙,您可以快速了解主题的关键点。 现在我还只学到了现代代码的一些皮毛,心中的疑问敦促着我要不断地学习。现代代码学习之旅会一直伴你同行,为您一一解答现代操作系统方面的所有疑惑。
英特尔开发人员专区开辟了一个全新的专用英特尔现代代码区,而且面向现代代码的软件创新者专题讲座也新增了一项新计划。我们可以共同学习,共同分享。加入我们,一起壮大英特尔现代代码区。
https://software.intel.com/zh-cn/modern-code