快速掌握多线程编程优化技术

随着英特尔多核平台编程优化大赛的进行, 我们收到了不少网友的优化报告, 其中许多网友取得非常好的优化成绩. 但是也许多网友通过各种渠道给我们反馈, 由于平时没有接触太大优化相关的工作,一时间对于提供的代码难以入手,希望我们针对大赛,提供一些学习的资源,掌握优化方面内容参加比赛. 所有我们提供了下面一些链接, 希望对一些没有没有太多优化经验的网友提供一些帮助.

1.多线程设计
由于多核技术的发展,多线程程序的调优会越来越为重要. 所有我们要求参赛网友对原有程序进行多线程设计. 程序多线程化是通过我们测试的一个条件.一般来说, 多线程设计主要有两种方法: 使用本地线程(Native Threading), OpenMP Threading.在大赛中,这两种方法都可以使用.

关于Windows本地的线程,大家可以去MSDN* 网站去学习.下面一个链接,提供提供一个简单的介绍,:
http://www.codeproject.com/threads/sync.asp

OpenMP threading 一些详细内容可以参考OpenMP的网站(www.openmp.org).下面一篇开始学习的文章:
Getting Started with OpenMP*:  http://www3.intel.com/cd/ids/developer/asmo-na/eng/20365.htm

如果是使用OpenMP threading, 需要用Intel C++ Compiler 或 Microsoft .Net 2005* 编译器. 

对程序的多线程化,需要要选择关键的代码(费时间的代码)进行多线程设计. 如果大家不能确定程序主要的计算部分, Intel® VTune™ Analyzers 可以帮助分析程序. 

多线程化后, 下一步主要是对多线程的程序进一步优化. 

2.优化工具
学习英特尔的相关工具使用方法也是我们大赛的一个主要目的. 在大赛的参赛的主页上,大家可以下载到相关的工具. 这里我们简单对每个工具进行说明:

Intel® C++ Compiler: 我们建议使用Intel C++ 编译器进行编译程序, 安装完Intel C++ 编译器后, 大家可以在命令行下, 或在Microsoft .Net 2005* 编译环境中选择Intel C++ 编译器. Intel C++ 编译器提供不同的编译开关. 如果大家需要进一步学习这方面的内容可以去 Intel 软件学院在线学习网站:
Enhancing Performance with the Intel® Compiler: http://or1cedar.cps.intel.com/softwarecollege/CourseDetails.asp?courseID=105

Intel® Math Kernel Library (Intel MKL).  Intel MKL 函数库中提供了VML 函数, 这些函数可以对超越函数(sin, cos, exp, log等)进行优化, 有关这方面的讨论,大家可以参见以前的一些帖子, 不少网友讨论VML函数的使用.

Intel Threading Checker & Intel Threading Profiler: Thread Checker 用于查找线程错误, 能够检测资源竞争、线程死锁等问题. 大家程序在多线程后,可以用Threading Checker 检测一下有没有多线程相关的错误. Thread Profiler是线程性能检测工具,多线程化有, 可能会有负载比平衡, 同步开销过大等等线程相关的性能问题。Thread Profiler 能够帮助定位这些问题的原因.
一些可以学习网站:
Getting Started with the Intel® Thread Checker: http://or1cedar.cps.intel.com/softwarecollege/CourseDetails.asp?courseID=178
Getting Started with the Thread Profiler: http://or1cedar.cps.intel.com/softwarecollege/CourseDetails.asp?courseID=179

这些只是是一个初步的介绍,大家遇到什么问题, 欢迎一起来讨论. 一些网友在优化方面也非常有经验,可以一起来交流学习.

关于本次大赛:

由英特尔软件网络部主办,CSDN协办的“英特尔多核平台编程优化大赛”于2006-12-6日拉开帷幕,得到了广大网友的关注和支持。本次比赛要求参赛者使用大赛提供的样品代码,利用推荐的一个或多个英特尔® 软件开发工具对代码进行调优。参赛者可以在大赛网站上提交作品。参赛的作品将在大赛推荐的硬件平台上进行统一的评测,并在大赛网站上公布最终结果。所有通过测试的作品,选手都可以获得由英特尔提供的技术工具书一本和U盘一个。

更多大赛相关信息,请前往大赛官方网站

更多精彩话题,请前往CSDN技术社区-英特尔多核计算技术讨论区

你可能感兴趣的:(多核,英特尔)