Course Information

18-847G: Special Topics in Computer Systems: Computing for Engineers

Units:

12

Description:

Computer systems accessible to students and engineers have become incredibly powerful. At the same time, engineering students utilize problem solving environments like Matlab or languages like Python in their research. This course covers how to scale research problems that are coded in such languages/environments from the initial concept stage usually executed on ones’ laptop computer to more powerful computing systems like high end servers, GPU accelerated systems, Condor high throughput clusters, cloud computing platforms, and supercomputers. The course presents the problem as engineering trade-off: what is the minimal human effort needed to solve the problem at the needed scale, leveraging all the resources student has available. This requires understanding of algorithms, parallel machines, parallelization strategies, and many other aspects. However, this course teaches how to avoid excessive and tedious parallel programming by leveraging systems and tools that are readily available. Students will use their own research problem as case study.