Throughout this book, we have seen ways of making our code run faster and more efficiently. We have seen how, by using tasks and threads, we are able to take advantage of asynchronous I/O and multiple processor cores to speed up our code. However, that is all within one machine. In this chapter, we will discuss a number of the facilities available in Julia for distributed computing—running Julia on large clusters of machines. The same facilities can also be used on a single computer for a simpler way to utilize multiple CPU cores without having to worry about synchronization requirements of accessing shared memory. In many ways, parallelism by multiprocessing is simpler than shared memory multithreading.Â
Topics covered in this chapter include the following:
- Creating a cluster of Julia processes
- Programming parallel tasks
- Shared memory...