-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Description
- It may not be realistic to assume that most clusters will allow setting up of a webserver for viewing the scheduler.
- Since most HPC clusters will have schedulers, it may be worth using dask-jobqueue, a possible example script is below
import numpy as np
import argparse
import sys
import math
import dask.array as da
from dask_jobqueue import SLURMCluster
from dask.distributed import Client
cluster = SLURMCluster(cores=4,
processes=1,
memory="4GB",
walltime="00:10:00")
np.random.seed(2021)
da.random.seed(2021)
def inside_circle(total_count, chunk_size=-1):
x = da.random.uniform(size=(total_count),
chunks=(chunk_size))
y = da.random.uniform(size=(total_count),
chunks=(chunk_size))
radii = da.sqrt (x*x + y*y)
filtered = da.where(radii <= 1.0)
indices = np.array(filtered[0])
count = len(radii[indices])
return count
def estimate_pi(total_count,chunk_size):
count = inside_circle(total_count, chunk_size)
return (4.0 * count / total_count )
def main():
parser = argparse.ArgumentParser(
description='Estimate Pi using a Monte Carlo method.')
parser.add_argument('n_samples', metavar='N', type=int, nargs=1,
default=10000,
help='number of times to draw a random number')
parser.add_argument('chunk_size', metavar='N', type=int, nargs=1,
default=1000,
help='chunk size')
args = parser.parse_args()
n_samples = args.n_samples[0]
chunk_size = args.chunk_size[0]
client = Client(cluster)
my_pi = estimate_pi(n_samples,chunk_size)
print("[dask version] pi is %f from %i samples with %i" % (my_pi, n_samples,chunk_size))
sys.exit(0)
if __name__=='__main__':
main()- It may also be worth considering Ray
Metadata
Metadata
Assignees
Labels
No labels