我的现代代码学习之旅

当我第一次看到英特尔信息技术峰会的课程时,现代代码专家正在进行激烈的讨论,不由得激起了我思考与学习的兴趣。 我的同事、黑带软件开发人员 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

 

这样,你就完成了基本步骤。

如何获得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

 

 

有关编译器优化的更完整信息,请参阅优化通知