Examples of using Agit training
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

46 lines
1.3 KB

import os
import ray
'''
The following switch allows the program to run locally or on the Agit distributed cluster without modifications.
'''
if 'CLOUD_PROVIDER' in os.environ and os.environ['CLOUD_PROVIDER'] == 'Agit':
from agit import ray_init
ray_init()
else:
ray.init()
@ray.remote
class Counter(object):
def __init__(self):
self.value = 0
def increment(self):
self.value += 1
return self.value
# Create an actor
c = Counter.remote()
object_id = c.increment.remote()
assert ray.get(object_id) == 1
# Methods called on different actors can execute in parallel, and methods
# called on the same actor are executed serially in the order that they
# are called. Methods on the same actor will share state with one another,
# as shown below.
# Create ten Counter actors.
counters = [Counter.remote() for _ in range(10)]
# Increment each Counter once and get the results. These tasks all happen in
# parallel.
results = ray.get([c.increment.remote() for c in counters])
print(results) # prints [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
# Increment the first Counter five times. These tasks are executed serially
# and share state.
results = ray.get([counters[0].increment.remote() for _ in range(5)])
print(results) # prints [2, 3, 4, 5, 6]