
High Performance Computing
The goal of this course is to give you solid foundations for developing, analyzing, and implementing parallel and locality-efficient algorithms. This course focuses on theoretical underpinnings. To give a practical feeling for how algorithms map to and behave on real systems, we will supplement algorithmic theory with hands-on exercises on modern HPC systems, such as Cilk Plus or OpenMP on shared memory nodes, CUDA for graphics co-processors (GPUs), and MPI and PGAS models for distributed memory systems.
This course is a graduate-level introduction to scalable parallel algorithms. “Scale” really refers to two things: efficient as the problem size grows, and efficient as the system size (measured in numbers of cores or compute nodes) grows. To really scale your algorithm in both of these senses, you need to be smart about reducing asymptotic complexity the way you’ve done for sequential algorithms since CS 101; but you also need to think about reducing communication and data movement. This course is about the basic algorithmic techniques you’ll need to do so.
The techniques you’ll encounter covers the main algorithm design and analysis ideas for three major classes of machines: for multicore and many core shared memory machines, via the work-span model; for distributed memory machines like clusters and supercomputers, via network models; and for sequential or parallel machines with deep memory hierarchies (e.g., caches). You will see these techniques applied to fundamental problems, like sorting, search on trees and graphs, and linear algebra, among others. The practical aspect of this course is implementing the algorithms and techniques you’ll learn to run on real parallel and distributed systems, so you can check whether what appears to work well in theory also translates into practice. (Programming models you’ll use include Cilk Plus, OpenMP, and MPI, and possibly others.)
Lessons hide description |
---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Java Training for beginners 13 lessons
http://www.guru99.com/java-platform.html The Java platform and what is java used for. Why Java Programming Language is a platform as well a programming language
Beginner's Guide to PHP 34 lessons
Full source code available at: http://www.johnmorrisonline.com/lesson/h
Microsoft .NET Framework 10 lessons
.NET Framework is a software framework developed by Microsoft that runs primarily on Microsoft Windows. It includes a large class library known as Framework Class Library (FCL) and provides language i
GIT and GITHUB Tutorial 4 lessons
This Git and GitHub tutorial for beginners will help you get started with workflows using Github, along with Github basics. This Git and Github tutorial is specially designed for beginners to get star
DevOps Training Videos 41 lessons
The DevOps Training Videos will take you through - what is devops, devops tutorial videos, devops tools tutorial, docker tutorial, jenkins tutorial, puppet tutorial, ansible tutorial, chef tutorial, s
How to Create a Website From Scratch 5 lessons
A simple web site design video tutorial series by John Morris. I'll teach you what I know about PHP, CSS, XHTML, and using them to create kick-ass websites
PHP & MySQL Tutorial 27 lessons
PHP and MySQL are two of the most popular open source technologies to emerge during the past decade. You will receive hands-on training in PHP programming language, and an introduction to MySQL data
Java Programming Tutorials for Beginner 87 lessons
Here are all of my Java programming tutorials. Visit my website at https://www.thenewboston.com/ for all of my videos and tutorials! Have questions or looking for source code? Check out the forum at
AngularJS Tutorial 10 lessons
This AngularJS Tutorial video playlist helps you to master client-side concepts like SPA (Single Page Application), learning about DOM manipulations, Services, Dependency Injection (DI), and XHR commu
Perl Scripting Tutorial 11 lessons
This Perl Scripting Tutorial video playlist helps you learn the basics of becoming a Perl developer and enables you to develop useful applications which are used in the industry very often.
TAG Cloud
Web Stats
Active courses: 1,180
Lessons: 27,706
Data: 83 GB
Online: 120 users
News about new courses