Fuzzball Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Distributed Workflows with PGAS

Partitioned global address space (PGAS) networks are an alternative to MPI that use a multinode shared memory space to support parallelism. GASNet is an implementation of a PGAS network commonly used to run PGAS-based programming languages like Chapel. PGAS execution in Fuzzball is accessed through the same workflow field that is used to control MPI execution.

Observe the following Fuzzfile:

version: v1
jobs:
  hello:
    image:
      uri: docker://wresch/chapel-multinode-gasnet:latest
    script: |
      #!/bin/sh
      /opt/chapel/bin/hello-chapel --tasksPerLocale 2 --numLocales 2
    resource:
      cpu:
        cores: 2
        affinity: CORE
      memory:
        size: 1GB
    multinode:
      nodes: 2
      implementation: gasnet
Preview workflow in web UI

This will use a container derived from the official Chapel container with the runtime recompiled to enable GASNet. It runs a basic “Hello World” style example with 2 tasks on 2 nodes each.

The multinode.implementation section is set to gasnet. This tells Fuzzball to utilize a GASNet network if it exists within the cluster environment.

For more information about Chapel see the official docs.