共 1,393 篇文章
共 6,621 篇文章及评论
- Association for Computing Machinery TechNews (ACM)
- Go Parallel! (Dr. Dobbs)
- HPCwire (Tabor Communications, Inc.)
- insideHPC (John West)
- Joe Duffy's Weblog (Microsoft)
- Microsoft Parallel Programming Development Center (Microsoft Germany)
- MultiCoreInfo.com
- scalability.org (Scalable Informatics)
- Software Dev Blog (Intel Germany)
- Soft Talk Blog (Intel United Kingdom)
- The Moth (Microsoft)
Archives
帖子来自 Selwyn H. You 游骅 (Intel) 
'09多核教育师资培训与研讨(武汉)班侧记
作者: Selwyn H. You 游骅 (Intel) (3 篇文章) 日期: 七月 23, 2009 在 9:31 下午
评论 (1)
七月八、九和十日,在依山傍湖,风景秀丽的武汉大学,Intel大学合作部举办了09年第一次多核师资培训与研讨班。这次参加的老师主要是来自已经加入我们大学合作项目的,或者获得教育部-Intel精品课程支持的学校。培训的内容是创新软件教育(前身是Intel软件学院的课程开发组)新开发的并行编程课程模块;主要涵盖下面四个方面供老师们更新课程使用—— 编程模型(实现手段),包括OpenMP 3.0和Threading Building Blocks (TBB); 调试工具,Intel Parallel Studio; 并行程序设计模式; 并行游戏程序开发方法学及案例。 由于反映了并行编程技术发展的前沿,老师们对这些内容的认可程度是出乎意料地好——这一点虽没有通过正式问卷反馈,但在接下来的研讨中得到体现。 精品课程教学经验分享和开放式讨论是此次活动的一大亮点。由于来参加的老师都是一线教学的骨干,经过培训和经验分享后的讨论如流火七月的“火炉”天气一般热烈。而讨论的重点主要集中在两个热点—— 在探讨如果有效开展课程建设问题时,大家普便遇到如何引导学生认识学习并行编程能力重要性的问题。我们从业界的角度,一般会讲产品竞争力的故事;告诉程序员(通过并行化实现)程序优化和性能提升是对于每个软件产品竞争力至关重要的工作内容,而并非只是少数(如编译器等系统软件)开发人员的工作,这是因为如果我们忽略了这个工作,我们的竞争对手会来给我们补上这一课的。这个故事虽然实在,但对于大多数还在象牙塔里面,缺乏实际工作经验的学子却稍嫌遥远。所以要让包括学生们在内的广大开发者人群了解到程序优化的重要性,恐怕还是要回答一个几年前当多核平台出现就已经浮出的问题,即寻找“杀手级应用(Killer Applications)”。关于这个话题的讨论已经长篇累牍,”结果“也是不一而足,但却至今难有定论。其实这也许就是原本应有的结论——发挥多核乃至以后众核(Many Core)平台的应用应该是多种多样的,针对不同领域各有不同的?!换言之,不同的领域应该有各自独特的杀手级应用。而这恰可以引出此次研讨的另一个热点,或者更可以称为共识,创建案例库。 有实际教学经验的老师都知道,要想把抽象的理论、规则和方法让学生较好地掌握,实例是不可或缺的重要手段。但是由于应用领域的局限,不同学科背景的实例难以共享供使用。比如,传统算法并行化(这是创新软件教育正在做的)案例对于计算机学科的学生不陌生,但对于其它专业的就不一定那么“亲切”了。相反地,每个领域的老师创建的案例则会较为容易的为本领域相同或相关领域的师生所接受。所以,我们鼓励老师们开发出适合本领域的教学案例,然后通过我们的学术交流论坛分享,形成按照应用门类划分的案例库,这样就可以让更多的师生受益了。 这次培训研讨只是今年学术活动的第一场,期待着下一场培训研讨班与老师们 交流。
分类: 软件技术学习及认证
并行化程序设计的四步走
作者: Selwyn H. You 游骅 (Intel) (3 篇文章) 日期: 五月 21, 2009 在 11:24 上午
评论 (1)
多核计算平台的普及化使得并行(Parallel)或者并发(Concurrent)程序设计(这里不妨称它们为并行化程序设计)成为一种编程技术主流。其实并行计算的软件技术早已存在了几十年,然而其原来主要服务于高性能计算一类的应用,所以并行化编程一直也都为阳春白雪的光环笼罩。现在谈到多核编程,讨论较多的是各种软件或者并行编程模型的使用;对于初学者而言却仍可能难以循其径而入。 其实,并行化的程序设计是有章可循的。按照开发流程的顺序,可以把并行化程序设计分为以下四个阶段: 1. 可行算法(解决方案)的描述与分析 2. 工作分解(Decomposition)——依赖性和同步与通信开销分析 3. 选择编程(实现)模型 4. 性能检查及优化 在设计的初始阶段,开发者应当针对要解决的问题先找到一个可行的解决方案或者算法。比如,排序问题的解决方案有气泡排序,快速排序,二叉树排序等已知可行的方法可以作为并行化的基础算法。而在进行具体的并行化设计之前,有一个很重要的分析(或者评估)要做,那就是并行化的必要性分析;即,应该估计一下目标问题的计算量。如果需要解决的问题计算量并不是很大,比如只需要对30个整数进行排序,即使采用传统串行程序也不会占用太多时间,那么就可能没有为之设计并行化程序的必要,因为并行化也是要付出其它计算的代价的。另外,基础算法的选择也很有讲究。有些算法本身就不具备太多的并行性,比如图论算法中最小生成树/Minimum Spanning Tree(MST)的Kruskal算法;而有些算法则具有很好的可扩展性(Scalability),比如MST的Boruvka算法 (关于MST算法并行化的例子可参见ISN学术社区课件)。为确定算法的并行性,一般需要借助一些理论和工具的帮助。Amdal's law是大多数设计者所采用的估计并行化加速比上限的定理;而Gustafson's law则是分析并行程序可扩展性的有力理论指导。而为了能够使用这些定理给出指导,还需要一些软件工具(Profiling ...
分类: 并行计算, 软件技术学习及认证
教育创新的又一个里程碑——教育部-Intel精品课验收评审小记
作者: Selwyn H. You 游骅 (Intel) (3 篇文章) 日期: 三月 31, 2009 在 7:25 下午
评论 (2)
晓春三月,尽管北京还是乍暖还寒,但万物却已开始复苏。我有幸参加了Intel大学合作部组织的一年一度的教育部-Intel精品课程验收评审会。会议邀请到了教育部高教司理工处的领导吴爱华,以及计算机教指委的几位专家学者来共同验收和评审07~08年度获得Intel资助的课程。 在评审过程中,我惊喜地发现,本年度受到资助的课程越来越多地能够反映业界技术发展的最新进展。其中,四分之一的课程有机地将多核相关内容纳入教学内容,超过一半的课程介绍了多核的关键技术。更为可喜的是继上一年度有两门多核(处理器)相关课程被推荐并批准为国家级精品课之后,今年又有几门多核程序设计的课程在此次评审中名列前茅。这都反映出了我们的老师在与时俱进,适时地根据业界的进展进行教育创新,培养市场需要的人才。在现场的讨论中,我们的专家和学者也形成了一个共识,那就是要想把多核这样的新主流技术真正地达到一定的教学效果,案例和实训是非常重要的手段,因而这应该成为接下来的校企合作的一个重点。 此外,另一个值得一提的可喜进步是,越来越多的老师能够利用网站这样的新媒体作为教学手段。通过把教学大纲和教案等教学材料建立网站进行发布,一方面提升了教学效率和示范效果;另一方面增加了交流和普及推广的作用。更值得褒奖的是有些老师能够采用双语教学,这样就更加便于进行国际交流,扩大教改成效。有鉴于此,与会的领导和专家还特意访查了包括Intel公司在内的业界精品课建设网站,进而为接下来的课程建设提出了建议。 参加完会议后,回想起我们从06年开始的,与几所重点高校合作将业界新技术引入教学,发展到现在与一百多家院校合作进行研究和教学创新,以及相关精品课程的蓬勃建设与发展。我不禁感慨,经过这么多年的共同努力,我们正迎来教育创新的又一个春天。
