want to give a flavor of Julia's features and capabilities for high-performance computing (HPC) covered in the workshop lesson material by presenting a demonstration on how to benchmark, optimize, parallelize and GPU-port a simple toy problem.
Julia is a free and open-source programming language designed from the ground up to offer high performance while being simple to write.
Julia is a modern high-level programming language which is both fast (on par with traditional HPC languages like Fortran and C) and relatively easy to write like Python or Matlab. It thus solves the “two language problem”, i.e. when prototype code in a high-level language needs to be combined with or rewritten in a lower-level language to improve performance. Although Julia is a general purpose language, many of its features are particularly useful for numerical scientific computation, and a wide range of both domain-specific and general libraries are available for statistics, machine learning and numerical modeling. The language supports parallelisation for both shared-memory and distributed HPC architectures, and native Julia libraries are available for running on GPUs from different vendors.