孟岩ID:myan
[修改头像]
1551782次访问,排名6好友1人,关注者32
总是在思考存在的问题
myan的文章
原创 145 篇
翻译 0 篇
转载 3 篇
评论 5194 篇
最近评论
ranzj:我只抱怨自己的努力不够。
ranzj:我毫不怀疑 SilverLight 是个“钱”途无量的玩意儿。
winvc:还有 之前已经看到过一篇署名孟岩的文章了 也是自称学计算机的 在MOP发的文章 题目是《不知名的程序员写给想学编程的朋友》(最后署名前还特别声明了下自己是初中文化全靠自学的 大哥 这样的人全国有几千万 没几个比你这种货色差的)

那文章是看的我想吐 不知道是你还是重名了 不过咋跟你这篇文章风格这么像呢 都是不懂 逻辑混乱 瞎喷
你是自己想不明白问题 但认为自己想……
winvc:osa!!!
建议你看几本书 补充下知识 尤其是编译原理方面的
你这个人思考问题特肤浅 还以为自己想的很深入 真是越笨的人越自大 你窝家里窝的了
lyaqys:强烈同意,只懂技术,开发出来的东西用户都不知道怎么用,有什么用啊!
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes
文章分类
收藏
    相册
    测试
    友情链接
    老赵的博客
    存档

    原创 Intel多核程序设计培训的基本体系

    新一篇: IronPython 1.0 RC1发布

         上周去上海Intel参加了一个多核程序设计的技术培训。一般来说大公司的专项技术培训都经过精心的设计,体系比较完整,知识点覆盖比较全,强调实验和动手环节。Intel这次的多核技术培训也是这样,从线程基础知识到多线程程序设计的方法模型,从OpenMP到VTune工具,体系还是很完整的,试验环节设计得很到位,PPT很用心。当然因为时间毕竟只有两天,所以不可能非常深入。不过总体上我对这个培训的质量是很满意的,毕竟师傅领进门,修行在个人,深入的东西还要靠个人钻研。

        跟很多其他的技术不同,多线程程序设计这样的主题是需要专门突击的,光靠一般性的实践解决不了根本问题。很多人可能写多年程序都搞不清楚这个领域,一碰到多线程就发憷,或者自以为OK,其实写出来的代码问题很多。解决的办法就是专门抽出一段时间来研究这个领域的理论、方法和工具,一次性入门,然后在实践中磨砺。培训的目的也就是让人入这个门。自学当然也可以,其实相关的资料和书籍很多,自学难度也不大。不过自学最大的问题是不知道要学些什么,而且进度不容易把握。有的人学得太慢,毕竟业余时间是有限的,所以很快就疲了,知识体系还没有覆盖完整。有的人学得太快,囫囵吞枣,事后忘光光。更多的人不知道知识体系的全貌,所以用力不均衡,在某些点上花了很大的工夫,学得很深,却对另一些重要问题几乎没有涉及,一条腿长一条腿短,实践中还是难免出问题。


        虽然Intel的课程内容我不能透露,不过这个课程体系的整体架构,并非秘密。我想在这里公布出来,对于想自学多核程序设计的朋友是有帮助的。起码你应该知道,学习这个主题要覆盖那些点才算完整。

    1. 线程和进程的基本知识。这个不必多说。但是要弄清楚多线程与多核的关系。一般来说,想要用好多核的威力,就要写多线程程序,但是多核上的多线程,与单核上的多线程,目的有所差别,因此技术手段也就有所不同。这个要搞清楚。

    2. 流行的Threading API。应该说有两个体系,Win32和pthread。一般来说了解一个就可以了。这其中的重点是一系列的同步机制。以Win32来说(我对pthread几乎一无所知),critical section, mutex, semaphore,event各自的应用场合是应该清楚的。更基本的能力是识别哪些变量需要保护,在什么地方需要保护,如何保护对性能的冲击最小。

    3. OpenMP。OpenMP是专门针对共享地址空间的平行计算机提供的并行计算库,在Intel C++和Visual C++ 8.0里通过#pragma支持。用OpenMP,可以不必去写诸如CreateThread之类的线程管理代码,多线程程序写起来比较简洁。而且OpenMP提供了很丰富的指令,对于同步共享变量、合理分配负载等任务,都提供了有效的支持,很值得一学。不过因为这个东西用起来很轻松,稍一疏忽就能酿成愚蠢错误,所以肯定是要经常用才能驾驭好的。一开始用它,犯错误是难免的。培训课上有人说,还不如用粗笨的Win32 API来做,起码精神高度紧张,不会犯愚蠢错误,虽然是玩笑,也不无道理。不过长远来讲,OpenMP的优势是明显的。

    4. 多线程程序的设计理论和方法。包括任务的合理划分,动态划分的几个基本模型,性能提升方面的理论和测量标准等等。Intel有人总结出一个多线程程序设计的方法学,教你怎样一步步从单线程变成高性能的多线程。课上是没讲的,网上应该能找到一个文档,有兴趣的人可以自己到Intel的网站去搜一搜。

    5. 工具的使用。这一部分当然跟Intel自己的软件工具挂钩,主要是VTune/Thread Checker/Thread Profiler三个工具。现在后面两个工具被融入了VTune之中,所以从产品来讲,就只有一个VTune。平心而论,VTune确实是非常好的调优工具,真正要搞产品开发,恐怕离不开这样的工具。任你是多厉害的程序员,写出东西来总要在实践中检验,所以调优工具是不可少的。VTune与Thread Checker/Thread Profiler结合,其意义远远超过了调优工具,对于多核程序开发来说,这种工具的意义实在是太大了。

       大致就是这些。
     

    发表于 @ 2006年07月26日 12:16:00|评论(loading...)|编辑

    旧一篇: 汉城大学学生口中的韩国IT产业战略

    评论

    #jnwlingec 发表于2006-11-15 03:06:00  IP: 81.208.95.*
    TrackBack来自《hqqvlcbub》

    cirasyaqpgy ldwwwcann mnaxqrofny xayhqgdcwi
    #过客不留名 发表于2006-07-26 20:22:00  IP: 211.98.111.*
    废话太多,大话太多,把 1-5 list 出来就ok
    #littlestone 发表于2006-07-26 21:21:00  IP: 222.212.75.*
    不错不错,多核程序设计说开了,并不神秘。喜欢看这些以概要点加上简短评述所带出来知识领域。
    #sevencat 发表于2006-07-27 09:19:00  IP: 203.156.209.*
    多核对操作系统内核部分的影响非常大,但对普通程序员来说,影响一般般吧。
    #CloudiDust 发表于2006-07-27 11:17:00  IP: 218.4.247.*
    不是啊,呵呵,以后的CPU都是多核了,不好好利用是犯罪啊,并不是内核支持SMP了就说明其他的程序也支持多核啊……
    #sevencat 发表于2006-07-27 12:25:00  IP: 203.156.209.*
    一般用多线程不就得了。说说看你的程序怎么直接用多核的?


    #sevencat 发表于2006-07-27 12:29:00  IP: 203.156.209.*
    总觉得像多核这些东东是intel,amd用来忽悠老百姓的,我觉得我自己用电脑一个一般CPU就足够了,我又不是服务器,要是钱多的话,我会考虑去买好的显卡的。买好的键盘鼠标和音箱及显示器。
    现在的软件可能CPU基本上不是瓶颈,
    内存、硬盘、显卡可能才有可能是大的瓶颈吧。
    #shawphen 发表于2006-07-27 13:08:00  IP: 218.108.51.*
    呵呵,我在杭州也参加了这个培训,感觉确实是不错。
    #potshot 发表于2006-07-27 14:27:00  IP: 58.240.171.*
    在我的双核本本上 (T2300 1.66G/ 945 / 1G memory)跑 VMware \ Windows Vista Beta2 5657 比家里台式机 (P4 2.8c /865PE/ 1G memory) 上舒服多了.
    #flean 发表于2006-07-27 15:11:00  IP: 221.234.252.*
    potshot 你的本本多少钱?
    #4trfrt6q346 发表于2006-07-27 16:41:00  IP: 221.226.214.*
    总觉得像多核这些东东是intel,amd用来忽悠老百姓的,我觉得我自己用电脑一个一般CPU就足够了,我又不是服务器,要是钱多的话,我会考虑去买好的显卡的。买好的键盘鼠标和音箱及显示器。
    现在的软件可能CPU基本上不是瓶颈,
    内存、硬盘、显卡可能才有可能是大的瓶颈吧。
    #datuhao 发表于2006-07-27 22:02:00  IP: 61.144.146.*
    孟老师也参加了这个培训啊:),上个月在北京也参加了这个培训,感觉上确实离普通程序员太遥远了.

    要把整套环境搭起来造价不菲,从cpu到编译器到调试工具,测试工具,在国内太不现实.

    OpenMp,且不说现在几乎没什么编译器支持,关键是没有从根本上把程序员从多线程的炼狱中解放出来(个人觉得也不可能有什么工具,或什么规范能从根本上降低多线程编程的复杂性),只不过是把一些简单的东西封装的更简单,可是在关键性的任务分解,或是复杂的同步问题前面OpenMp是无能为力的,而只能靠程序员扎实的理论,足够的经验和良好的编程习惯来解决.

    同意sevencat老师,过"多核这些东东"本来就是面向高性能的服务器,或科研上计算密集型程序开发的,普通老百姓去买这些东东只可能是被商家误导了:).

    孟老师斧正.
    #datuhao 发表于2006-07-27 22:29:00  IP: 61.144.146.*

    另外,在c++的程序里插入那么多和c++语法完全不同的OpenMp的语句,显得很不伦不类,让你的代码很难维护,甚至是不可维护,因为你必须让所有维护这份代码的程序员去深入学习OpenMp规范,二是你的代码将很难移植,起码现在你没有任何移植方面的保障.

    觉得Intel这么大力的推OpenMp,很可能只是他们现阶段推销产品的一个噱头,某天他们觉得市场效果不佳,说不定就不玩OpenMp,改玩CloseMp了.所以花大钱去买他们的cpu和配套产品,花大精力去学习OpenMp规范,长远来看,这样的投入可能非常不值.
    #clawhammer 发表于2006-07-27 22:48:00  IP: 58.49.238.*
    同意楼上,要是不玩游戏,不运行oracle之类的软件,我的赛扬566就用的很好,现在上G的cpu都感觉不出太大差别,内存、硬盘和显卡升级了感觉就很明显
    #hl 发表于2006-07-28 08:37:00  IP: 60.191.25.*
    除了一些很特殊的地方,一般写程序不会考虑CPU的差别的,现在一般编译器生成的指令,最多也就到Pentium吧。多核上的多线程与单核上的多线程,真有必要去考虑其中的差别呢?
    #laoeyu 发表于2006-07-30 16:56:00  IP: 222.71.105.*
    to datuhao
    FYI
    OpenMp在Compiler获得支持可以参考下面的网页
    http://www.openmp.org/drupal/node/view/9
    不少编译器:
    不仅有Intel, HP, Sun, KAI都支持。
    #icbm 发表于2006-07-31 09:04:00  IP: 58.33.126.*
    真是不知道Intel倒是是卖CPU的,还是做培训的。搞个培训那么贵,还不让人参加了培训的透露情况。

    双核出了这么久,雷声大,雨点小。大部分开发人员对多核都不是十分了解,对多核技术持观望状态。作为CPU厂商的Intel,应该尽快让开发人员尽早了解多核技术,开发出更多的依赖于多核CPU的软件产品,多核CPU才能迅速打开市场。

    Intel太小家子气了。看看人家微软,WebCast让所有人免费学习各种开发课程,建立自己用户群。

    Intel应该向微软学习。
    #sproll 发表于2006-07-31 09:47:00  IP: 221.12.171.*
    觉得Intel这么大力的推OpenMp,很可能只是他们现阶段推销产品的一个噱头,某天他们觉得市场效果不佳,说不定就不玩OpenMp,改玩CloseMp了.所以花大钱去买他们的cpu和配套产品,花大精力去学习OpenMp规范,长远来看,这样的投入可能非常不值.

    哈哈,顶!
    #dxcnjupt 发表于2006-07-31 19:27:00  IP: 125.73.65.*
    多核编程培训的内容和《并行程序设计》的内容差的比较多啊

    像我这样的大学生还是先打牢基础比较好
    #panda 发表于2006-08-01 17:15:00  IP: 211.154.1.*
    有vtune(for linux)可以共享吗,Intel站点上只有试用版下载,还得填一大堆表格
    #cUIYI 发表于2006-09-05 12:30:00  IP: 218.247.215.*
    真正去模拟CPU的时候,这个东西就让人郁闷了,CPU内部的微操作越来越复杂,体力活越来越多。。。。再加上最近iNTEL搞的VT,头疼。。。。
    #gxc 发表于2007-01-08 18:24:49  IP:
    大公司的技术培训,宣传的就是自己的一套东西,让你感觉好棒就是达到了目的,每个人无形中就成为了他市场策略的推销员.
    #lanisa 发表于2007-04-28 11:39:15  IP: 202.105.131.*
    不让人说,故弄玄虚

    大公司的技术培训,宣传的就是自己的一套东西,让你感觉好棒就是达到了目的,每个人无形中就成为了他市场策略的推销员.
    #mzty 发表于2007-06-06 15:29:00  IP: 218.83.157.*
    我也想去培训哦,不知道上海在那里哦
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 孟岩