22649 EE 400 Section B Advanced Topics in EE
22651 EE 590 Section A Advanced Topics in Digital Computers
Instructor: Vikram Jandhyala
Credits: 4
Autumn 2014
Tuesdays and Thursdays: 2:30pm-4:20pm
Miller Hall (MLR) 301
Understanding of scientific computing algorithms and their efficient computation on modern computing architectures is inherently interesting and powerful. It is also an important skill set for Electrical and Computer Engineering careers whether in academia, industry, labs, or startups.
Audience: EE seniors and EE beginning graduate students interested in developing a basic background and skills in scientific computing as applied to ECE areas.
Languages: C, python, MATLAB. The main emphasis will be more towards using open source environments and languages though there may be occasional reliance on commercial tools and environments .
Motivation: computational science and scientific computing is a critical skill set for many of our students headed to Industry and startups. In addition, much of the research in our department whether done by undergraduate or graduate students relies on strong programming skills for real-world applications.
Instructor: Professor Vikram Jandhyala has direct hands on scientific computing and code development experience at the University of Illinois, Ansoft Corporation (now part of ANSYS), University of Washington, and at Nimbic (now part of Mentor Graphics). He is also the UW director of the UW-?PNNL Northwest Institute for Advanced Computing and directs the Applied Computational Engineering Lab at UWEE.
Prerequisites: Basic understanding of data structures and use of a programming language. Some knowledge of linear algebra and MATLAB is beneficial.
Syllabus:
Weeks 1 and 2: Basic background. Code Development Enviroments. Basic Data Structures. Basic understanding of Algorithms. Coding Practices. Debugging.
Weeks 3 and 4. Computational linear algebra. Direct solvers. Iterative solvers and preconditioners. Eigenvalues and singular values. Engineering and scientific examples from EE fields.
Weeks 5 and 6. Temporal dynamics. Ordinary Differential Equations. State space. PDEs. Time stepping and convergence. Visualization and analysis. Stability. Engineering and scientific examples from EE fields.
Weeks 7 and 8. Graph representations and computations. Adjacency matrices. Laplacian. Pagerank. Community detection. Flow and diffusion. Visualization. Engineering and scientific examples from EE fields.
Weeks 9 and 10. Scientific parallel and distributed computing. Amdahl’s Law. Task partitioning, load balancing, and latency. Map Reduce. OpenMP and MPI.
Assignments and Grading: Weekly graded group homework programming assignments, final written exam.