国外现代并行计算课程CMU-15-418/15-618: Parallel Computer Architecture and Programming

这是与计算物理最相关的CS课程,计算物理方向很容易吃透作为项目写到简历上

 

这部分主要包括

多核计算

OpenMP

SIMD

集群计算

MPI

GPU计算

CUDA

分布式计算

MapReduce

Spark

 

互联网主要重视分布式计算,科学研究主要在多核和MPI,但是科学研究很少研究底层,只管应用。GPU在算法工程师领域用得比较多。

 


 

18645 (15 spring) How to Write Fast Code
ECE版的parallel computing,无论是课程质量还是课程难度都远远低于15418。如果你在纠结这两门上哪一门,请不要犹豫,去选15418吧:)。 这门课的主要内容有三大块,CPU based parallel computing (ILP, SIMD, OpenMP), GPU based parallel computing (CUDA) and cloud parallel computing (MapReduce and Spark)。其实从课程内容来看还是很不错的,无奈乎老师讲课水平太差以及课程要求太低,这些内容都是浅尝辄止。

这门课有三次作业和四次project,作业都是独自完成,project都是组队完成(2-3人)。基本上作业就是帮你熟悉project的开发环境,跑一个sample program再把输出结果提交上去。而project相对有意思一点,前三次project各自对应课程的三大块内容,要求你用OpenMP, CUDA 以及 MapReduce来优化一个基础算法(矩阵乘法、K-means、N-gram),project的评分参照两点:你的优化程序相对于原始算法的运算速度,以及你的程序相对于别的小组的程序的运算速度。做得最好的team还可以去做presentaion,给大家讲你们的优化思路XD. 第四个project要求你自行选题,用课程学到的parallel computing的方法去优化一个实际算法,并且写一篇小论文。 我们组当时选的是中值滤波,把三个方法都用了一遍,发现还是mapreduce 大法好:)。 总的来说这门课的缺点在于课程内容太浅,project也没有什么锻炼量,如果ECE的同学想找一门不是太水的水课来抵学分,那还是可以一上的。

你可能感兴趣的:(算法)