Support for Parallel Computing in Julia Language

Abstract

The purpose of this paper is a brief review of tools for parallel computing implemented in the current version of the Julia Language. Julia is a young promising language designed for scientific programming. Before describing directly the parallel programming capabilities of Julia we give a small overview of the main features of the language. We describe the main goals pursued by the authors of the language when it was created, and the ideology that they espoused. Separately discussed the scientific focus of Julia, features that make the language convenient for the needs of mathematical modelling, handling big data and intensive numerical computing. Separately discussed such a feature as Julia’s multiple dispatch. This mechanism of language paying a lot of attention. Most built-in functions and operators using multiple dispatch. In the second part of the paper we turn to the description of parallel programming. Julia is under active development, so support for parallel computing will be expanded, and the existing mechanisms may change. However, now Julia provides enough capabilities for writing quite complex programs using parallel computing. The basis for concurrency are processes (parallelism based on threads is not yet available). We describe the basic functions and macros that allow you to parallelize the execution of the functions, cycles and separate blocks of code. As the basis for presentation used the official guide and also the experience obtained by the authors in the process of using language.

Type
Publication
Proceedings of the Selected Papers of the 7th International Conference “Information and Telecommunication Technologies and Mathematical Modeling of High-Tech Systems” (ITTMM-2017), Moscow, Russia, April 24, 2017