Parallel and Distributed Computing (IN480)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Parallel and Distributed Computing (IN480)

ABACUS 2018/19


Course Description, Goals and Objectives

This course introduces to techniques of parallel and distributed computing, and to hardware and software architectures for high-performance scientific and technical computing. Some space will be given to iterative distributed methods for simulation of numerical problems, and to methods for assessment of very large geometric models and meshes. The programming launguage used is Julia, novel dynamic language for scientific computing. Specific learning goals are:

  1. Solve compute-intensive problems faster;
  2. Solve larger problems in the same amount of time;
  3. Solve same size problems with higher accuracy in the same amount of time.

Course program

Brief introduction to Julia language. Introduction to parallel architectures, Parallel and distributed programming with Julia. Primitives of communication on synchronization. Languages based on directives. Performance metrics. Matrix operations and dense linear systems. Sparse linear systems. Collaborative development of projects.

Programming language

"Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments."

Computational resources

Access will be granted to computational resources of the department, including a DGX-1 superserver.

Teaching materials

Schedule and materials

September 2018

# date arguments category
1 Tue 25 Introduction to MarkDown and Git Programming
2 Thu 27 Basic Julia Language

October 2018

# date arguments category
3 Oct 2 Assignment of course projects Projects
4 Oct 4 Assignment of course projects Projects
5 Oct 9 Parallel architectures Theory
6 Oct 11 Parallel terminology Theory + Programming