If you purchased your laptop within the last four or five years, it most likely has a multicore CPU with more power than the world’s fastest supercomputers from 20 years ago. For most intents and purposes, it is a supercomputer – and it can be used as a platform for much of the material in this course.
For a number of reasons (some of which we discussed in lecture), the platform that supports most high-performance computing today is Linux with its associated terminal-based command-line tools. Since most of you most likely use Mac OS or Windows rather than Linux on your laptops, you will be provided with a standard Linux development environment via Docker and will run most (if not all) of your programming assignments for this course in a Docker container. Since the environment will be the same for everybody (and provided by the AMATH staff), it will be much easier to create (and grade) programming assignments, assist in diagnosing problems, and in sharing helpful hints with (and among) the class.
If your computer and operating system are sufficiently recent (Mac OS 10.10 or Windows 10), you will be able to run Docker directly. Some less recent or less capable machines and operating systems will require running a small virtual machine. (This situation is less than ideal, however. Perhaps it is time to finally upgrade?) Our assumption is that you will be able to run Docker on your laptop or on a machine that you have ready access to. If you have any difficulty in accessing a machine that can run Docker, let one of the teaching assistants for the course know immediately!
In later assignments when we are studying scalability in shared memory and distributed memory, access to appropriate resources on AWS will be provided.