若干个礼拜前,大家都被分配了一个任务,就是每个人分别认真研读《Parallel Programming in C with MPI and OpenMP》的其中两章,并且把其中的程序实现。本来想在两周完成这项任务,不过由于种种原因,还是被拖到3周(甚至更长)。这个礼拜我一直强调的Deadline就是今天必须完成各自的程序部分。
软件工程中的迭代开发方法有TimeBoxing这一说法,我想这同样实用于我们这个过程。TimeBoxing意味着不能因为本次迭代过程中有未完成的工作而延长本次迭代的周期;相反的,我们需要反省为什么不能完成?是任务太多,还是人员的问题?但无论如何这些未完成的工作都会被放到下一次迭代中进行。话说回来,用三周的时间来完成两章的内容,对研究生来说基本上是足够的。所以我们接下来的任务就是总结。
要知道,总结比学习本身还重要。大多数人(包括我)都注重学习的本身而忽略了总结,但要知道人们的记忆曲线在前期是很陡峭的,也就是说刚刚学到的知识可能会在2个礼拜之后被遗忘了60%甚至以上。所以学习之后对知识的总结,并记录下来,至少有利于:
1. 巩固知识。总结可以让你一点点地回忆你过去所遇到的问题、是如何解决的。
2. 从总体看问题。学习的时候往往注重细节,总结可以让你从总体重新审视问题。
上面所说的都是关乎个人的问题,而今天的题目是“共享”与“交流”,而共享的对象是我们的知识。这一次要求大家总结并形成文档以及PPT的目的就是为了“共享”,不仅是我们5个人之间的知识共享,更重要的是给我们的师弟师妹,甚至是所有对并行计算以及MPI感兴趣的人留下一点知识的积累。所以,这份总结能否对问题严谨、清晰以及透彻的阐述非常重要,这些都不能流于表面。这一次的总结只是一个开始,我最希望在我们实验室内部可以形成一股活跃的交流共享气氛,并且延续下去。
昨天晚上我想了一下,交流的内容其实很多,不限于我们共同学习的,还包括我们课外所了解到的,甚至是生活上、工作上的都可以。而交流的形式可以包括但不限于:
1. 个人主题演说
2. 讨论会
对于“个人主题演说”,演说的内容可以:
a) 由演说者提出:演说者可以选择他了解得比较深刻(只需要比其他人深刻即可,不必专家级)的话题作为演说的内容
b) 由其他成员提出:如果某个成员对某些知识比较感兴趣,则他可以提出,然后在其他成员中挑选一个对该方面的知识了解得最深刻的人进行演讲。
但是个人更加喜欢“讨论会”,觉得讨论会更加容易增加大家对问题的理解。讨论会的主题最好是大家感兴趣的题目或者有所了解的题目的交集,可以:
a) 先由个人选择,然后共同确定
b) 在不适合“个人主题演说”的题目中抽取,或是“个人主题演说”的题目的延伸。
讨论会的形式可以很随便,白板、卡片等都可以用上。另外为了避免讨论会变成单纯的闲聊,最好是每次的讨论都有一个记录人员,他把会议中大家的观点记录下来(无论是有用还是无用,正确还是错误),并整理成文档以及发布。
这次交流的模板我已经上传到xiao的/home/*/ppt_templates/topic_based/PPT_on_MPI_Template.ppt,而实验室用的模板则上传到/home/*/ppt_templates/v0.1/The_PPT_Template_for_Lab_of_Parallel_and_Distributed_Computing(Black).pot
其中*不便公开。
本文分享了关于并行编程的学习经验,特别是使用C语言结合MPI和OpenMP进行编程的过程。作者介绍了团队学习的方法,包括任务分配、时间箱(TimeBoxing)原则的应用,以及如何通过总结和交流来提高学习效率。此外,还探讨了有效的交流方式,如个人主题演说和讨论会,旨在建立积极的学术氛围。
1008

被折叠的 条评论
为什么被折叠?



