Concurrency

  • Julia HPC and Cluster computing.
  • Distributed Computing and Grid computing.
  • Cloud computing
  • Parallel computing
  • Hardware architectures (ARM, CUDA, GPU, MIPS) and compute kernels

Organizations

General Concurrency Packages

Bindings for external libraries

Cloud computing

SIMD Computing


Multi-Threading


Multiprocessing and Distributed Computing


  • ClusterManagers.jl : Support for different job queue systems commonly used on compute clusters. (e.g., Slurm, K8s, )
  • Dagger. : A framework for out-of-core and parallel computation and hierarchical Scheduling of DAG Structured Computations. Similar to dask library in Python.
  • DistributedArrays.jl : A task persistency mechanism based on hash-graphs for Dispatcher.jl.
  • FARMTest.jl : Tool for building and executing a computation graph given a series of dependent operations.
  • K8sClusterManagers.jl : A Julia cluster manager for Kubernetes.
  • Malt.jl : a multiprocessing package for Julia. It is used by Pluto.jl to manage the Julia process that notebook code is executed in, as a replacement to Distributed.
  • MPI :  Julia interface to the Message Passing Interface (MPI)
  • ParallelDataTransfer.jl : A bunch of helper functions for transferring data between worker processes.
  • Persist.jl : Running jobs in the background, independent of the Julia shell.
  • Ray.jl : Julia language interface for Ray.io workloads. JuliaCon 2024 video
  • Schedulers.jl : It provides elastic and fault tolerant parallel map and parallel map reduce methods.
  • SlurmClusterManager.jl : Julia package for running code on slurm clusters. See FARMTest.jl for simple example scripts.

GPU computing


NVIDIA CUDA