A Julia package for clusterless distributed computing on Azure
Перейти к файлу
Philipp Witte 4bb481256b
Update urls
2022-11-17 19:24:56 -08:00
.github/workflows update dependencies 2021-05-26 07:38:24 -07:00
data rerun notebook and data 2021-05-19 10:51:06 -07:00
docs update doc 2022-11-11 01:42:09 +00:00
examples Update urls 2022-11-17 19:24:56 -08:00
src rm print statement 2022-11-14 19:57:59 +00:00
test update test 2021-05-26 07:42:59 -07:00
.gitignore update installation instructions 2021-05-21 13:18:09 -07:00
CODE_OF_CONDUCT.md Initial CODE_OF_CONDUCT.md commit 2021-05-18 09:01:07 -07:00
CONTRIBUTING.md populate repo 2021-05-18 08:06:44 -07:00
Dockerfile update Julia version 2021-05-21 14:41:50 -07:00
LICENSE Initial LICENSE commit 2021-05-18 09:01:08 -07:00
Manifest.toml update dependencies 2021-05-26 07:38:24 -07:00
Project.toml Fix JSON compat 2021-09-07 14:43:42 -07:00
README.md update install instructions 2021-09-10 17:14:41 -07:00
SECURITY.md Initial SECURITY.md commit 2021-05-18 09:01:09 -07:00
SUPPORT.md populate repo 2021-05-18 08:06:44 -07:00
credentials.json remove credential templates 2021-05-21 14:40:39 -07:00
deploy.sh Update deploy.sh 2021-09-06 10:34:15 -07:00
mkdocs.yml update doc 2022-11-11 01:42:09 +00:00
pyrequirements.txt update installation 2021-05-21 16:31:22 -07:00

README.md

CI

AzureClusterlessHPC.jl - Simplified distributed computing

Overview

AzureClusterlessHPC.jl is a package for simplified parallal computing on Azure. AzureClusterlessHPC.jl borrows the syntax of Julia's Distributed Programming package to easily execute parallel Julia workloads in the cloud using Azure Batch. Instead of a parallel Julia session, users create one or multiple worker pools and remotely execute code on them.

im1

AzureClusterlessHPC provides macros that let us define functions on batch workers, similar to how @everywhere works for a parallel Julia session:

# Define a function
@batchdef hello_world(name)
    print("Hello $name")
    return "Goodbye"
end

We can then either execute this function on our local machine or as a batch job using the @batchexec macro (which is similar to Julia's @spawn macro for parallel Julia sessions):

# Execute function on local machine
out = hello_world("Bob")

# Execute function via Azure Batch
out = @batchexec hello_world("Jane")

Using the pmap function in combination with @batchexec allows us to run a multi-task batch job:

# Execute a multi-task batch job
out = @batchexec pmap(name -> hello_world(name), ["Bob", "Jane"])

Installation

To install AzureClusterlessHPC.jl, run the following command from an interactive Julia session (press the ] key and then type the command):

] add AzureClusterlessHPC.jl

Before being able to use AzureClusterlessHPC.jl you need to create a few Azure resources. Follow the instructions here.

Documentation

Follow this link to the documentation.

Applications

AzureClusterlessHPC can be used to bring various distributed computing applications in Julia to Azure. Check out the notebooks in the examples section to find tutorials for the following applications:

  • Generic batch, map-reduce and iterative map-reduce examples

  • Deep learning with AzureClusterlessHPC.jl and Flux.jl

  • Seismic imaging and inversion with COFII.jl and JUDI.jl

Credits

AzureClusterlessHPC.jl is developed and maintained by the Microsoft Research for Industries (RFI) team.