Business Data Science Graduate Program | Parallel Computing and Big Data
In this course, they provide the theory and applications of state-of-the-art techniques for parallel computing.
The summer course welcomes Master’s and PhD students, alumni, professionals in economics and related fields, who are interested in parallel computing. The level is introductory, targeted at participants who would like to familiarize themselves with the topic, and acquire a good basis from which to approach parallel computing potential applications.
Nowadays, even mobile phones and tablets have multiple core central processing units (CPUs), as do have the simplest laptop and desktop PCs. Using their combined compute power, however, is not trivial. This is as true for the small systems, as well as (worlds) largest compute systems. In data science, making use efficiently of all compute power is a required skill that needs to be learned. In this course you will be taught how to have all cores take part in a single task, or to have each core working on its own share of the total task.
Modern day researchers quite often have to rely on larger systems than their own. In the Netherlands many use the national supercomputer clusters, Lisa and Cartesius, at SURFsara. Like most other large shared computer systems in research, these systems have UNIX, or Linux, running as operating system. On top of that, many of them make use of a batch system to give multiple users a fair share of the total resources. The Lisa system omf SURFsara will be used during the first part of the course.
After working with Lisa, the different types of parallel programming will be taught with Python as programming language. Although C and Fortran are very common in high-performance computing (HPC), it is also possible to use parallelism in Python, the language of choice for many researchers in the data science field. The contents of this course comprise a BASH (Unix shell) course, a Python recap, an introduction to Jupyter Notebooks and a programming course to learn how to work with different parallel modules and packages in Python. For the latter, the “Python Parallel Programming Cookbook” is used. Although referred to as a cookbook, it has a decent amount of theory to build a foundation for deeper understanding of parallel paradigms.